PHP Membership script + PayPal IPN,我需要哪些信息并与之比较?

标签 php paypal membership paypal-ipn

所以我有一个产品。为了让用户购买它,他们需要创建一个帐户。该帐户稍后将用于访问我的产品。

我的问题是:我在注册时(付款前)要求用户提供哪些信息?每当 Paypal 发送通知时,我都需要一些东西来比较。我的意思是:如果我只要求提供用户名和密码 - 我怎么知道是那个特定用户支付了费用,并相应地更新数据库?

显然,我还需要名字、姓氏和电子邮件。我出现上述情况的原因是因为我看到其他成员(member)网站要求提供电子邮件(不是 PayPal 电子邮件),但他们无法确定名字、姓氏和/或电子邮件是否与客户的信息相匹配他们的 Paypal 。

简而言之:当我收到通知时如何更新客户帐户(将数据库中的事件字段设置为 TRUE 或其他),以及我要验证/验证哪些信息?

如果我的问题不够清楚,请随时告诉我。 :)

最佳答案

好吧,我不认为这与正常的“我怎么知道产品 X 真的是通过 PayPal 支付的”有什么不同。你这里的“产品”是成员(member)订阅,不是实体产品,除此之外本质上是一样的。

当您将用户发送到 PayPal 时,只需在 PayPal 数据中发送用户的唯一标识符即可。 (如果您不想创建要销售的“产品”,您可以只使用用户表的 ID。)使用“自定义”字段或“item_number”字段传递它。 PayPal 将在 IPN 中将这两条信息传回给您,您可以使用它来验证是否为该用户进行了付款。

如果您担心用户代表其他用户欺骗付款,您可以 a) 加密您发送到 PayPal 的所有数据,以及 b) 将您的 PayPal 设置设置为仅接受您帐户的加密购物车数据。

编辑:关于将信息传递给 PayPal 的更多具体信息:

您可以使用很多变量将信息发送到 PayPal。假设您正在使用 Website Payments Standard 和购物车功能,这可以分为两个部分。

  1. 适用于整个交易的字段。请参阅本文档中的表 4:https://www.x.com/docs/DOC-1332#id08A6HH0D0TA
  2. 适用于单个项目的字段。请参阅同一文档中的表 5。

并非所有这些信息都会在 IPN 中传回给您。要查看 IPN 中传回给您的内容,请查看此处的“示例 IPN 消息”部分:https://cms.paypal.com/cgi-bin/marketingweb?cmd=_render-content&content_ID=developer/e_howto_admin_IPNIntro .

您需要的是一条信息,a) 您传递给 PayPal 以唯一标识用户,b) PayPal 在 IPN 中传回给您。

为此,我建议您使用名为“custom”的变量。 (参见表 4:支付交易的 HTML 变量。)

传递给“自定义”变量的具体内容由您决定。您可以发送 a) 用户表中用户的 ID,b) 他们在您网站上注册的电子邮件地址,c) 其中一个的一些哈希值……只要它唯一标识用户,这并不重要,这样当您取回 IPN 时,您可以说“我知道这笔付款是给用户 X 的”。

关于PHP Membership script + PayPal IPN,我需要哪些信息并与之比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6240204/

相关文章:

php - MySQL 和 PHP 将日期插入日期字段

javascript - 为什么 Laravel Blade $errors 数组中没有错误会破坏我的 JavaScript

api - Laravel Paypal API 单一支付

php - DoExpressCheckoutPayment(数字商品结账 express )中的重复请求

asp.net - 使用 CAS 和 ASP.NET 成员(member)提供程序后端进行 SSO

PHP 可以锁定下载的内容吗?

php mysqli 准备语句选择

php - Laravel 验证 : validate field only if another is present

php - PayPal 的跟踪 ID

asp.net-mvc - 如何在 ASP.NET MVC 中实现基于 ID 的用户系统(成员资格、授权等)?