如何验证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 支付网关中集成 3D Secure 身份验证?