在PHP付款后注册

时间:2013-11-22 20:32:11

标签: php security session payment gateway

我正在编写一个脚本,首先需要验证付款是否已经完成,然后进入注册表单。现在,在我集成支付网关后,我不确定访问者进行注册的最佳解决方案是什么作为安全案例?使用SESSIONS?所以在付款成功后,启动一个会在signup.php中检查的会话? 谢谢..

1 个答案:

答案 0 :(得分:0)

对于paypal付款,您可以使用Paypal IPN(即时付款通知)系统,该系统会在付款交易成功处理后立即向您的网站发出信号。

基本上,有一个特定的服务器端(即PHP或asp.net)页面接收paypal IPN消息,然后可以更新数据库或设置会话变量或直接提供文件,或者你有什么。

请参阅这些帖子了解其工作原理:


当您收到PayPal(通过IPN)确认付款通过时,您可以执行以下操作:

  • 在发送给paypal的信息中,包含用于识别数据库中客户的数据。我通常创建一个包含此信息的加密item_number。另一个想法是在数据库中有一个名为IPN_CODES的表。每次您将客户发送到paypal时,您都可以在此表中输入一组信息(cust_id,firstname,lastname,date time等)。与所有数据库表一样,每个条目都有一个唯一的ID。获取该唯一ID,并将其用作您发送给PayPal的item_number

  • 当paypal发回他们的IPN消息时,您还会收到item_number字段,因此您可以对其进行解密(或查找IPN_CODES表中的信息)并解析顾客ID。现在,您可以在数据库中更新该客户的记录,并将其标记为已付款。 (也许你有一个名为is_paid)的布尔或INT字段

  • 当IPN页面完成后,可以通过将用户重定向到新页面来结束(使用POSTGET字符串,例如http://yourdomain.com/signup.php?1273491341230346492329 - 其中long number是数据库中user_id的编码表示。)

在signup.php页面的开头,您可以询问他们的电子邮件地址,或使用GET字符串检查您的数据库以确认此用户已设置is_paid == 1

类似的东西。

如果您需要关于此类事情的示例/教程,我可以指导您:

http://thenewboston.org
http://phpacademy.org