繁体   English   中英

贝宝IPN检查是否保留付款

[英]Paypal IPN check if payment is onhold

我有一个运行良好的PayPal IPN。 如果有人在我的主页上购买产品,他会收到一封包含产品密钥的电子邮件。 到现在为止还挺好。 但是现在我有一个问题。 有时,付款被保留,无法直接使用。 问题经常出在,人们买了一件产品,然后又退还了钱。 我丢失了产品密钥(是的,我需要为此投资),钱+我需要支付费用。

但是我有一个主意。 如果有一个变量可以检查付款是否成功并且我有钱,或者是否由贝宝持有,我可以编写一个脚本。 如果保留,则从数据库中删除产品密钥,并使用该变量将其保存在另一个数据库中

$_POST['parent_txn_id'];

然后,如果这笔钱在我的帐户中,则应该再次触发IPN,对吗? 然后,我只问是否有一个带有parent_txn_id的现有条目,如果是,那么我发送另一个数据库而不是主数据库的内容。 我知道这听起来很混乱,但是每次我的Paypal帐户上执行某些操作时,都会触发IPN,对吧? 所以我可以检查一下parent_txn_id。

现在,我使用以下变量:

if (strcmp($readresp, "VERIFIED") == 0) {

}

我找到了变量“ payment_status”。 有值“ COMPLETED”和“ PENDING”。 PENDING是我需要使用的变量吗? 我调查了可能的“ pending_reason”事件,但没有任何理由被称为“因为贝宝的保护而持有”。

因此,如何检查我的帐户上的钱是保留还是成功?

谢谢 :)

是的“ PENDING”是出于任何原因而暂停的任何交易的状态

无论如何,除非状态为“ COMPLETED”,否则您都不希望发送产品密钥,因此,如果产品密钥为COMPLETED,则只发送产品密钥

如果设置IPN,并且付款处于“保留”状态,则您应该收到一个IPN,其IP地址为Payment_status =“ PENDING”。 变量“ pending_reason”也应包括在内。

您可以在这里参考: https : //developer.paypal.com/docs/classic/ipn/integration-guide/IPNandPDTVariables/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM