如何验证paypal支付成功

Posted

技术标签:

【中文标题】如何验证paypal支付成功【英文标题】:How to verify successful payment of paypal 【发布时间】:2011-11-08 14:54:58 【问题描述】:

当客户被重定向到我们的网站时,我正在尝试获取传递到我们网站的贝宝交易的交易信息。

我在我的沙盒 paypal 帐户设置中启用了自动返回和 pdt。我向 paypal 发布了一个示例交易,它回复了我的返回 url,并附加了 tx。

正如在一些文档中发现的那样,我对 https://www.paypal.com/cgi-bin/webscr 做了一个 curl req 并尝试通过如下传递 req 值来获取信息:

a.) tx = same one received from paypal
b.) at = pdt code given by paypal while turning pdt on
c.) cmd= "_notify-synch"

但结果我得到 String(0) ""。

我错过了什么?

【问题讨论】:

您使用的是哪种 Paypal 帐户类型? Payflow、Payflow Pro...等 我登录了paypal沙盒账户,发现账户类型:业务类型不是payflow或payflow pro...从哪里可以查到? 如果您不知道,那么您可能没有使用 Payflow。 当您注册支付账户时,它会在您的确认电子邮件中显示。相同的消息也应该包含指向您的 API 的链接。 因为我的帐户是预先配置并自动创建的,所以它启用了 api 【参考方案1】:

我强烈建议您考虑使用 PayPal 即时付款通知 (IPN)。 PayPal IPN 允许您(异步)处理订单信息,而不必依赖买家返回您的网站来完成订单。

您可以通过设置从 PayPal 接收此 (POST) 数据的脚本来使用 IPN。此外,您必须在按钮和/或 API 调用中包含以下代码:

对于网站支付标准(其中“xxxxxxxx”是您的 IPN 脚本的完整 URL): input type="hidden" name="notify_url" value="xxxxxxxx"

对于快速结帐: 在您的 SetExpressCheckout 和 DoExpressCheckoutPayment API 调用中包含 NOTIFYURL=xxxxxxxx

对于网站支付专业版 在您的 DoDirectPayment API 调用中包含 NOTIFYURL=xxxxxxxx

您可以在https://www.paypal.com/ipn 找到有关 PayPal IPN 的示例代码、文档和更多信息

此外,在https://www.x.com/developers/community/blogs/ppmtsrobertg/securing-your-instant-payment-notification-ipn-script,这里有一篇关于验证 IPN 消息真实性的附加步骤的文章

【讨论】:

以上是关于如何验证paypal支付成功的主要内容,如果未能解决你的问题,请参考以下文章

Paypal Rest API 支付验证服务器端

如何在 PayPal 支付网关中集成 3D Secure 身份验证?

paypal支付平台如何使用二次验证码_虚拟MFA_两步验证_谷歌身份验证器?

如何在不使用任何支付网关的情况下验证信用卡?

PayPal如何关闭登录验证码

Paypal 与 ruby​​ 的集成