Paypal NVP 身份验证失败

Posted

技术标签:

【中文标题】Paypal NVP 身份验证失败【英文标题】:Paypal NVP Authentication Failure 【发布时间】:2013-07-09 02:16:43 【问题描述】:

目前使用php + cURL在xampp上测试NVP SetExpressCheckout Paypal功能(沙盒模式), 不管我做什么,我都会收到以下错误:

错误代码 10002:身份验证/授权失败。您无权进行此 API 调用。

$nvp = array(
    'METHOD' => 'SetExpressCheckout',
    'VERSION' => '98',
    'USER' => $user,
    'PWD' => $pwd,
    'SIGNATURE' => $signature,
    'RETURNURL' => $returnurl,
    'CANCELURL' => $cancelurl,
    'PAYMENTREQUEST_0_PAYMENTACTION' => 'Sale',
    'PAYMENTREQUEST_0_AMT' => '20.00',
    'PAYMENTREQUEST_0_CURRENCYCODE' => $currency,
    'REQCONFIRMSHIPPING' => '0',
    'NOSHIPPING' => '1',
    'ALLOWNOTE' => '0',
    'LOCALECODE' => 'US'
    'L_PAYMENTREQUEST_0_NAME0' = 'A product name';
    'L_PAYMENTREQUEST_0_AMT0' = '20.00';
    'L_PAYMENTREQUEST_0_QTY0' = '1';
    'L_PAYMENTREQUEST_0_ITEMCATEGORY0' = 'Digital';
);

$request = 'https://api-3t.sandbox.paypal.com/nvp?' . http_build_query($nvp);
$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $request);
curl_setopt($curl, CURLOPT_VERBOSE, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

$response = urldecode(curl_exec($curl));

curl_close($curl);

奇怪的是,如果我在浏览器中键入 curl 请求(与 $request 变量相同),我会从端点获得 SUCCESS 和令牌, 我不知道它是否与卷曲本身有关还是其他原因,我试图完全 禁用我的防火墙,但错误仍然存​​在...

【问题讨论】:

尝试记录您发送的原始请求,以确保请求中没有任何内容被截断。另外,您是否有正在返回的相关 ID,我可以检查日志以查看是否有任何迹象表明我有任何问题。 在记录 curl 函数发出的请求后,我发现了问题:http_build_query() 函数将 '&' 替换为 '&'...令牌。谢谢!! 【参考方案1】:

您的数组格式不正确。

'L_PAYMENTREQUEST_0_NAME0' = 'A product name';

这是开始调试的好方法

【讨论】:

以上是关于Paypal NVP 身份验证失败的主要内容,如果未能解决你的问题,请参考以下文章

Paypal:客户端身份验证失败

PayPal 自适应付款身份验证失败,输入是名称值对。在java中

身份验证请求失败 PayPal Android SDK 示例

Paypal Payout Api:客户端身份验证失败

PayPal Android SDK 实时模式中的身份验证请求失败

PayPal PayFlow 链接测试交易中的 MasterCard 类型的用户身份验证失败