Paypal API:不是json响应

时间:2015-01-30 12:26:53

标签: json paypal paypal-sandbox



我正试图从这里执行示例:https://developer.paypal.com/docs/classic/paypal-payments-pro/gs_PayPalPaymentsPro/

curl -s --insecure https://api-3t.sandbox.paypal.com/nvp -d "USER=platfo_1255077030_biz_api1.gmail.com&PWD=1255077037&SIGNATURE=Abg0gYcQyxQvnf2HDJkKtA-p6pqhA1k-KTYE0Gcy1diujFio4io5Vqjf&METHOD=DoDirectPayment&VERSION=78&PAYMENTACTION=SALE&AMT=5&ACCT=4660997962602322&CREDITCARDTYPE=VISA&CVV2=176&FIRSTNAME=James&LASTNAME=Smith&STREET=FirstStreet&CITY=SanJose&STATE=CA&ZIP=95131&COUNTRYCODE=US&EXPDATE=092015"

文档说:

Request method,       format      Response format
 HTTP    GET     Name/value pairs       JSON

但我收到了:

TIMESTAMP=2015%2d01%2d30T12%3a14%3a08Z&CORRELATIONID=474de7dae8e82&ACK=Success&VERSION=78&BUILD=15009693&AMT=5%2e00&CURRENCYCODE=USD&AVSCODE=X&CVV2MATCH=M&TRANSACTIONID=93V64243P1844913T

为什么呢?如何获得json响应?

我试着设置:

VERSION=95

但没有帮助。

2 个答案:

答案 0 :(得分:1)

正如文件所说,paypal NVP api并没有立即提供json响应。

处理响应的方式如下所示, 在PHP中

parse_str($response,$responseArray);

$jsonResponse = json_encode($responseArray);

帮助我从响应字符串中获取数组,然后转换为json。

编辑:您首先需要解码urlencoded字符串。

为此

$response = urldecode($response);

在解析对数组的响应之前。

答案 1 :(得分:0)

虽然我确实看到了您引用的文档(来自https://developer.paypal.com/docs/classic/paypal-payments-pro/gs_PayPalPaymentsPro/),但我认为这是错误的。

我不相信经典的PayPal API支持JSON(自适应支付除外,后来写的@ PayPal&因此在某些方面更加现代化,包括JSON支持)。

请参阅https://developer.paypal.com/docs/classic/api/gs_PayPalAPIs/,其中介绍了可用于从Adaptive API请求JSON的标头,但阐明了其他经典API不支持它。