我正在使用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响应它两者完全相同,只是用户变量更改,但为什么它没有第二次赶上金额?
任何提示都将受到赞赏。
提前致谢
答案 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/