web-dev-qa-db-ja.com

PaypalのURLを通知

Paypalは、[今すぐ購入]ボタンの作成中に指定した戻りURLに正常に戻ります。しかし、今私は混乱しています。 Paypalで発生したトランザクションの詳細を取得するにはどうすればよいですか?そして、戻りURLにいくつかのデータベース値を設定したいのです。しかし、Paypalに支払うことなくユーザーがそのURLにアクセスすると、彼もプレミアムメンバーになるのではないかと心配しています。これをどのように保護しますか?

44
TCM

Paypalは、IPNと呼ばれるものを介してサイトにデータを返します。これは、指定したURLへのコールバックにすぎません。 Paypalに送信できる変数notify_urlを介してこのURLを設定できます。

例:

<input name="notify_url" value="http://yourdomain.com/notify_url.php" type="hidden">

上記の例のnotify_url.phpは、支払いが完了すると、顧客がWebサイトに戻らなくても、PaypalからPOST変数を受け取ります。

Paypalによって返される重要な 変数 の一部は次のとおりです。

  • mc_gross
  • 請求書
  • settle_amount
  • protection_eligibility
  • address_status
  • payer_id
  • 税金
  • アドレスストリート
  • 支払期日
  • 支払い状況
  • 文字コード
  • address_Zip
  • mc_shipping
  • mc_handling
  • ファーストネーム
  • mc_fee
  • address_country_code
  • 為替レート
  • address_name
  • notify_version
  • settle_currency
  • カスタム
  • payer_status
  • ビジネス
  • address_country
  • address_city
  • verify_sign
  • payer_email
  • txn_id
  • 支払いタイプ

設定した場合、請求書が返されます。独自の注文ID /トランザクションIDとして使用できます。

txn_idはPaypalによって生成され、トランザクションの独自のIDです。

自分でアイテムを追加すると、Paypalはnum_cart_items、item_name1(item_name2、item_name3)、quantity1(quantity2、quantity3)なども返します。

https://cms.Paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_html_Appx_websitestandard_htmlvariables でさらに読む

もちろん、解決すべき問題はまだあります。このすべてのデータを確認し、おそらくあなたが持っているデータベースにある顧客に接続する方法です。

私が行うことは、請求書IDで顧客をPaypalに送信する前に一時的な「注文」を保存することです。同じIDを請求書としてPaypalに送信します。これにより、notify_url.phpページでデータベースで請求書IDを確認し、注文/支払いを比較できます。

78
jamietelin