【问题标题】:How to secure paypal integration for website如何保护网站的贝宝集成
【发布时间】:2011-11-21 21:03:25
【问题描述】:

我过去一直使用贝宝通过我的网站销售东西(例如会员资格),但我总是必须通过贝宝验证用户是否真的购买了会员资格(例如),然后才能将其分配给他/她的帐户.现在我想知道是否有一种方法可以将贝宝购买按钮放在我的网页上(例如)购买会员资格,然后一旦用户付款,他将自动在我的网站上被分配会员资格(例如有一个页面purchase_result.php 分配会员资格,但前提是用户真的通过 paypal 购买了它)。如何确保用户在我网站的退货页面上确实通过 paypal 购买了该商品?

提前致谢, Skyfe。

顺便说一句,我希望我的问题能被理解

【问题讨论】:

  • 使用IPN,然后你可以在上面传递你的产品ID,所以当你成功更新你的数据库时,你还有一个沙箱,你可以在那里测试它,就像它是一个真实的交易一样。 ..

标签: php paypal integration payment-gateway


【解决方案1】:

您将 PayPal Instant Payment Notifications 接收来自 PayPal 的服务器到服务器通知,您随后可以验证并使用它来更新您的数据库。

IPN 的工作原理如下:

  1. 您创建了 PayPal 并包含一个“notify_url”。此参数的值将是服务器上脚本的完整 URL,称为“IPN 脚本”或“IPN 处理程序”。

您可以为网站支付标准指定如下 IPN 处理程序 <input type="hidden" name="notify_url" value="http://blah.com/ipn.php

对于 Express Checkout 或 Website Payments Pro,只需在您的 SetExpressCheckout/DoExpressCheckoutPayment 或 DoDirectPayment API 调用中分别包含以下内容。 NOTIFYURL=http://blah.com/ipn.php

  1. 买家通过 PayPal 完成交易
  2. 买家完成交易后,可关闭浏览器,或返回您的网站
  3. 一旦交易被 PayPal 接受并处理,PayPal 将发送通知至http://blah.com/ipn.php
  4. 您需要获取所有发送到此脚本的 POST 数据,并将其 POST 回https://www.paypal.com/cgi-bin/webscr?cmd=_notify-validate
  5. 如果您发回的数据与 PayPal 发送给您的数据相匹配,则会返回“已验证”响应。
  6. 如果响应已验证,此时您将查找匹配的交易/买家,并适当地更新您的数据库。

PayPal IPN 的一些示例代码和文档可在https://www.paypal.com/ipn/ 获得
此外,https://www.x.com/developers/community/blogs/ppmtsrobertg/securing-your-instant-payment-notification-ipn-script

提供了一些关于制作安全 IPN 脚本的提示

注意:如果您想包含任何自定义数据以及稍后可以读出的交易,请使用“自定义”。
<input type="hidden" name="custom" value="xxxxx">
这也将在 PayPal 发送的 IPN POST 数据中返回。

【讨论】:

  • 这些链接真的很有帮助,谢谢
猜你喜欢
  • 2011-11-23
  • 2012-05-21
  • 1970-01-01
  • 2015-09-01
  • 2011-02-20
  • 2018-05-10
  • 2013-02-13
  • 2014-08-08
  • 1970-01-01
相关资源
最近更新 更多