php - Paypal IPN : Update the value of a column after payment?

标签 php mysql paypal paypal-ipn

我有 2 个文件:

  1. index.php
  2. thankyou.php

在 index.php 中,用户提交他的电子邮件(我将其保存到名为“电子邮件”的数据库表列中),然后转到 PayPal 并由他进行付款。然后用 thankyou.php 我想更新我的数据库,其中电子邮件列所在,该列称为 premium,默认为 0 现在付款后它应该是 1 ...

最简单的方法可能是将电子邮件(在 index.php 中提交)与在 Paypal 付款中提交的“payer_email”进行比较。 我怎样才能做到这一点? session ? cookies ?他们似乎不为我工作,我该怎么做? 提前致谢。

最佳答案

您不需要任何 session 或 cookie,只需使用常规 UPDATE ... SET premium = 1 WHERE email = :1 :1 为 $_POST['payer_email'] .

我知道您不确定您记录中的电子邮件是否是买家用来登录 paypal 的电子邮件,因此您必须使用 paypal 留给您的自定义字段。 做如下操作:

  1. 在您的数据库中记录客户 ID
  2. 创建添加以下字段的 paypal 按钮:

<input type="hidden" name="custom" value="yourclientid">

  1. 收到 ipn 时,使用 $_POST['custom'] 检索自定义字段并使用此唯一对应关系更新您的数据库,这样您就不必怀疑使用了哪个电子邮件。

请注意,它对 Paypal 常见的“购买”按钮有效。对于订阅,情况可能会略有不同,因为在第一个 ipn 之后是 custom字段不再传递。

希望对您有所帮助。 S.

关于php - Paypal IPN : Update the value of a column after payment?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16004786/

相关文章:

php - 处理产品上传的图像

iphone - 无法获取payKey ios PayPalMPL SDK 1.6.0

ssl - PayPal IPN 更新以适应 HTTP1.1 - 连接由对等方重置

php - 如何将 css 应用于 codeigniter 分页?

c# - ASP.NET 中的 MySQL 异常

php - 使用 php 和 jquery 将输入从表单插入到数据库

paypal - 执行付款而不将 paymetId 存储在 session 中但数据库中

php - 使用 Union 或 Join 在一个 where 语句中使用多个查询结果

php - mysql_query 注入(inject) - 替换返回的字段

php - 将数据从 Controller 发送到 View 还是在 View 中有逻辑?