我希望有人可以帮助我解决非常令人沮丧的情况。
我正在执行来自 PayPal 的验证付款呼叫,此处的文档... https://developer.paypal.com/webapps/developer/docs/integration/mobile/verify-mobile-payment/
在文档中,PayPal 表示用于检查付款的 CURL 应如下所示:
curl https://svcs.sandbox.paypal.com/AdaptivePayments/PaymentDetails \
-H "X-PAYPAL-SECURITY-USERID: user_id" \
-H "X-PAYPAL-SECURITY-PASSWORD: password" \
-H "X-PAYPAL-SECURITY-SIGNATURE: signature" \
-H "X-PAYPAL-REQUEST-DATA-FORMAT: NV" \
-H "X-PAYPAL-RESPONSE-DATA-FORMAT: NV" \
-H "X-PAYPAL-APPLICATION-ID: APP-91B933855X481767M" \
-d "payKey=AP-70M68096ML426802W&requestEnvelope.errorLanguage=en_US"
因此,为了拨打电话,我设置了以下 curl 标头:
$headerArray = array(
'X-PAYPAL-SECURITY-USERID:'.$payPalUser_Id,
'X-PAYPAL-SECURITY-PASSWORD:'.$payPalPassword,
'X-PAYPAL-SECURITY-SIGNATURE:'.$payPalSig,
'X-PAYPAL-REQUEST-DATA-FORMAT:JSON',
'X-PAYPAL-RESPONSE-DATA-FORMAT:JSON',
'X-PAYPAL-APPLICATION-ID:'.$appHeader
);
这是我要发送到的 URL: https ://svcs.sandbox.paypal.com/AdaptivePayments/PaymentDetails?payKey= {$payKey}&requestEnvelope.errorLanguage=en_US'
这是我的 CURL 的代码:
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headerArray);
$adaptiveResponse = curl_exec($ch);
每当我运行 CURL 时,都会被告知我的 API 凭据不正确。所以我真的很困惑。PayPal 要求我相信我拥有的“user_id”、“password”和“signature”。唯一的问题是,当您转到经典的 API 签名页面(如他们所建议的那样)时,只有一个 API 用户名(不是 user_id),它们是一样的吗?如果没有,如何找到他们的 user_id?我尝试用帐户上的电子邮件地址替换用户名,但这也没有奏效。
谁能看到我做错了什么?我在哪里获得贝宝 user_id?