我试图使用nvp安装快速结账时启动并运行。 我在沙箱中设置了业务帐户,并生成了api访问签名凭据。
$this->NVPCredentials = 'USER=' . credentials['username'];
$this->NVPCredentials .= '&PWD=' . credentials['password'];
$this->NVPCredentials .= '&VERSION=108.0';
$this->NVPCredentials .= '&SIGNATURE=' . credentials['signature'];
如上所示包装凭据+创建nvp字符串的付款详细信息所需的所有详细信息,以下是卷曲调用
$curl = curl_init('https://api-3t.sandbox.paypal.com/nvp');
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $Request);
$ Request保存传递的nvp字符串。
我确保设置了所有必填字段,但我总是得到10002 |身份验证/授权失败|您无权进行此API调用
我认为这是签名的问题,所以我删除了签名,而是创建了一个证书文件,从沙盒帐户下载并使用它,但仍然是相同的错误。无论我改变什么,它总是抛出相同的错误。
curl_setopt($ curl,CURLOPT_SSLCERT,$ pathtocertpem);
我的想法已经用完了。请不要犹豫,询问更多细节,如果有人知道我可能做错了什么,请不要犹豫。非常感谢。
此致
泥盆
答案 0 :(得分:0)
我能够通过将数组而不是nvpstring传递给curl然后使用http_build_query函数来格式化所有参数来解决问题
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($Request))
这似乎已经成功了。