如果会员在订阅和/或支付一次付款并且他们要求退款,撤销或部分退款,下面的此脚本是否适用于使用IPN发送的IPN消息?
if($payment_status == "Refunded" || $payment_status == "Reversed" || $payment_status == "Partially Refunded"){
mysql_query("UPDATE members SET month_date = '$gettoday', subscr_id = '$subscr_id', subscr_cancel = 'Y', active = 'N', prepay = 'N' WHERE id='$id'");
}
如果没有,我可以使用什么或如何在PHP中编写脚本以使我的系统读取所有的IPN payment_status并知道什么订户(通过他们的PayPal订阅ID或我系统中的会员ID)或付款人((通过他们在我的系统中的会员ID)在发送其中一个时执行操作?
此外,如果我想检查订阅ID,那么这样做会更聪明吗?
if($payment_status == "Refunded" || $payment_status == "Reversed" || $payment_status == "Partially Refunded"){
if($subscr_id){
mysql_query("UPDATE members SET month_date = '$gettoday', subscr_id = '$subscr_id', subscr_cancel = 'Y', active = 'N', prepay = 'N' WHERE id='$id'");
} else {
mysql_query("UPDATE members SET month_date = '$gettoday', subscr_cancel = 'Y', active = 'N', prepay = 'N' WHERE id='$id'");
}}
答案 0 :(得分:1)
Paypal将首先发送支付状态被撤消的IPN,然后是另一个已退款状态的IPN。所以,我不会像你原来的例子那样包括反转和退款。
至于对user_id的测试,这始终是一致的,每个IPN都包括付款人paypal电子邮件,包括反向/退款邮件。