【问题标题】:Call to a member function loadXML() on a non-object (PHP - PayPal)在非对象上调用成员函数 loadXML() (PHP - PayPal)
【发布时间】:2013-12-13 21:33:15
【问题描述】:

我终于设法从 PayPal 获得了 PaymentDetailResponse,如下所示:

    <?xml version='1.0' encoding='UTF-8'?>
    <ns2:PaymentDetailsResponse xmlns:ns2="http://svcs.paypal.com/types/ap">
    <responseEnvelope>
    <timestamp>2013-11-27T16:54:16.964-08:00</timestamp>
    <ack>Success</ack>
    <correlationId>bb7958693354</correlationId>
    <build>7935900</build>
    </responseEnvelope>
    <cancelUrl>https://www.paypal.com</cancelUrl>
    <currencyCode>EUR</currencyCode>
    <paymentInfoList>
    <paymentInfo>
.
.
.
    <useCredentials>true</useCredentials></sender>
    </ns2:PaymentDetailsResponse><br />

我正在使用以下功能:

function verify_paypal($payKey, $appID)
{
  global $payPalUser_Id, $payPalPassword, $payPalSig;
$headerArray = array(
'X-PAYPAL-SECURITY-USERID:'.$payPalUser_Id,
'X-PAYPAL-SECURITY-PASSWORD:'.$payPalPassword,
'X-PAYPAL-SECURITY-SIGNATURE:'.$payPalSig,
'X-PAYPAL-APPLICATION-ID:'.$appID,
'X-PAYPAL-REQUEST-DATA-FORMAT:NV',
'X-PAYPAL-RESPONSE-DATA-FORMAT:XML'
);

$url="https://svcs.paypal.com/AdaptivePayments/PaymentDetails?payKey={$payKey}&requestEnvelope.errorLanguage=en_US";

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headerArray);

$adaptiveResponse = curl_exec($ch);
curl_close($ch);

if (!is_null($adaptiveResponse)){
  echo $adaptiveResponse;
  //check result
  $dom_document->loadXML($adaptiveResponse);
  $searchNode = $dom_document->getElementsByTagName("ack"); 

  if (!is_null($searchNode)) {
    $value=$Node->nodeValue;
    if (strtolower($value) =="failure"){
      return false;
    }
}

但是在 loadXML($adaptiveResponse);我收到以下错误:

Call to a member function loadXML() on a non-object

我看不出有什么原因?

【问题讨论】:

    标签: php dom xml-parsing paypal-adaptive-payments


    【解决方案1】:

    你没有初始化 (Manual)

    $dom_document = new DOMDocument();
    

    应该先初始化再使用

    $dom_document->loadXML($adaptiveResponse);
    

    【讨论】:

    • 谢谢,有时候这很容易......而且谷歌并不总是有帮助!
    • @Diego,欢迎您!它发生了:-)
    猜你喜欢
    • 2014-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多