PayPal 标准 IPN 退款结算消息缺少必填的“业务”字段

Posted

技术标签:

【中文标题】PayPal 标准 IPN 退款结算消息缺少必填的“业务”字段【英文标题】:PayPal standard IPN chargeback settlement message missing required 'business' field 【发布时间】:2016-05-20 00:17:51 【问题描述】:

我们已经使用 PayPal 标准大约 10 年了。直到今天,我们才收到因退款结算而生成的 IPN 消息 - 并注意到某些字段丢失。

以下是 PayPal IPN 历史页面中确认的字段(出于隐私原因,“payer_email”字段值被隐藏):

txn_type=adjustment&payment_date=03:32:10 2016 年 2 月 9 日 PST&payment_gross=&mc_currency=CAD&verify_sign=ATjxb9PR1aNXqPs2fhQE00D26f.QAu0.eUdqXZNZvOMDQsa1Hd3cSPz8&payer_status=verified&payer_email=paypal@XXXX.ca&txn_id=14V55619FE764784J&parent_txn_id=1XH95106BE741351U&payer_id=W2PJ5ZGY8E9VG&invoice=673D082E-D1F9-4D22-A535-6494F679CDCE&reason_code=chargeback_settlement&payment_status=Completed&payment_fee=-20.00&mc_gross=-300.00&charset=UTF- 8&notify_version=3.8&ipn_track_id=7ecc9a13ccaa0

据我所知,缺少预期的“业务”字段。请参阅https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNandPDTVariables/ 上的 IPN 参考:

收款人的电子邮件地址或帐户 ID(即 商人)。等价于receiver_email 的值(如果付款是 发送到主帐户)和网站付款 html 中的业务集。

此“商家”字段始终存在于所有其他 IPN 消息中(即使是用于退款的消息),我们的应用依靠其值来识别正确的商家。

还有其他人遇到过这个问题吗? (对我来说,这看起来像是一个 PayPal IPN 错误。)

【问题讨论】:

【参考方案1】:

您收到的退款 IPN 包括一个 parent_txn_id,它是有争议的原始付款的 txn_id。

因此,在您的系统中,您应该能够根据原始 txn_id 将此 IPN 关联回那个 IPN,并且在原始订单数据中,您将能够看到与其关联的“业务”参数。

【讨论】:

是的,安德鲁确实如此。但为什么这个 IPN 与所有其他 IPN 消息如此不同?所有其他 IPN 消息都具有此“业务”字段,此外,根据 PayPal 规范,该字段应包含在每个 IPN 消息中。对我来说,这仍然看起来像一个 PayPal 错误。 这只是一种不同类型的交易。它不是支付,因此它没有支付交易所具有的相同类型的变量。这不是错误。 这是一个退款交易,所有的退款IPN消息总是包含“business”字段。另外,我没有在 IPN 规范中看到该字段不会出现在退款结算 IPN 消息中。 (顺便说一句 - 我很好,缺少许多其他字段。但不是这个。是的,你是对的,我可以沿着链条从保存在数据库中的原始 IPN 消息中找出“业务”字段值。但是这个是所有其他 IPN 消息不需要的额外工作。) 这不是退款交易。这是一个有争议的交易。如果交易被退款,您将获得一个单独的 IPN。

以上是关于PayPal 标准 IPN 退款结算消息缺少必填的“业务”字段的主要内容,如果未能解决你的问题,请参考以下文章

经典 ASP Paypal IPN 退款

缺少 PayPal 沙盒 IPN 历史记录

PayPal 订阅 - 缺少 PDT 发票

Paypal IPN,缺少 POST 数据

缺少 PAYPAL IPN 自定义字段

关于 payment_status 的帮助 PayPal Refunded Reverted Partial Refunded IPNs