我正在使用IPN设置paypal集成,就在我的IPN侦听器将IPN数据添加到数据库之前,我使用下面的代码,检查以确保事务不在数据库中,并且如果是这样,它退出脚本:
//Check if payment data exists with the same TXN ID.
$stmt = $pdo->prepare("SELECT payment_id FROM payments WHERE transaction_id = ?");
$stmt->execute([$transaction_id]);
$num_rows= $stmt->rowCount();
if($num_rows > 0){
exit();
}
//then more code to insert IPN data into database
我感到困惑的是:如果它发现transaction_id已经存在并退出脚本,付款是否仍然得到处理,它只是没有将任何信息放入我的数据库,或者它也是取消PayPal结束时的付款?希望它是后者,但如果它是前者,那么应如何处理这种情况,因为付款需要取消,而且我不确定如何完成这项工作。
答案 0 :(得分:1)
这是一个重复的通知。 Paypal可能不止一次发送通知,但他们只给你一次钱,你应该只记录一次交易。