ASP.NET WebサイトでのPayPalの実装

先日、ASP.NETで実行されている商用サイトにPayPalを導入するタスクが発生しました。 この問題を詳細に調査した結果、RuNetには情報がほとんどないことが判明しました。 したがって、この問題を強調することが適切だと思います。 いつものように、問題の声明から始めます。



問題の声明



ユーザーが製品を選択し、クレジットカードにデータを入力し、インターネット経由で支払いを行うオンラインストアがあります。 クレジットカード情報は、サイトで直接入力されます。 出金取引はPayPalを経由する必要があります。



解決策



ステップ1. PayPal Sandboxにサインアップする



テストできるようにするには、 Sandboxというテスト環境に登録する必要があります。 これは次のように行われます。

1. developer.paypal.comにアクセスして、新しいアカウントを登録します。

2. developer.paypal.comにログインし、[ テストアカウント ]タブに移動して、そこに新しい売り手のテストアカウントを作成します。 作成中に、 セラーオプションを選択します。 パスワードフィールドには、後でSandBoxにログインするために必要なパスワードが含まれます。 作成後、アカウントは、メールタイプblabla_1234567890_biz [at] email.comとパスワードフィールドにあったパスワードで表示されます。 それらを使用する

3. www.sandbox.paypal.comにログインします。 ログイン後、請求契約に同意する必要があります。



ステップ2.サイトへの統合



ギモニーオプション

1. PayPal API:SOAPインターフェイスページで、.NETプラットフォーム用のSDKをダウンロードします

2.インストーラーをインストールし、インストールディレクトリに移動して、そこからbinディレクトリからlog4net.dllおよびpaypal_base.dllライブラリを選択します。 理論的には、支払いシステムを機能させるために必要なすべてが含まれています。 これらのライブラリの使用例は、SDKに付属のサンプルサイトにあります。

致命的ではないが削除されたオプション

注意点は、この方法ではDirectPaymentのみを作成できることですが、そうする必要はありません。 したがって、このオプションが最適だと思います。

1. DirectPaymentを実行できるPayPal SDKのラッパーダウンロードします 。 ラッパーは、log4net.dllとpaypal_base.dllのライブラリ、および実際のラッパーSiteMechanics.PayPalDirect.dllです。 インターフェース、IMerchantProfile、IBuyerProfile、およびそれらからのデフォルトの継承者が含まれています。 これらのインターフェイスはPayPalHelperクラスによって使用され、PayPalを介して実際に支払いを実行します。 したがって、ラッパーを使用するには、2つのインターフェイスを継承し、すべてのフィールドに相続人を入力し、相続人をDoDirectPaymentメソッドに渡す必要があります。 返されたオブジェクトにはAckフィールドが含まれ、成功の場合は支払いが成功し、失敗の場合はエラーフィールドに発生したすべてのエラーが含まれます。 インターフェースを無駄に継承する場合、MerchantProfileおよびBuyerProfileの既成の後継を使用できます。 以下のサンプルコードを参照してください。

MerchantProfile merchant = new MerchantProfile(

"blabla_1234567890_biz[at]email.com",

"1234567890",

"odifhp9p83948rlwkcmnwli430948f3ojldkjflskdjlsdkjsf0o98209",

"sandbox");

BuyerProfile buyer = new BuyerProfile(

"John","Doe",

"1 Main St","", "San Jose","CA","95131",

"Visa", "4197058882575379","926",

10,2010

);

PayPalResponse PayPalResponse = PayPalHelper.DoDirectPayment("13.45", merchant, buyer);







落とし穴



1.バイヤーのテストクレジットカード:

CreditCardType:Visa

クレジットカード番号:4197058882575379

検証コード:926

有効期限2010-10

2.テスト環境があるため、環境パラメーターとして「サンドボックス」を使用して「実際の」PayPalを有効にし、「ライブ」を指定する必要がありますが、公式ドックでこれを明確にする必要があります。

3. MerchantProfileの情報は、 developer.paypal.comの Credentials APIセクションにあります。

4.このラッパーは、PayPalサーバーとサイト間の転送方法(3トークンと呼ばれます)を使用しますが、証明書に基づいてこれを行う機会はまだありますが、見せかけのように見えたため、対処しませんでした。 RTFM

5.「セキュリティヘッダーが無効です」エラーが表示された場合、MerchantProfileのパラメーターが正しくありません

6.「この取引は無効なマーチャント設定のため処理できません」というエラーが表示される場合、請求契約は受け入れられていません。 「PayPalサンドボックスに登録する」セクションの3番目の段落をご覧ください。



ラッパーが集中的なテストに合格せず、いつものように、すべてを自分の責任とリスクで使用することをすぐに警告します。 しかし、すべてがそこで機能するようです。 どちらかといえば、paradoxs.mail @ gmail.comにここに書いてください



参照資料

Integration CenterSandboxとは、さまざまなプラットフォーム用のSDKをダウンロード



All Articles