2014-01-20 10 views
10

PayPalのExpress Checkoutで簡単な支払い手順を設定しようとしています。私のSetExpressCheckoutコールは正常に動作するようですが、私はACK=Successとトークンを取得します。しかし、そのトークンを使用してユーザーをPayPalにリダイレクトすると、常に以下のようなメッセージが表示されます。PayPal Express Checkoutには、「この取引は期限切れです。」というユーザーが常に表示されます。ページ、APIエラーはありません

この取引は失効しています。受領者のウェブサイト に戻り、定期的なチェックアウトフローを使用して取引を完了してください。

あなたのセッションは大変申し訳ございません

を終了しているが、あなたのセッションは終了しました。お客様のアカウントには が請求されていません。ショップのサイトに戻って、PayPalで をもう一度確認してください。

明確にするために、私はSetExpressCheckout API呼び出しからエラーコードを取得しませんが、トークンは常に期限切れになっているようです。ナンセンストークンにリダイレクトしようとしましたが、別のページが生成されます。私は有効なトークンを受け取っていて、それを正しくリダイレ​​クトしているようですが、1〜2秒で期限切れになります。例要求の

詳細:リクエストに関する

Array 
(
    [PAYMENTACTION] => Sale 
    [useraction] => commit 
    [RETURNURL] => xxxx 
    [CANCELURL] => xxxxx 
    [PAYMENTREQUEST_0_AMT] => 49.00 
    [PAYMENTREQUEST_0_SHIPPINGAMT] => 0 
    [PAYMENTREQUEST_0_CURRENCYCODE] => USD 
    [PAYMENTREQUEST_0_ITEMAMT] => 49.00 
    [L_PAYMENTREQUEST_0_NAME0] => xxxxx 
    [L_PAYMENTREQUEST_0_DESC0] => xxxxx 
    [L_PAYMENTREQUEST_0_NUMBER0] => xxxxx 
    [L_PAYMENTREQUEST_0_AMT0] => 49 
    [L_PAYMENTREQUEST_0_QTY0] => 1 
    [METHOD] => SetExpressCheckout 
    [VERSION] => 74.0 
    [USER] => xxxxx 
    [PWD] => xxxxx 
    [SIGNATURE] => xxxxx 
) 

Curl_getinfo:

Array 
(
    [url] => https://api-3t.sandbox.paypal.com/nvp 
    [content_type] => text/plain; charset=utf-8 
    [http_code] => 200 
    [header_size] => 255 
    [request_size] => 798 
    [filetime] => -1 
    [ssl_verify_result] => 0 
    [redirect_count] => 0 
    [total_time] => 1.139 
    [namelookup_time] => 0 
    [connect_time] => 0.187 
    [pretransfer_time] => 0.64 
    [size_upload] => 660 
    [size_download] => 136 
    [speed_download] => 119 
    [speed_upload] => 579 
    [download_content_length] => 136 
    [upload_content_length] => 660 
    [starttransfer_time] => 1.139 
    [redirect_time] => 0 
    [certinfo] => Array 
     (
     ) 

    [primary_ip] => 23.4.59.42 
    [primary_port] => 443 
    [local_ip] => 192.168.0.102 
    [local_port] => 63049 
    [redirect_url] => 
) 

私は戻ってペイパルから何を得る私は、最初のSetExpressCheckoutの要求で送信しています何

カール経由:

Array 
(
    [TOKEN] => EC-59031295261754641 
    [TIMESTAMP] => 2014-01-20T10:12:27Z 
    [CORRELATIONID] => 84d3d68cbd574 
    [ACK] => Success 
    [VERSION] => 74.0 
    [BUILD] => 9285531 
) 

私は、この場合には、(トークンurlencode Dで)そのトークンのための関連URLにユーザーをリダイレクトしています:

https://www.paypal.com/webscr?cmd=_express-checkout&useraction=commit&token=EC-59031295261754641 

すべてが私には罰金だが、私はそのURLにリダイレクトとき、 「トランザクションは期限切れの画面です」と表示されます。

誰かが間違っていることを指摘できますか?

+0

同じ問題が発生していますが、私のURLはPayPalのドキュメントで定義したものと一致しているようです。 –

答えて

31

問題は、サンドボックス・モードであったことであり、リダイレクションはむしろ、上記に示したURLより

https://www.sandbox.paypal.com/webscr?cmd=_express-checkout&useraction=commit&token=

になされるべきです。

これはExpress Checkout integration guideの36ページに示されています。

0

私はPayPalのクッキーに

1

を削除することを解決し、私もPayPalのクッキーを削除すると同様の問題を解決しました。問題は、同じブラウザでsandboxアカウントのclientId/secretを変更した場合です。

関連する問題