Paypal サブスクリプション IPN のテスト
-
21-09-2019 - |
質問
PayPal サブスクリプション IPN をテストしたいと思います。サブスクリプションの作成時に受信した IPN と、次回の支払いで後で送信された IPN (サブスクリプションが月額 x ドルの場合は毎月など) の両方をテストしたいと考えています。
ただし、2 番目の IPN を受け取るまでに 1 か月や 1 日も待たないでください。PayPal またはそのサンドボックスを使用して、IPN を 1 時間ごとなど、より速く送信する方法はありますか?
ドキュメントには、サブスクリプション期間として年、月、日、週のみを指定できると記載されています。
解決
それはD3 'を指定するときに、3分ごとに呼び出されると思いますので、日数で指定された期間は分として、テストサーバーによって処理されることに使用されます。私は、彼らがこれを削除し、私はテストサブスクリプションへの代替機能を認識していないと思います。
他のヒント
PayPalの開発者サポートおよびドキュメントは、それらに恥ずかしです。しかし、この特定の制限は、それは一見思えるほど衰弱ではありません。
テストのために、のないの無料トライアルを持っているあなたの定期的な支払いを定義します。新しいサブスクリプションを作成すると、サーバーは、1つのサブスクリプションと支払いを適用するための第二を作成するために、立て続けに2つのIPNメッセージを受信します。それは基本的にあなたがテストするために必要なすべてのです。
あなたは無料トライアルをお持ちの場合は、、あなただけのそれらの間の試用期間で、基本的にメッセージの同じペアを取得します。 :)
最初のメッセージ(「サブスクリプションを作成する」)は、このようになります。 「txn_type」を注意してください - それは、2つのメッセージを一義化のための情報の重要なビットです。
{
"txn_type"=>"subscr_signup",
"subscr_id"=>"unique_id",
"verify_sign"=>"random_gibberish",
"item_number"=>"your_subscription_name"
"subscr_date"=>"14:32:23 Feb 15, 2010 PST",
"btn_id"=>"1111111",
"item_name"=>"Your Subscription Description",
"recurring"=>"1",
"period1"=>"1 M",
# This example is from a "free trial" IPN notification-- if you don't have a
# free trial defined, there will only be 'period1' fields, and they'll
# have the data that appears here in the 'period3' fields.
"amount1"=>"0.00",
"mc_amount1"=>"0.00",
"period3"=>"1 M",
"amount3"=>"34.95",
"mc_amount3"=>"34.95",
"mc_currency"=>"USD",
"payer_status"=>"verified",
"payer_id"=>"payer_unique_id",
"first_name"=>"Test",
"last_name"=>"User",
"payer_email"=>"test_xxxx@example.com",
"residence_country"=>"US",
"business"=>"seller_xxxxxxx@example.com",
"receiver_email"=>"seller_xxxxxxx@example.com",
"reattempt"=>"1",
"charset"=>"windows-1252","notify_version"=>"2.9","test_ipn"=>"1",
}
第2のメッセージは、この場合、より興味深いものです。それは本質的に定期的な支払いが適用されたとき、あなたが後で取得します正確に同じメッセージになります。それは次のようになります:
{
"txn_type"=>"subscr_payment",
"subscr_id"=>"unique_id",
"verify_sign"=>"random_gibberish",
"txn_id"=>"payment_unique_id",
"payment_status"=>"Completed",
"payment_date"=>"12:45:33 Feb 16, 2010 PST",
"item_number"=>"your_subscription_name"
"subscr_date"=>"14:32:23 Feb 15, 2010 PST",
"custom"=>"data-you-sent-in-a-custom-field",
"id"=>"1",
"payment_gross"=>"34.95",
"mc_currency"=>"USD",
"payment_type"=>"instant",
"payment_fee"=>"1.31",
"payer_status"=>"verified",
"mc_fee"=>"1.31",
"mc_gross"=>"34.95",
"btn_id"=>"1111111",
"payer_id"=>"payer_unique_id",
"first_name"=>"Test",
"last_name"=>"User",
"payer_email"=>"test_xxxx@example.com",
"residence_country"=>"US",
"receiver_id"=>"your_merchant_id",
"business"=>"seller_xxxxxxx@example.com",
"receiver_email"=>"seller_xxxxxxx@example.com",
"protection_eligibility"=>"Ineligible",
"transaction_subject"=>"",
"charset"=>"windows-1252","notify_version"=>"2.9","test_ipn"=>"1",
}
ですから、一日を待たずに、ほぼすべてのテストを行うことができます。それは釘付けあなたが持っていると思う時点で、あなたは次の日のサブスクリプションIPNメッセージの多くを受け取ることになります。
また、ここのPayPalのドキュメントへのリンクありさらに参考のために。
テスト IPN を再送信できるため、テスト用に 1 つのサブスクリプションを「購入」するだけで済みます。サブスクリプションを 1 つ購入したら、次のことを行います。
- PayPal サンドボックスにログインします 売り手 アカウント。
- 「プロフィール」=>「販売設定」を選択します。
- 3 番目の列から「即時支払い通知設定」を選択します。
- IPN が有効になっていて、URL が正しいことを確認します。
- へのリンクをクリックします。 IPNの歴史 ページ。
- 下にスクロールして 1 つ以上の IPN にチェックを入れ、「再送信」をクリックします。
確認すると、選択した IPN が指定した URL に再送信されます。同じ IPN を無制限に繰り返すことができます。
@dondoによる素晴らしい回答が残りをカバーしています。
ちょっと私はちょうどそれは私が探していたまさにですのでニールに叫ぶを投げたかったし、私は、またはupvote ..
を返信するのに十分な評判を持っていませんIPNファイルとサブスクリプション・テストを行うことが簡単になりません、まだペイパル信じられないかもしれません:/
だから、私はここでそれを見ていなかったという理由だけで、彼らは唯一の教皇から2つの可能な応答を期待した印象の下にあったようOPは一種の響き -
誰が問題を抱えている場合は、、ここでテストをしている間、私は、IPNヒットいくつかの他のtxn_typeあります:
//when paypal subscription profile is created for the subscriber
subscr_signup
//payment made for a given billing cycle
subscr_payment
//when subscription fails
subscr_failed
//user cancels subscription - not
subscr_cancel
//end of term - paypal is "done" with that subscriber
subscr_eot
//why I was looking for this thread to begin with lol
recurring_payment_suspended_due_to_max_failed_payment
その最後のものは私のテスト加入者のすべての最後の1に対して今朝私のIPNを打ちます。私はそれが何を意味するのかまで探していたとき、私は次のようにも取得することが可能であることを発見ます:
recurring_payment_profile_created
recurring_payment_profile_cancel
recurring_payment_profile_modify
recurring_payment
recurring_payment_skipped
recurring_payment_failed
(サブスクリプションはおそらく終了することはできませんが、定期支払いは、誰かが任意の「サブスクリプション」のために作ることができ、総支払額のキャップを持っている)私はサブスクリプションと定期支払いはPayPalの目に技術的に異なっているので、ことを得るために何をしたか分かりませんしかし、そのドキュメントはどちらか、まっすぐ前方に常にではないので、私は知りません。私はまだ、これはサンドボックスの商人のアカウントによって生成されたサブスクリプションボタンだったが、何として考え出すに取り組んでいること。
ハッピー頭痛:)
UPDATE: 私はちょうど今、私の問題を考え出した - 私は私が説明しましょうやっているか知っているように聞こえるので、ちょうどので...
私はPayPalのサブスクリプションサンドボックス環境は徐々に死んでいると思います。私は、「致命的な失敗」の時間の多くを得ることsandbox.paypal.comにいじりだとき、私は他の日に気づきました。ページを更新すると、時々、私は戻ってくるには、画面に数回を更新する必要があるものの、このほとんどの時間を修正しているようです。
私は私が持っていたすべてのサブスクリプションは、今日の中断理由を説明私のIPNファイルを、打つそれから同じ応答を取得しています。ニールのおかげで私は、IPNの応答を再送信することができたと私は、テキストファイル(笑)にそれを撮影した後、私は応答を読み取るIPNファイルを打つとPayPalでそれを投げ返す(それよりもその本当に多くの複雑な私はちょうどよ)それは簡単に聞こえる作ります。
ページを更新することによってどのような場合でも、私は、要求に応じて、多かれ少なかれPayPalのハンドシェイクを開始することができ、私が行うとき、それは50/50です - 時々私が検証を取得し、時々私は、致命的な失敗を取得する - 私はしようとすると、ちょうど好き自分のサンドボックスサイト(致命的な失敗)で何かのあまり。
以下は、私は彼らから取得失敗応答の一部の例です...私は200を取得するので、私は自分のサーバーをヒットすることは、接続の問題ではありませんが、私は致命的な失敗」とのパターンを見て始めています信じています「ここに、これは私よりも彼らの最後を指す
HTTP/1.1 200 OK
Date: Tue, 29 Sep 2015 02:41:00 GMT
Server: Apache
Fatal Failure
あなたはまた、手動で自分のサンドボックスからIPNを作成することができます:
https://developer.paypal.com/cgi-ビン/ devscr?CMD = _ipnリンクセッションの