我正在将 PaylPal 集成为我的网店中的支付模块。我使用 PHP 和 Mysql。使用 PayPal 付款后,客户将被重定向到我的网上商店。当时我的 IPN en DPT 脚本被同时调用。我这样做是因为有时 IPN 有一个(微小的)延迟。我不希望我的客户等待 IPN,因此 PDT 脚本会负责处理订单并插入数据库。当然,在插入之前,PDT 脚本会通过回发检查订单。
当同时调用 2 个脚本时,存在订单被处理两次的危险。我们不希望那样。因此,我将 txn_id 字段的列设为唯一列。如果 IPN 查询失败,则 DPT 已经将插入数据插入数据库,反之亦然。这样我就不必锁定任何表。
我这样做对吗?