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 のユーザー名とパスワードのフィールドが空であることです。