我完全不知所措。我想我可能会被“误导”,但我会尽力解释我的情况。
The Idea
- 我们有一个供用户购买积分的表格。输入信用号, 点击 pp 按钮。
- 单击按钮后,将发布一个帖子以设置 事务日志信息并将其设置为待处理(工作正常)。
- 在有效的邮寄返回后,它会继续提交 paypal 表格(同样有效)。
- 用户被重定向到 paypal 页面并进行付款(到目前为止一切顺利)。
- 付款后,他们点击返回并转到“成功”页面(仍在运行)。
- 到达此页面后,我从 pp 获取帖子数据(呃,哦,这里是粘性的地方)
- 验证数据是“真实的”pp 数据并更新事务日志(如何!?)
What I'm being told & what i've tried
我最初打算使用 IPN 回发到 paypal 以验证收到的数据(确保它没有被欺骗),但是,我被告知出于成本目的并且必须设置一个“ipn 服务器“我们不能使用 IPN ....
好吧,所以我打算使用 PDT,除非我错过了尝试中的一个重要步骤,或者它根本无法正常工作,因为我没有做正确的事情。这是我迷路的地方,我尝试了十几种不同的方法,包括直接链接帖子、使用 spark(用于 CI)设置数据并调用 paypal 链接,等等......
我已经查看了这里和其他六个论坛上的每个 paypal 问题,但似乎无法解决任何问题。
任何人都可以“清楚地”告诉我如何验证成功的 paypal 交易的 POST 数据,甚至可以告诉我是否被误导了 IPN,因为我查看了文档但找不到什么有人告诉我,我也找不到真正的解决方案。
我觉得自己很笨,请帮忙。
最佳答案
当您的用户单击 PayPal 按钮并转到 PayPal 时,当他们完成交易时,将向您选择的 URL 发送 IPN POST。因此,您不必拥有其他网络服务器。
当收到 IPN 请求时,PayPal 希望您按照准确的顺序将他们发给您的整个 POST 重新发送给他们,包括所有字段,此时他们将返回“已验证”一词或“无效”。如果已验证,则执行您需要做的任何事情,将您的 txn 日志从待处理状态切换为已验证状态。此外,您在按钮中包含的任何信息(您的按钮实际上是一个 form
,因此您可以包含自己的字段)都包含在 POST 中。用于保留“交易 ID”或其他一些标识符以映射回您的交易。
如果 IPN 失败,它将以 n+4 分钟的增量重新发送(其中 n 是它上次等待的时间 - 4 分钟,下一次在 8 分钟后,下一次在 12 分钟后,等等)几天。
关于php - 通过 POST 信息验证 Paypal 交易,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9118422/