什么是贝宝api的txn_id,为什么它应该检查和如何

本文关键字:为什么 检查和 id api txn 什么 | 更新日期: 2023-09-27 18:01:39

我目前使用paypal的api来检查使用IPN检查的付款。在paypal检查支付是否被验证的方法中,有一条评论说:

//检查txn_id之前没有被处理

但是我不能理解这个txn_id是什么,它做什么,为什么我需要检查它,以及如何。

提前致谢

什么是贝宝api的txn_id,为什么它应该检查和如何

这是由PayPal生成的唯一交易ID。

您将其与您的订单连接,paypal将其与此订单的结果一起报告给您。

你用它来防止欺诈,例如你所做的,当你验证你的订单是OK的,你读取这个数字,并搜索你的数据库,看看它是否连接到其他订单。如果你再次发现它,意味着一个潜在的欺诈正在进行中,有些是从你那里买东西,比如说5欧元的物品,几个月后,他们试图从你那里订购100欧元的物品,有些是用旧的验证状态id - 试图重用旧的完整交易重放给你。但是因为状态id是唯一的,所以你抓住了他。

要使用它,请将该id与您的订单的唯一id连接起来,并保持该连接以备检查。

txn_id是paypal为原始交易分配的唯一标识符。

该事务的所有后续IPN消息将使用该txn_id,以便您可以将它们绑定到原始消息。请确保将它与它所应用的顺序的数据一起保存。

Completed IPN消息是唯一一个你必须处理,因为它是消息,确认支付已经完成。否则,为什么你需要担心IPN呢?该消息的POST变量将包含足够的客户详细信息,可用于生成发票和送货单/标签。

您可以选择处理其他IPN消息,但这取决于您想要编写多少程序。基本上,只要处理Completed消息,就可以顺利地处理大部分销售。任何其他消息将与您将收到的正常电子邮件同时发送,并且您可能需要手动跟踪其他任何事情,例如退款或争议。

为什么他们要求您检查它之前没有被处理过,不是为了欺诈而,而只是为了确保您不再处理Completed IPN消息,因为最多一天后可能会向您发送多达五个,作为IPN过程弹性的一部分。

例如,如果您在收到Completed IPN消息时发送货物,如果您收到另一个具有相同txn_id的IPN Completed消息,则您不想再次发送货物。

基本上,当您收到Completed IPN消息时,您需要使用该txn_id检查您的订单,如果找到了,并且如果订单已经标记为已支付并已处理,那么您可以忽略该消息,否则,将其处理为订单的付款,并执行您通常在付款时所做的操作。

退款等将有自己的txn_id,但它们的IPN消息将包括parent_txn_id,它包含原始退款事务的txn_id

请注意,PayPal希望您检查其他返回值的正确性,这些是欺诈。有些是:

  1. receiver_email字段与您用于访问PayPal帐户的主电子邮件地址相匹配。它不一定是与支付按钮一起使用的。
  2. 确保消息中返回的物品成本和其他详细信息对于物品是正确的。这可以防止顾客给自己打折。