1

我在我的 phpBB 论坛上有一个选项,可以添加一个 Paypal 立即购买按钮,以使用户能够销售和购买物品。一旦用户通过贝宝进行购买,我希望能够自动关闭一个主题,以避免多个用户购买同一个项目。

一旦他们进行交易,是否可以从贝宝获取用户的会话数据?然后将会话数据合并到一个变量中,例如:

$paypal = (isset($_POST['purchased'])) ? true : false;

不确定我是否需要为此下载 Paypal SDK。

任何建议都会很棒,谢谢。

4

3 回答 3

1

一旦他们进行交易,是否可以从贝宝获取用户的会话数据?

您真的要信任用户的会话数据吗?我相信你可以读取会话数据,你不想这样做,改变它是微不足道的任务。即使可以,您也确实不应该读取另一个网站的会话数据。

不确定我是否需要为此下载 Paypal SDK。

这将是正确的方法。

于 2011-09-21T13:37:44.173 回答
1

不要依赖返回 URL。买家可以(并且将)在完成付款后关闭他们的浏览器/标签。
相反,使用 PayPal Instant Payment Notifications 从 PayPal 接收服务器到服务器的通知,您可以随后验证并使用该通知更新您的数据库,并为 phpBB 关闭线程使用适当的标志。

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. 如果响应是 VERIFIED,则此时您将查找匹配的交易/买家,并适当地更新 phpBB 线程状态。

PayPal IPN 的一些示例代码和文档可在https://www.paypal.com/ipn/
获得 。此外,有关制作安全 IPN 脚本的一些提示可在https://www.x.com/developers/community获得/blogs/ppmtsrobertg/secureing-your-instant-payment-notification-ipn-script

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

于 2011-09-22T18:45:01.070 回答
1

当我上次使用它时,Paypal Standard 允许您为失败和成功指定返回 URL(将用户发送到哪里)。动态生成一些秘密哈希,以方便最终重定向用户。

或者,您可以使用 IPN。

于 2011-09-21T13:41:36.567 回答