我正在尝试获取PayPal一次性购买集成的快速结帐令牌。尝试发出 cURL 请求时出现此错误:
ACK=失败&L_ERRORCODE0=81002&L_SHORTMESSAGE0=未指定%20方法&L_LONGMESSAGE0=方法%20指定%20is%20not%20支持&L_SEVERITYCODE0=错误1
这是我的代码
<?php
if(!isset($_GET['id'])) {
header("Location: index.php");
exit();
}
//Get paypal express checkout token
$ch = curl_init("https://api-3t.sandbox.paypal.com/nvp");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"USER: seller-v3rm_api1.test.com",
"PWD: <snip>",
"SIGNATURE: <snip>",
"METHOD: SetExpressCheckout",
"VERSION: 93",
"PAYMENTREQUEST_0_PAYMENTACTION: SALE",
"PAYMENTREQUEST_0_AMT: 25",
"PAYMENTREQUEST_0_CURRENCYCODE: USD",
"RETURNURL: http://test/buy.php",
"CANCELURL: http://test.com",
));
$token = curl_exec($ch);
echo $token;
我错过了什么吗?
您没有正确设置请求字符串。 我真的建议看看这个PayPal PHP SDK。
首先,它将消除您甚至弄乱此类代码的需要,因为它会为您处理所有代码。 您需要做的就是打开它附带的 SetExpressCheckout.php 模板文件并填写参数,然后对您可能使用的其他调用执行相同的操作。
此外,如果你愿意,你可以研究代码,看看它如何处理cURL请求。 你需要构建一个实际的NVP字符串(即&something=like&this=example)。 然后这就是您通过 cURL 发送给PayPal的内容。