6

私は e コマース サイトを作成していますが、PayPal の統合は機能しているようです。私はショッピング カートを持っており、そこにあるすべてのアイテムを合計し、配送料を追加してから、その金額をこれらの行でペイパルに送信します。

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 を使用してペイパルからの応答を取得し、トークンを解析してユーザーをリダイレクトします。

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

ユーザーがペイパルにアクセスしたら、ログインして [今すぐ支払う] ボタンをクリックすると、サイトのチェックアウト ページにリダイレクトされます。

だから、すべてがうまくいくようです。しかし、サンドボックスのアカウントを確認すると、実際には送金されていません。

最も一般的な原因は、useraction=commit パラメーターがリダイレクト URL にないことですが、そこにあるため問題ではありません。

4

2 に答える 2

8

後でこの質問に出くわした他の人へ。私はそれを解決しました。Paypal で支払いを確認した後、ユーザーがサイトに戻ったら、Paypal サーバーに DoExpressCheckoutPayment リクエストを送信して、支払いを処理する必要があります。

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

于 2011-09-12T00:21:32.107 に答える
0

ペイパルを統合したときに同じ問題に直面しましたが、システムに何らかの変更が加えられたようです.

購入者のアカウントにアクセスすると、支払いが保留状態で、数日後に承認されることがわかります。これは、マーチャント アカウントの場合と同じ動作です。

于 2011-07-02T06:25:32.877 に答える