我想以以下方式整合paypal,但它可能有一些我不知道的缺陷。
我将创建一个立即购买按钮,与notify_url
参数执行php脚本。该脚本将执行以下操作:
- 在mysql中存储付款人的电子邮件,交易id和一些有用的东西数据库。
- 生成一个唯一的密钥,并存储它。
- 创建邮件发送到用户地址。该电子邮件将包含一个链接到一个带有参数的.php文件,如唯一键。(
.php?key=xxxxxxx
)如果客户点击链接,文件将在数据库中检查密钥并创建要下载的文件的实际链接。
我想知道这是否可以工作,或者这个解决方案有一些问题?也许我应该使用某种会话处理?
谢谢你的阅读,欢迎提出任何意见/建议。
ps:首先,我想在付款后重定向用户,但读到它并不总是工作,只对那些使用paypal帐户的人。
如果您选择Paypal IPN路线,我假设您上面详细描述的脚本将在IPN回调之后发生。
我自己也实现了一个类似的系统,而且非常直接——你提出的设计和我的设计差不多。贝宝交易完成的时间(一旦他们在贝宝网站上完成,他们会把他们带回到你网站上一个通用的"感谢付费"页面)和他们在电子邮件中收到文件下载链接之间有一点脱节,但它是有效的。只要您确信您的唯一密钥确实是唯一的,并且您不担心密钥被猜测或被盗,就不应该成为问题。我还跟踪了每个密钥用于下载的次数,只是为了关注可能的"密钥共享",或者,如果您想执行一次购买一次下载策略,您可以使用bool来跟踪。
是的,它将工作看看IPN, Paypal的方式与您交谈一旦交易完成。请注意,这是相当复杂的,你应该注意不同的情况,因为Paypal会在许多不同的情况下发送IPN通知。
根据我的经验:
- 1)客户通过信用卡或账户在Paypal上购物
- 2) Paypal服务器将发送IPN响应您的脚本
- 3)验证事务已完成且未挂起
- 4)生成下载密钥 5)给客户发邮件
不要指望客户在购买后会回到你的网站。让您的IPN脚本完成所有的工作。