【发布时间】:2013-02-13 19:43:08
【问题描述】:
我目前正在使用 paypal 的 api 来检查使用 IPN 检查的付款。 在paypal检查付款是否验证的方法中,有一条评论说:
//检查txn_id之前没有被处理过
但我不明白 ths txn_id 是什么,它的作用以及为什么我需要检查它以及如何检查。
提前致谢,
【问题讨论】:
我目前正在使用 paypal 的 api 来检查使用 IPN 检查的付款。 在paypal检查付款是否验证的方法中,有一条评论说:
//检查txn_id之前没有被处理过
但我不明白 ths txn_id 是什么,它的作用以及为什么我需要检查它以及如何检查。
提前致谢,
【问题讨论】:
这是由 PayPal 生成的唯一交易 ID。
您将其与您的订单相关联,然后贝宝将其与该订单的结果一起报告给您。
您使用它来防止欺诈,例如您所做的事情,当您确认您的订单正常时,您读取该号码并搜索您的数据库以查看它是否与其他订单相关联.如果您再次找到它,则意味着潜在的欺诈行为正在进行中,有些是向您购买东西,比如说 5 欧元的物品,几个月后,尝试向您订购 100 欧元的物品,有些是如何重播给您的使用旧的验证状态 ID - 尝试重用旧的完整事务。但是因为那个状态 id 是独一无二的,所以你抓住了他。
要使用它,请将该 ID 与您订单的唯一 ID 连接,并保留该连接以供检查。
【讨论】:
txn_id 是 PayPal 为原始交易分配的唯一标识符。
该事务的所有后续 IPN 消息都将使用该 txn_id,以便您可以将它们绑定到原始消息。请确保将其与适用订单的数据一起保存。
Completed IPN 消息是您唯一必须处理的消息,因为它是确认付款已完成的THE 消息。否则,你为什么需要担心 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 希望您检查其他返回值的正确性,这些值用于欺诈。有些是:
receiver_email 字段与您用于访问 PayPal 帐户的主要电子邮件地址匹配。它不一定与付款按钮一起使用。【讨论】: