2011-07-02 9 views
6

私は電子商取引サイトを作っており、Paypalの統合は見かけ上機能しています。私はショッピングカートを持っています。その中にはすべてのアイテムが集計され、送料が加算され、その数がペイパルに送付されます。Paypal Sandboxが支払いを処理しないのはなぜですか?

string address = "https://api-3t.sandbox.paypal.com/nvp?USER=<username>&PWD=<password>&VERSION=71.0&SIGNATURE=<signature>&METHOD=SetExpressCheckout&PAYMENTREQUEST_0_AMT=" + lblTotal.Text + "&PAYMENTREQUEST_0_CURRENCYCODE=USD&RETURNURL=http://www.secretskeletonminiatures.com/checkout.aspx&CANCELURL=http://www.secretskeletonminiatures.com/cart.aspx&PAYMENTREQUEST_0_PAYMENTACTION=Sale"; 

    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address); 

は、その後、私は「今すぐ支払う」とペイパルからの応答HttpWebResponseの中で引っ張るとトークンを解析し、ユーザーがログイン後、PayPalになると

Response.Redirect("https://www.sandbox.paypal.com/us/cgi-bin/webscr?cmd=_express-checkout&useraction=commit&token=" + token); 

にユーザーをリダイレクトし、ヒットボタンをクリックして、私のサイトのチェックアウトページにリダイレクトされます。

です。しかし、私がサンドボックスの口座を確認すると、実際に送金される金額はありません。

最も一般的な原因は、リダイレクトURLからuseraction = commitパラメータが欠落していますが、問題がないためです。

答えて

7

後でこの質問につきまとう誰かに。 私はそれを解決しました。 Paypalでの支払いを確認した後、ユーザーがサイトに戻ったら、PayExpCheckoutPaymentリクエストをPaypalサーバーに送信して支払いを処理する必要があります。

処理するには、PayerIDとTOKENをDoExpressCheckoutPaymentに指定します。 PayerIDは、RETURNURLのURLに追加されるか、またはTOKENでGetExpressCheckoutDetailsを呼び出すことで取得できます。

+0

成功URLにリダイレクトされた後、私は 'DoExpressCheckoutPayment'を呼び出しました。支払い詳細を再フェッチし、 'CHECKOUTSTATUS'が' PaymentActionCompleted'であることを示しましたが、ダッシュボードが[取引]タブに表示されていないことを確認しました。 – kapitanluffy

0

私はPay Palを統合したときに同じ問題に直面しました。システムに何らかの修正が加えられているようです。

買い手のアカウントに行くと、支払いが保留中の状態で表示され、商人のアカウントの場合と同じように2日以内に承認される可能性があります。

+0

いずれかのアカウントで保留中の支払いが表示されない –

+0

は、買い手アカウントから減算されて売り手アカウントに追加された金額ですか? –

+0

いいえ、彼らはまだ私がそれらを始めた同じバランスを持っています。 –

関連する問題