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

Posted

技术标签:

【中文标题】PayPal NVP API - 获取快速结帐令牌【英文标题】:PayPal NVP API - Getting Express Checkout Token 【发布时间】:2016-04-22 23:57:56 【问题描述】:

我正在尝试获取 PayPal one time purchase integration 的快速结帐令牌。尝试发出 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;

我错过了什么吗?

【问题讨论】:

【参考方案1】:

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

首先,它将消除您甚至弄乱此类代码的需要,因为它会为您处理一切。您需要做的就是打开它附带的 SetExpressCheckout.php 模板文件并填写参数,然后对您可能使用的其他调用进行相同的操作。

不过,如果您愿意,也可以研究代码以了解它是如何处理 cURL 请求的。您需要构建一个实际的 NVP 字符串(即 &something=like&this=example)。然后这就是您通过 cURL 发送到 PayPal 的内容。

【讨论】:

以上是关于PayPal NVP API - 获取快速结帐令牌的主要内容,如果未能解决你的问题,请参考以下文章

PayPal Java NVP API GetExpressCheckoutDetails - 缺少数据

PHP PayPal API 快速结帐

Paypal 定期付款 - 快速结帐 APPID 被拒绝

Paypal 即时更新 nvp 不工作(沙盒环境)

使用 nvp 设置快速结帐时卡在使用 curl 进行授权/身份验证

Paypal 快速结帐剩余销售税