我在我的PHP脚本(curl + SOAP)中使用沙盒模式的PayPal express。 我有一个简单的购买表格,带有1个“购买”按钮。 点击它的时候 我发送初始的SetExpressCheckout请求并从paypal获得成功的响应 使用Acc =成功和新令牌
<Ack xmlns="urn:ebay:apis:eBLBaseComponents">Success</Ack>
<Token xsi:type="ebl:ExpressCheckoutTokenType">EC-4GV76670YM092205U</Token></SetExpressCheckoutResponse>
接下来,我尝试使用此新令牌将脚本重定向到PayPal:
header("Location: https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=".$result[Token]."&address_override=1");
但结果PayPal会显示一个包含错误消息的页面:
对不起,我们遇到了暂时的困难。请稍后再试。如果在付款时发生此错误,请在重新发送付款之前检查您的帐户概述,以避免重复付款。 消息4011
导致此错误的原因是什么?我使用的是简单的美国/美国沙盒帐户,唯一可能看起来可疑的是,在paypal响应中,xml用户名和密码字段为空。
答案 0 :(得分:8)
导致此错误的原因是使用SandBox凭据,同时重定向到非沙盒URL。
它应该是
header("Location: https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=".$result[Token]."&address_override=1")
;