php - 通过 POST 信息验证 Paypal 交易

标签 php paypal

我完全不知所措。我想我可能会被“误导”,但我会尽力解释我的情况。

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/

相关文章:

javascript - 如何知道将带有文件的表单提交到 iframe 是否失败

php - 如何将 Javascript 发布到 MySQL 数据库

php - 如何使用php代码使网页打印友好?

Paypal 定期付款未检索交易 ID

php - 在一次查询中支付多张发票

php - 调试 LAMP/CakePHP 站点内存泄漏?

ruby-on-rails - 活跃的商家 Paypal 定期付款

php - 如何编辑 Paypal 沙箱的输入字段?

paypal - 无法在沙盒中创建按钮

error-handling - 如何处理PayPal智能按钮中的错误?