2

我在我的 PHP 脚本(curl + SOAP)中以沙盒模式使用 PayPal express。我有一个带有 1 个“购买”按钮的简单购买表格。单击它时,我发送初始 SetExpressCheckout 请求并从贝宝获得成功的响应,其中包含 Ack=success 和新令牌

<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

什么可能导致此错误?我使用的是普通的 US/USD 沙盒帐户,唯一可能看起来可疑的是,在 paypal 响应中,xml 用户名和密码字段为空。

4

1 回答 1

8

此错误是由于在重定向到非沙盒 URL 时使用沙盒凭据引起的。应该是 header("Location: https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=".$result[Token]."&address_override=1")

于 2010-03-10T14:19:43.270 回答