我有一个有效的应用程序通过自适应链式付款进行付款。这工作正常,但我现在正在实施一个IPN侦听器来处理退款。我在沙盒中测试。
我已经确认,当直接在PayPal中退款时,IPN Listener会收到退款消息,但是我没有看到该文件中有关退款金额的任何变量。
我看到的回复数据是:
11/Mar/2015:09:33:01] (ipn_handler) [-1-] : POST
array (
'transaction' =>
array (
0 => 'NONE',
1 => 'Refunded',
),
'log_default_shipping_address_in_transaction' => 'false',
'action_type' => 'PAY',
'ipn_notification_url' => 'http://example.com/paypal/ipn_handler.php',
'charset' => 'windows-1252',
'transaction_type' => 'Adjustment',
'notify_version' => 'UNVERSIONED',
'reason_code' => 'Refund',
'cancel_url' => 'http://example.com/paymentCancel.php',
'verify_sign' => 'AFcWxxxxxxxxxxxxxxxxxxxxwy5O5OqOKKa.xxxx',
'sender_email' => 'zakbuyer@gmail.com',
'fees_payer' => 'EACHRECEIVER',
'return_url' => 'http://example.com/paymentSuccess.php',
'memo' => 'purchase of item Gear Shift cufflink',
'reverse_all_parallel_payments_on_error' => 'false',
'pay_key' => 'AP-5KHxxxxxxxxxxxxxxx',
'status' => 'COMPLETED',
'test_ipn' => '1',
'payment_request_date' => 'Thu Mar 05 01:09:00 PST 2015',
)
我期待找到mc_gross和mc_currency等。 根据提供的数据,我可以查找交易没问题,但如果部分退款已完成,我无法处理。
我在https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNandPDTVariables/
找到了我的信息答案 0 :(得分:0)
使用Adaptive Payments时,实际上需要确认两个单独的IPN侦听器。
您在Adaptive Payments API请求的IPNNotificationURL参数中设置的值是特定于应用程序的IPN。发送给该侦听器的数据是应用程序所有者可能希望帮助跟踪通过其应用程序运行的事务的数据,但此数据在实际事务详细信息方面非常有限。
要获得您期望的参数,需要在卖家帐户中配置IPN(在本例中为refunder的帐户)。然后,当退款发生时,PayPal会使用您期望看到的参数向该听众发送IPN。