【发布时间】:2011-02-21 09:34:15
【问题描述】:
PayPal 成功返回了我在创建“立即购买”按钮时指定的返回 URL。但现在我很困惑。 如何检索有关在 PayPal 上发生的交易的详细信息?我还想在返回 URL 上设置一些数据库值。但我担心如果我的用户在不付费的情况下导航到该 URL,他仍然会成为高级会员。我该如何避免这种情况?
【问题讨论】:
PayPal 成功返回了我在创建“立即购买”按钮时指定的返回 URL。但现在我很困惑。 如何检索有关在 PayPal 上发生的交易的详细信息?我还想在返回 URL 上设置一些数据库值。但我担心如果我的用户在不付费的情况下导航到该 URL,他仍然会成为高级会员。我该如何避免这种情况?
【问题讨论】:
PayPal 通过他们所谓的 IPN 将数据返回到您的网站。它实际上只是对您指定的 URL 的回调。 您可以通过变量 notify_url 设置此 URL,您可以发送到 PayPal。
例子:
<input name="notify_url" value="http://yourdomain.com/notify_url.php" type="hidden">
上例中的 notify_url.php 在付款完成时会从 PayPal 接收一些 POST 变量,即使客户从未返回您的网站也是如此。
PayPal 返回的一些重要的variables 是:
如果您设置了发票,则返回发票。它可以用作您自己的 order-id/transaction-id。
txn_id 由 PayPal 生成,是他们自己的交易 id。
如果您自己添加商品,PayPal 还会返回 num_cart_items、item_name1 (item_name2, item_name3)、quantity1 (quantity2, quantity3) 等。
当然,你还有问题要解决,如何检查所有这些数据并将其连接到你自己的数据库中的客户,你可能有。
我所做的是在将客户发送到 PayPal 之前保存一个临时的“订单”,其中包含发票 ID,与我发送到 PayPal 作为发票的 ID 相同。这样我的 notify_url.php 页面可以检查我的数据库中的发票 ID 并比较订单/付款。
【讨论】:
item_number,但无法从 Paypal 找到太多信息。对于如此大的公司,您可能已经注意到,IMO 他们不擅长维护他们的网站,因为他们改变了他们目前的“移动”设计。至于item_number,我发现如果你只有一个项目,item_number 不像 item_number1、item_number2 那样编号......它只是item_number。