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 凭据不正确的主要内容,如果未能解决你的问题,请参考以下文章

即使使用实时 api 凭据,Paypal Express 结帐错误

沙盒的 PayPal API 凭据

Paypal 新沙盒帐户未生成 api 凭据

从 SDK 获取 Paypal API 凭证

如何为专业帐户创建 PayPal App Id 实时凭据

使用 Codeigniter,我如何向其他开发人员隐藏 Paypal 凭据?