【问题标题】:PayPal IPN: how to respond with invalid notificationPayPal IPN:如何回应无效通知
【发布时间】:2017-02-08 10:58:15
【问题描述】:

经过多次阅读,我最终将 PayPal 与 IPN 方法集成在一起。 我在listener.php 中执行了 3 次检查,它们是:

  1. 检查txn_id 是否已在数据库中(有人可以使用旧的已确认交易 ID 来返回已确认状态,只要它在 PayPal 文档中写入)
  2. 检查receiver_email是否与卖家邮箱匹配
  3. 检查custom是否与订单ID匹配
  4. 检查mc_gross是否与价格相符

如果所有检查都正确,我将所有数据插入数据库;我现在缺少的是,如果这些参数中的任何一个不匹配,我该怎么办。我可以向 PayPal 发回一条代码消息,意思是“嘿 PayPal,出了点问题:删除交易,显示错误消息并最终让买家再试一次”?如果没有,您将如何处理这种情况?

【问题讨论】:

    标签: php paypal paypal-ipn


    【解决方案1】:

    不,你不能。 PayPal 不会让用户在 IPN 过程中等待,因此用户不再需要读取错误或重试。

    适当的操作可能是退款。我会向商店经理发出通知,告知他们收到了不合理的付款,并将其留给人工处理。 如果一切都配置得当,这种情况非常罕见。

    您没有提到打电话给 PayPal 来检查电话的真实性。你真的应该先做那个。

    【讨论】:

    • 你的意思是像$fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);这样打开一个到PayPal的套接字连接吗?我的问题来自页面底部PayPal documentation 中的抽奖;第 3 点说:Your server must then validate the notification to ensure that it is legitimate。如果不是“您的服务器必须验证通知,也就是交易”,那么这句话意味着什么?谢谢!
    • 这意味着您需要做的第一件事是对包含您刚刚收到的所有数据的 PayPal(服务器到服务器)进行 http 调用。 PayPal 将回答“已验证”或“无效”(或类似的内容)。这个想法是您向 PayPal 询问:“我收到了付款通知;是您发送的还是伪造的?”
    猜你喜欢
    • 2012-04-26
    • 2011-10-26
    • 2016-11-28
    • 2018-10-29
    • 2012-12-01
    • 1970-01-01
    • 2017-02-09
    • 2014-02-05
    相关资源
    最近更新 更多