我正试图从这里执行示例: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
但没有帮助。
答案 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不支持它。