PHP会员脚本+ PayPal IPN,我要求和比较哪些信息?

时间:2011-06-05 00:18:58

标签: php paypal membership paypal-ipn

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

我的问题是:我在注册时(付款前)要求用户提供哪些信息? Paypal发送通知时,我需要与之进行比较。我的意思是这样的:如果我只要求输入用户名和密码 - 我怎么知道支付的那个特定用户,并相应地更新数据库?

显然我还想要firstname,lastname和E-Mail。我提出上述情况的原因是因为我看到其他会员网站要求发送电子邮件(不是PayPal电子邮件),但他们无法确定名字,姓氏和/或电子邮件是否与客户所拥有的信息相符。他们的PayPal。

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

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

1 个答案:

答案 0 :(得分:5)

嗯,我认为这与普通的“我真的不知道产品X真正通过PayPal支付”有什么不同。您的“产品”是会员订阅,而非实体产品,否则基本相同。

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

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

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

您可以使用许多变量向PayPal发送信息。假设您使用的是网站付款标准和购物车功能,可将其划分为两个存储桶。

  1. 适用于整个交易的字段。请参阅本文档中的表4:https://www.x.com/docs/DOC-1332#id08A6HH0D0TA
  2. 适用于单个项目的字段。见同一文件中的表5.
  3. 并非所有这些信息都会在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的。”