什么是paypal api的txn_id以及为什么要检查它以及如何检查?

时间:2013-02-27 20:20:21

标签: c# asp.net paypal

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

//检查先前是否处理过txn_id

但是我无法理解txn_id是什么,它做了什么,为什么我需要检查它以及如何检查。

提前致谢,

2 个答案:

答案 0 :(得分:4)

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

您可以将其与您的订单连接,并将paypal报告给您,并附上此订单的结果。

您使用它来防止欺诈,例如您所做的,当您确认订单没问题时,您读取该号码并搜索您的数据库以查看它是否与其他订单相关联。如果你再次发现它,意味着潜在的欺诈正在进行中,有些是从你那里买的东西,比如5欧元的物品,几个月之后,就试着向你订购100欧元的物品,还有一些如何重播给你使用旧的验证状态ID - 尝试重复使用旧的完整交易。但是因为那个身份证是唯一的,所以你会抓住他。

要使用它,请将该ID与订单的唯一ID相关联,并保留该连接以供检查。

答案 1 :(得分:0)

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

该交易的所有后续IPN消息都将使用txn_id,以便您可以将它们与原始消息绑定。请确保使用适用订单的数据进行保存。

Completed IPN消息是您必须处理的唯一消息,因为 消息确认付款已完成。否则,为什么你需要担心IPN呢?带有该消息的POST变量将包含足够的客户详细信息,供您用于生成发票和交付文档/标签。

您可以选择处理其他IPN消息,但这取决于您想要编程的程度。基本上,只需处理Completed消息即可顺利处理大部分销售。任何其他消息将与您将收到的普通电子邮件并行,您可能需要手动追踪其他任何内容,例如退款或争议。

为什么他们要求您检查以前是否处理过,是否存在欺诈行为,只是为了确保您不会再次处理Completed IPN消息,作为IPN流程弹性的一部分,可以在一天之后向您发送至五个。

例如,如果您在收到Completed IPN邮件时发送商品,则如果您收到另一封具有相同Completed条消息的txn_id消息,则不希望再将其发送出去}。

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

退款等具有自己的txn_id,但其IPN消息将包含parent_txn_id,其中包含原始交易txn_id的退款。

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

  1. receiver_email字段与您用于访问PayPal帐户的主电子邮件地址相匹配。它不一定是付款按钮使用的那个。
  2. 确保邮件中返回的项目成本和其他详细信息对于该项目是正确的。