2

PHP スクリプト (curl + SOAP) でサンドボックス モードで PayPal Express を使用しています。「購入」ボタンが 1 つあるシンプルな購入フォームがあります。クリックすると、最初の SetExpressCheckout リクエストを送信し、paypal から 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 に答える