2

ASP.Net Web サイトに Paypal を実装しようとしています。RestAPISDK をインストールし、Paypal のこのガイド ( https://devtools-paypal.com/guide/pay_paypal/dotnet ) に従い、ここにある参照 ( https://developer.paypal .com/webapps/developer/docs/api/#execute-an-approved-paypal-payment )

今のところ順調に進んでいますが、Paypal のウェブサイトから戻ると、ドキュメントに従って支払いを実行できません。

ガイドには、次のコードを使用するように記載されています

Dictionary<string, string> sdkConfig = new Dictionary<string, string>();
sdkConfig.Add("mode", "sandbox");
string accessToken = "TOKEN";
APIContext apiContext = new APIContext(accessToken);
apiContext.Config = sdkConfig;

Payment payment = new Payment("PAYMENT ID");
PaymentExecution pymntExecution = new PaymentExecution();
pymntExecution.payer_id = ("DYRNAJP829GTN");
Payment executedPayment = pymnt.Execute(apiContext,pymntExecution);

しかし、Payment には Payment ID を受け取るコンストラクターがありません。

Rest API Reference には、次のメソッドを使用するように記載されています

Payment payment = Payment.Get(accessToken, "Payment ID");

ただし、Payment.Get は減価償却されます。とにかくそれを使用すると、サーバーが404で応答したという例外が発生します。

代わりに何を使うべきですか?正しい方向に向ける最新のドキュメントが見つかりません。HttpClient を使用してリクエストを自分で送信する必要があるかもしれないと考えていますが、そうする必要はないはずです。

4

2 に答える 2

2

同意します。C# のサンプルは機能せず、独自のサンドボックス ストアで支払いを実行しようとすると、同じ 404 例外が発生します。

あなたがする必要があるのは:

Payment payment = Payment.Get(context, paymentID);

context はあなたの apiContext で、 paymentID は PayPal からのリターン URL によって返された ID です。

次に必要なもの:

var paymentExecution = new PaymentExecution
                {
                    payer_id = payerId
                };

最後に、次を呼び出すことができます。

payment.Execute(context, paymentExecution);

これは、承認済みの「状態」を持つ必要がある支払いオブジェクトを返します...

于 2015-05-04T10:37:12.427 に答える
1

Payment.List() メソッドを支持して廃止されたのは、PaymentHistory 取得メソッドです。単一の支払いを取得するには、引き続き Payment.Getメソッドを使用します。

ここで 2 番目のパラメーターに有効な支払い ID を渡してよろしいですか? 渡された ID を持つ支払いが存在しない場合、404 (Not Found) エラーがスローされます。

于 2013-10-31T10:24:22.343 に答える