PayPal Express在沙盒模式下返回4011错误消息

时间:2010-03-10 09:12:49

标签: php soap payment-gateway paypal

我在我的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用户名和密码字段为空。

1 个答案:

答案 0 :(得分:8)

导致此错误的原因是使用SandBox凭据,同时重定向到非沙盒URL。 它应该是 header("Location: https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=".$result[Token]."&address_override=1");