PayPal NVP API - 获取快速结账令牌

时间:2016-01-17 21:47:49

标签: php curl paypal

我正在尝试获取PayPal one time purchase integration的快速结帐标记。尝试发出cURL请求时出现此错误:

  

ACK =失败&安培; L_ERRORCODE0 = 81002&安培; L_SHORTMESSAGE0 =未指定%20Method&安培; L_LONGMESSAGE0 =方法%20Specified%图20是%20not%20Supported&安培; L_SEVERITYCODE0 = ERROR1

这是我的代码

  <?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;

我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

您没有正确设置请求字符串。我真的建议你看一下PayPal PHP SDK

首先,它将消除你甚至搞乱这种代码的需要,因为它为你处理所有这些。您需要做的就是打开随附的SetExpressCheckout.php模板文件并填写参数,然后对您可能使用的其他调用进行相同的操作。

此外,如果你想要,你可以研究代码,看看它是如何处理cURL请求的。您需要构建一个实际的NVP字符串(即&amp; something = like&amp; this = example)。然后,这是您通过cURL发送给PayPal的内容。