Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
txn_id和payment_状态使PayPal IPN独一无二?_Paypal_Paypal Ipn - Fatal编程技术网

txn_id和payment_状态使PayPal IPN独一无二?

txn_id和payment_状态使PayPal IPN独一无二?,paypal,paypal-ipn,Paypal,Paypal Ipn,我正在使用PayPal IPN,我有以下问题:是否可能有两条具有相同txn_id和payment_状态参数的IPN消息 例如: IPN:txn_id=4BB79227HY951745W&付款状态=待定 IPN:txn_id=4BB79227HY951745W&付款状态=idontknowwhat IPN:tnx_id=4BB79227HY951745W&付款状态=待定 IPN:txn_id=4BB79227HY951745W&付款状态=已完成 所以我的问题基本上是txn_id和payment_状

我正在使用PayPal IPN,我有以下问题:是否可能有两条具有相同txn_id和payment_状态参数的IPN消息

例如:

  • IPN:txn_id=4BB79227HY951745W&付款状态=待定
  • IPN:txn_id=4BB79227HY951745W&付款状态=idontknowwhat
  • IPN:tnx_id=4BB79227HY951745W&付款状态=待定
  • IPN:txn_id=4BB79227HY951745W&付款状态=已完成
  • 所以我的问题基本上是txn_id和payment_状态一起使消息唯一,还是不唯一

    另一个例子:

    如果我有如下SQL查询:

    从txn_id=4BB79227HY951745W且付款状态=某物的交易中选择*

    它可以返回多行吗?(如果我没有存储任何PayPal重新发送的消息,因为缺少200条OK响应消息或响应时间慢或类似情况。)


    我以前读过这个帖子:。这里听起来这两个参数使消息唯一,但我不确定。

    我认为
    txn\u id
    payment\u status
    本身不足以使IPN唯一。由于您希望保存与给定事务相关的每个IPN,因此还应检查
    pending\u reason
    值:

    假设您使用
    授权-捕获
    模型创建了一笔交易,并且您的交易通过了
    即时支付审核(IPR)
    。您将有类似于IPN的内容:

    IPN 1:TXN进入审查(IPR)

    IPN 2:TXN已通过IPR(请注意,挂起的原因已更改!)


    IMHO,这与“唯一性”本身无关,因为IPN是一种消息传递服务(在事务状态不断变化的情况下)。它甚至有如中所述的“重试”,这在您引用/链接的帖子的答案中进行了讨论。谢谢您的回答。我理解这一点,但我想存储与事务相关的所有内容,但我不想存储任何内容超过一次。因此,在我以某种方式将事务数据保存到数据库中之后,我必须知道是否因为该事务的某些“更改”而发送了新的IPN消息,或者由于某种原因它只是由PayPal IPN服务重新发送。我已经用数据库时间戳和其他“双重检查”解决了这个问题,但您所说的有意义,并回答了我的问题。认可的!
    [payment_status] => Pending
    [txn_id] => 0CD48848U16230847
    [pending_reason] => paymentreview
    [txn_type] => express_checkout
    [auth_status] => Pending
    [ipn_track_id] => 8c7559d39005
    
    [payment_status] => Pending
    [txn_id] => 0CD48848U16230847
    [pending_reason] => authorization
    [txn_type] => express_checkout
    [auth_status] => Pending
    [ipn_track_id] => 8c7559d39005