iOS アプリケーションの IPN ハンドラを作成しています。アプリで従来のペイパル API を使用しています。問題は、PayPal IPN シミュレーターからテストすると、正常に動作することです。シミュレーターから以下の投稿メッセージを受け取りました(覚えていないエクスプレスチェックアウトを使用):
map[
business:[seller@paypalsandbox.com]
item_number1:[AK-1234]
receiver_id:[seller@paypalsandbox.com]
first_name:[John]
mc_shipping1:[1.02]
tax:[2.02]
residence_country:[US]
txn_type:[cart]
mc_shipping:[3.02]
test_ipn:[1]
custom:[xyz123]
mc_handling:[2.06]
mc_handling1:[1.67]
payer_id:[TESTBUYERID01]
payment_status:[Completed]
receiver_email:[seller@paypalsandbox.com]
mc_currency:[USD]
verify_sign:[AdsvkafFyuBADI8IS081RggbvUxmAu2ntBemAGacZ3Dx56qQzmc9QzhK]
address_country:[United States]
item_name1:[something]
mc_fee:[0.44]
address_state:[CA]
mc_gross1:[9.34]
payer_status:[unverified]
last_name:[Smith]
invoice:[abc1234]
payment_date:[07:44:54 23 May 2013 PDT]
address_city:[San Jose]
mc_gross:[12.34]
address_street:[123, any street]
notify_version:[2.4]
txn_id:[298300930]
payer_email:[buyer@paypalsandbox.com]
address_status:[confirmed]
payment_type:[instant]
address_zip:[95131]
address_country_code:[US]
address_name:[John Smith]
]
しかし、サンドボックス アカウントでテストしようとすると、以下の投稿メッセージが表示され、これも問題なく動作します。
map[
fees_payer:[EACHRECEIVER]
transaction[0].id:[89799058XE923193M]
verify_sign:[AE6aVMFpE6M3pfCoNe9gPQ4pMixOA9NNUFbTWPTrOik1CqrdIVxc3K3M]
pay_key:[AP-9DJ400382D973781B]
transaction[0].id_for_sender_txn:[8MC20151R46812309]
transaction[0].status:[Completed]
action_type:[PAY]
transaction[0].is_primary_receiver:[false]
sender.useCredentials:[true]
transaction[0].pending_reason:[NONE]
transaction[0].amount:[USD 29.00]
payment_request_date:[Thu May 23 07:46:49 PDT 2013]
reverse_all_parallel_payments_on_error:[false]
test_ipn:[1]
status:[COMPLETED]
transaction[0].status_for_sender_txn:[Completed]
transaction[0].paymentType:[SERVICE]
notify_version:[UNVERSIONED]
transaction[0].receiver:[mail-facilitator@something.com]
return_url:[http://www.paypal.com]
log_default_shipping_address_in_transaction:[false]
charset:[windows-1252]
cancel_url:[http://www.paypal.com]
transaction_type:[Adaptive Payment PAY]
ipn_notification_url:[http://something.com/ipnhandler/]
]
しかし、ご覧のとおり、これら 2 つの間に類似点はなく、ここで私にとって役立つものは何もありません。シミュレーターでは支払人名、電子メールなどを取得しましたが、サンドボックス アカウントを使用すると、支払いを受け取ったことを自分に通知するだけだと思います。どうしてこうなるのか、アプリがライブになったらこうなるのだろうか。