PayPal IPN订户金额付费变量不可用

时间:2014-12-04 02:29:09

标签: php paypal

我正在使用PHP版本的Paypal IPN,并使用以下代码来确定是否有从paypal回调支付的金额:

[代码]

if(isset($_POST['mc_amount1'])){
    $payment_amount = $_POST['mc_amount1'];
}elseif(isset($_POST['mc_gross'])){
    $payment_amount = $_POST['mc_gross'];
}elseif(isset($_POST['payment_gross'])){    
    $payment_amount = $_POST['payment_gross'];
}else{
    $payment_amount = "Amount Not Available";
}

[/代码]

问题在于,有时它有效,有时它不会,注意我的买家是订阅者,他们不支付他们订阅我的项目。但我有2个帐户从相同的paypal支付,一个查询是正确的金额,另一个是金额不可用,而当我检查paypal ipn响应它两者完全相同,只是用户变量更改,但为什么它没有第二次赶上金额?

任何提示都将受到赞赏。

提前致谢

1 个答案:

答案 0 :(得分:0)

它实际上取决于IPN消息的事务类型(变量“txn_type”)。例如,如果“txn_type”是“recurring_payment_profile_created”,则“mc_gross”不存在。在这种情况下,您可以在“金额”变量中查看金额。我认为“mc_gross”用于一次性付款或定期付款。因此,在检查金额变量之前,您需要先检查事务类型。

供参考:https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNandPDTVariables/