PHP会员脚本+PayPal IPN,我需要什么信息并与之进行比较


PHP Membership script + PayPal IPN, what info do I request and compare with?

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

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

很明显,我也需要名字、姓氏和电子邮件。我之所以出现上述情况,是因为我看到其他会员网站要求提供电子邮件(而不是PayPal电子邮件),但他们不能确定名字、姓氏和/或电子邮件是否与客户在PayPal上的信息匹配。

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

如果我的问题不够清楚,请毫不犹豫地告诉我

嗯,我认为这与正常的"我怎么知道产品X真的是通过PayPal支付的"没有什么不同。这里的"产品"是会员订阅,而不是实体产品,否则本质上是一样的。

当您将用户发送到PayPal时,只需在PayPal数据中发送用户的唯一标识符。(如果你不想创建一个要销售的"产品",你可以只使用用户表的id。)使用"自定义"字段或"项目编号"字段传递这个信息。PayPal会在IPN中将这两条信息传回您,您可以使用这些信息来验证是否为该用户付款。

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

编辑:向PayPal传递信息的更多具体信息:

您可以使用许多变量将信息发送到PayPal。假设您使用的是网站支付标准和购物车功能,这可以分为两个部分。

  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_ID=开发人员/e_howto_admin_IPN简介。

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

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

在"自定义"变量中传递的具体内容由您决定。你可以发送a)用户表中用户的id,b)他们在你的网站上注册的电子邮件地址,c)其中一个的散列。。。这其实并不重要,只要它能唯一地识别用户,这样当你拿回IPN时,你就可以说"我知道这笔付款是给用户X的"。