【问题标题】:What is txn_id of paypal api and why it should be checked and how?什么是 paypal api 的 txn_id 以及为什么要检查它以及如何检查?
【发布时间】:2013-02-13 19:43:08
【问题描述】:

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

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

但我不明白 ths txn_id 是什么,它的作用以及为什么我需要检查它以及如何检查。

提前致谢,

【问题讨论】:

    标签: c# asp.net paypal


    【解决方案1】:

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

    您将其与您的订单相关联,然后贝宝将其与该订单的结果一起报告给您。

    您使用它来防止欺诈,例如您所做的事情,当您确认您的订单正常时,您读取该号码并搜索您的数据库以查看它是否与其他订单相关联.如果您再次找到它,则意味着潜​​在的欺诈行为正在进行中,有些是向您购买东西,比如说 5 欧元的物品,几个月后,尝试向您订购 100 欧元的物品,有些是如何重播给您的使用旧的验证状态 ID - 尝试重用旧的完整事务。但是因为那个状态 id 是独一无二的,所以你抓住了他。

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

    【讨论】:

    • 哦,我明白了,所以我需要创建一个数据库表,其中包含从第一次付款中插入的 id 并检查每次付款时的 id
    • id是:int还是string?
    • @Josi 是一个 19 字符长度的 id,这里是一个:5DL77606L34173428
    • @Aristos。它是一个 17 个字符的 ID,与您在此处显示的一样。
    • @Patanjali 哦,是的,你说得对,长度为 17.... 我不记得为什么我输入 19
    【解决方案2】:

    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 希望您检查其他返回值的正确性,这些值用于欺诈。有些是:

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

    【讨论】:

      猜你喜欢
      • 2010-12-18
      • 1970-01-01
      • 1970-01-01
      • 2014-06-01
      • 2022-01-22
      • 2017-02-11
      • 2015-07-04
      • 2011-10-22
      • 1970-01-01
      相关资源
      最近更新 更多