![](/img/trans.png)
[英]Paypal API sandbox DoAuthorization() What is transaction id?
[英]What is txn_id of paypal api and why it should be checked and how?
我目前正在使用paypal的api来检查使用IPN检查的付款。 在paypal检查付款是否经过验证的方法中,有评论说:
//检查先前没有处理过txn_id
但我无法理解txn_id是什么,它做了什么,为什么我需要检查它以及如何检查它。
提前致谢,
这是由PayPal生成的唯一交易ID。
您将其与您的订单连接,并将paypal报告给您,并附上此订单的结果。
您可以使用它来防止欺诈 ,例如您所做的,当您确认订单没问题时,您读取该号码并搜索您的数据库以查看它是否与其他订单相关联。 如果你再次发现它,意味着潜在的欺诈正在进行中,有些是从你那里买的东西,比如5欧元的物品,几个月之后,就试着向你订购100欧元的物品,还有一些如何重播给你使用旧的验证状态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希望您检查其他返回值的正确性,这些都是为了欺诈。 有些是:
receiver_email
字段与您用于访问PayPal帐户的主电子邮件地址相匹配。 它不一定是付款按钮使用的那个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.