我正在使用 AngellEye librar 使用 Paypal 自适应支付是的。
除 IPN 外,一切都很好。在沙盒模式下使用 Paypal 时,我会收到一条指向我的 URL 的通知。但是,一旦我上线,我就没有收到对服务器的 IPN POST 请求。我检查了我的 Apache access.log。
我是否需要在某处为实时自适应支付启用 Paypal IPN?
在我的 Paypal 帐户中,在销售偏好下,它显示 IPN 已禁用。要启用它,我还需要提供一个 URL。但是,我的 URL 是动态的,我假设因为我使用的是 Paypal API,所以我不需要更改它?
IPN 的使用:
$PayRequestFields = array(
'ActionType' => 'CREATE',
'CancelURL' => base_url() . 'd/cancel/' . $this->transactionID,
'CurrencyCode' => $this->product->currency,
'ReturnURL' => base_url() . 'd/success/' . $this->transactionID,
'FeesPayer' => 'PRIMARYRECEIVER',
'IPNNotificationURL' => base_url() . 'ipn/status/' . $this->transactionID,
);
最佳答案
自适应支付 IPN 略有不同,因为应用程序会收到一个(如果已配置),然后商家/卖家帐户也会根据收到的实际交易收到一个。
例如,如果您的应用代表第 3 方用户生成支付请求,并且您在支付请求中设置了 NotificationURL,则应用特定的 IPN 将发送到该 URL。交易特定的 IPN 将发送到卖家账户在其自己的 PayPal 账户中配置的 URL。
您还需要确保您的 IPN 脚本配置为正确处理自适应 IPN。它发送的参数名称如 some.name 和 .不适用于常规 $_POST['paramname'] 逻辑。看看这个 IPN template了解它的处理方式……您可能只想使用它。
这是我刚才运行付款请求时收到的应用程序 IPN 的示例。
Array
(
[transaction] =>
[payment_request_date] => Tue May 06 12:49:35 PDT 2014
[return_url] => http://paypal.angelleye.com/paypal/class/1.2/Pay_Return.php
[fees_payer] => EACHRECEIVER
[ipn_notification_url] => http://sandbox.angelleye.com/paypal/ipn/ipn-listener.php
[sender_email] => tester@angelleye.com
[verify_sign] => AFcWxV21C7fd0v3bYYYRCpSSRl31ArVBOvsxhUiZ-m0M3mFjhNWWaRjM
[test_ipn] => 1
[cancel_url] => http://paypal.angelleye.com/paypal/class/1.2/Pay_Cancel.php
[pay_key] => AP-8YH799874R4873815
[action_type] => PAY
[transaction_type] => Adaptive Payment PAY
[status] => INCOMPLETE
[log_default_shipping_address_in_transaction] => false
[charset] => windows-1252
[notify_version] => UNVERSIONED
[reverse_all_parallel_payments_on_error] => false
)
关于Paypal自适应支付和IPN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23503080/