Paypal自适应支付和IPN

Abs*_*Abs 1 paypal paypal-ipn paypal-adaptive-payments

我使用AngellEye librar y 来使用Paypal自适应支付.

一切都很好,除了IPN.在Sandbox模式下使用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,  
        );
Run Code Online (Sandbox Code Playgroud)

Dre*_*ell 7

自适应付款IPN略有不同,因为应用程序将收到一个(如果已配置),然后商家/卖家帐户也将根据他们收到的实际交易获得一个.

例如,如果您的应用代表第三方用户生成付款请求,并且您在付款请求中设置了NotificationURL,则会向该网址发送特定于应用的IPN.特定于交易的IPN将被发送到卖方帐户在其自己的PayPal帐户中配置的URL.

您还需要确保将IPN脚本配置为正确处理Adaptive IPN.它发送的参数名称类似于some.name和.不适用于常规$ _POST ['paramname']逻辑.看看这个IPN模板是如何处理的......你可能只想使用它.

这是我刚刚运行Pay请求时收到的应用程序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
)
Run Code Online (Sandbox Code Playgroud)