Paypal の定期支払いで問題が発生しました。CreateRecurringPaymentsProfile() は、作成されたプロファイルの ID (ProfileID) を返します。同時に、IPN URL で次の確認を受け取ります。
payment_cycle - Daily
txn_type - recurring_payment_profile_
created
last_name - User
next_payment_date - 03:00:00 Oct 06, 2011 PDT
residence_country - US
initial_payment_amount - 0.00
currency_code - USD
time_created - 23:21:02 Oct 05, 2011 PDT
verify_sign - ...
period_type - Regular
payer_status - verified
test_ipn - 1
tax - 0.00
payer_email - ...
first_name - Test
receiver_email - ...
payer_id - ...
product_type - 1
shipping - 0.00
amount_per_cycle - 20.00
profile_status - Active
charset - windows-1252
notify_version - 3.4
amount - 20.00
outstanding_balance - 0.00
---------->recurring_payment_id - I-6EFKVB5FXRGH
product_name - Ultimate Account
ipn_track_id - ...
明らかに、ProfileID と recurring_payment_id は同じです。この後、支払いに関する確認が受信されます。
mc_gross - 20.00
outstanding_balance - 0.00
period_type - Regular
next_payment_date - 03:00:00 Oct 07, 2011 PDT
protection_eligibility - Ineligible
payment_cycle - Daily
tax - 0.00
payer_id - WR942TMLKNKZE
payment_date - 04:38:37 Oct 06, 2011 PDT
payment_status - Completed
product_name - Ultimate Account
charset - windows-1252
---------->recurring_payment_id - I-5S42CVRD6HPC
first_name - Test
mc_fee - 0.88
notify_version - 3.4
amount_per_cycle - 20.00
payer_status - verified
currency_code - USD
business - ...
verify_sign - ...
payer_email - ...
initial_payment_amount - 0.00
profile_status - Active
amount - 20.00
txn_id - 2XB154738E303273C
payment_type - instant
last_name - User
receiver_email - ...
payment_fee - 0.88
receiver_id - ...
txn_type - recurring_payment
mc_currency - USD
residence_country - US
test_ipn - 1
transaction_subject -
payment_gross - 20.00
shipping - 0.00
product_type - 1
time_created - 03:32:45 Sep 29, 2011 PDT
ipn_track_id - ...
これら 3 つの値: CreateRecurringPaymentsProfile() の戻り値の ProfileID。recurring_payment_profile_created の recurring_payment_id; recurring_payment_id の recurring_payment_id - 同じである必要があります。(この特定のサブスクリプションの支払いを適切に識別する方法は他にないようです) また、(IPN での) recurring_payment が Paypal によって複数回送信されており、そのたびに recurring_payment_id が異なります。
特定のサブスクリプションの支払いを識別するために recurring_payment_id を使用する必要がありますか、またはそれを識別する別の適切な方法がありますか?