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 自适应付款身份验证失败,输入是名称值对。在java中
身份验证请求失败 PayPal Android SDK 示例