我在我的 PHP 脚本(curl + SOAP)中以沙盒模式使用 PayPal express。 我有一个带有 1 个“购买”按钮的简单购买表格。 当它被点击时 我发送初始 SetExpressCheckout 请求并从 paypal 获得成功响应 Ack=success 和一个新的 token
<Ack xmlns="urn:ebay:apis:eBLBaseComponents">Success</Ack>
<Token xsi:type="ebl:ExpressCheckoutTokenType">EC-4GV76670YM092205U</Token></SetExpressCheckoutResponse>
接下来我尝试使用这个新 token 将脚本重定向到 PayPal:
header("Location: https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=".$result[Token]."&address_override=1");
但结果是 PayPal 显示了一个带有错误消息的页面:
很抱歉,我们遇到了暂时的困难。请稍后再试。如果在付款时发生此错误,请在重新发送付款前检查您的账户概览,避免重复付款。 消息4011
是什么导致了这个错误?我使用的是普通 US/USD 沙盒帐户,唯一可能看起来可疑的是在 paypal 响应 xml 用户名和密码字段中为空。
最佳答案
此错误是由于在重定向到非沙盒 URL 时使用沙盒凭据引起的。
应该是
header("位置:https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=".$result[Token]."&address_override=1")
;
关于php - PayPal Express 在沙盒模式下返回 4011 错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2415640/