Paypal 返回的 API 凭据不正确
Posted
技术标签:
【中文标题】Paypal 返回的 API 凭据不正确【英文标题】:Paypal returns API credentials are incorrect 【发布时间】:2013-09-15 13:10:07 【问题描述】:我已经与这个问题斗争了五天了。这对我来说是个谜。任何人都可以找出为什么此代码返回 error52003,API 凭据不正确?非常感谢您的帮助或新观点。
<?php
$USER_ID="userid";
$USER_PASS="userpass";
$USER_SIG="usersig";
$APP_ID="appid";
$apiUrl="https://svcs.sandbox.paypal.com/AdaptivePayments/Pay";
$headers = array(
"X-PAYPAL-SECURITY-USERID: ".$USER_ID,
"X-PAYPAL-SECURITY-PASSWORD: ".$USER_PASS,
"X-PAYPAL-SECURITY-SIGNATURE: ".$USER_SIG,
"X-PAYPAL-APPLICATION-ID: ".$APP_ID,
"X-PAYPAL-REQUEST-DATA-FORMAT: JSON",
"X-PAYPAL-RESPONSE-DATA-FORMAT: JSON"
);
$createPacket = array (
"actionType"=>"PAY",
"currencyCode"=>"EUR",
"receiverList"=> array (
"receiver"=> array(
array(
"amount"=> "1",
"email"=>"merchant1@someemail.sk"
),
array(
"amount"=> "2",
"email"=>"merchant2@someemail.sk"
)
)
),
"returnUrl"=>"https://www.sandbox.paypal.com/",
"cancelUrl"=>"https://www.sandbox.paypal.com/",
"requestEnvelope"=>array(
"errorLanguage"=>"en_US"
)
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($createPacket));
curl_setopt($ch, CURLOPT_HEADER, array($headers));
$result= curl_exec($ch);
curl_close($ch);
echo $result;
?>
【问题讨论】:
您不应在本网站等公共场所分享您的 API 凭证。如果您确定这些值是正确的,您可以隐藏它们并假设问题出在其他地方 如果您使用 cURL 发送 POST 字段,您还应该设置“告诉”库您正在执行此操作的标志,如下所示:curl_setopt($ch, CURLOPT_POST, 1);
很高兴指出这样的事情,米舒。这些凭据是他们为测试目的而提供的标准贝宝凭据。随意尝试此代码。我添加了您提到的行,但没有帮助。还有其他想法吗?
六天前是否正常工作?
【参考方案1】:
curl_setopt($ch, CURLOPT_HEADER, array($headers));
应该是:
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
【讨论】:
嘿马特,我给你打勾,因为这确实是一个错误。但是,仍然无法正常工作。同样的老错误。一定有别的东西。你能看到什么吗? 修改了我的解决方案。不要将$headers
扔到数组中——它已经是一个数组了。
成功!!!我已经失去了五天的生命,但这条信息是值得的!你做到了!感谢上帝赐予像你这样的巫师。上帝保佑你所有的房子。谢谢以上是关于Paypal 返回的 API 凭据不正确的主要内容,如果未能解决你的问题,请参考以下文章