【发布时间】: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