php - 建立基于 Paypal 的成员(member)网站 - total noob - would appreciate help

标签 php paypal membership paypal-subscriptions

这是对我关于 paypal 集成的问题的跟进。我正在为赛车迷开发一个成员(member)网站。我的成员(member)网站有 3 个成员(member)级别 - 免费、黄金和高级。当用户注册时,他/她可以当场获得免费成员(member)资格,但可以选择以每月 4 美元的价格升级为金牌成员(member)或以每月 10 美元的价格升级为高级成员(member)。

虽然我已经阅读了几次 paypal 集成指南,但对如何让它发挥作用有一个模糊的理解。我认为定期付款选项就足够了——但我不知道如何在我的系统中实现它。

就像当用户决定使用付费帐户时,即基本的黄金或高级帐户 - 我应该在我的代码端和 Paypal 帐户端做什么 - 如果有人能概述我想要的内容,我将不胜感激必须在这里做。

此外,当用户决定从比方说黄金账户升级到高级账户时 - 存在计算升级他/她的账户应该收取多少费用的问题,例如:用户已被收取 4 美元的费用,下一个天选择使用高级帐户,因此假设该月剩余时间的盈余为 5 美元,并且所有付款将每月重复支付 10 美元 - 我该如何实现?

如果用户决定从每月 10 美元的高级账户降级为每月 4 美元的黄金账户——我该如何处理仅当月就必须退还的盈余和更改成员(member)资格?

同样,如果有人希望取消成员(member)资格并转而使用免费帐户 - 我该如何退还欠款并取消订阅。

如果这听起来像是我要求用勺子喂食,我很抱歉 :( 我对此很陌生,这是给客户的,我真的很感谢这里的所有帮助,并且真的必须让它工作对的。

再次感谢大家 - 等待您的回复。

最佳答案

您需要开始阅读 Instant Payment Notification (IPN)。当发生某种交易时,这基本上只是从 PayPal 到您网站的回调。

您需要在您的网站上安装一个 php 脚本,您可以在您的 paypal 帐户中注册该脚本。 PayPal 将使用信息调用此脚本,然后您将信息发送回 PayPal,让他们知道交易是否正常。在执行此操作时,您可以使用各种方法来拦截已发生的事情。

如果客户购买了产品 X,在您的情况下 X 可以是“金牌成员(member)”,您可以检查您的数据库(假设您有一些 php/mysql 或类似设置)如果这个特定客户已经购买了产品 Y,您应该退款 blabla。这个逻辑完全取决于你。因为它是一个 php 脚本,所以您可以访问 php 允许您访问的任何内容,从数据库、文件、邮件等读取/写入数据库、文件、邮件等。

也有各种包支持此 IPN。我相信 ColdFusion 就是其中之一。

干杯!

编辑:

Good advice - however considering the situation I have I would like to know what is the easiest and most hassle free method to follow i.e. should I go with recurring billing or have the customer pay periodically. I'm open to all options and better yet any code samples that I can use straight on :)

我个人会选择客户认为最简单的方法。使用循环计费适用于爱情和婚介网站,它们希望利用您作为人类最深切的感受。 “当客户忘记他的帐户时,我们可以向他额外收费”(坐在他邪恶巢穴的轮椅上,大声笑哈哈哈哈,拍拍他的白猫)。

这是一个快速 php skeleton可以用作 IPN 接收器。

编辑2

Ok so recurring billing isn't such a good idea then :-S - I mean with recurring billing I don't think we would be able to maintain on our website a history of when teh customer has been billing is it?

当然,您可以保留这方面的历史记录。您知道客户什么时候开始付款,并且您可以在内部跟踪客户何时应该再次开具发票/账单。这只是与第一个付款日期的定期检查。

编辑3

So in this case I would do best to go with my older idea of allowing the customer to pay in advance for 3,6,12 months and run a check when the time is near to get him/ her to renew. Cool - so in that case I won't be using paypals recurring subscription service but their Buy Now button thingy or sorta :-S are there any free books on how to do this? I seem to have a bad habit of overcomplicating things.

是的。立即购买按钮非常适合与 IPN 一起使用。我认为您可以为不同的按钮设置不同的 IPN 处理程序(例如,不同的 php 页面)。免费书籍?就像那些用纸做的旧东西一样? ;) 网上有很多信息。 Paypal 有关于如何开始的教程。 PayPal 还有一个“沙盒”站点,您可以在其中创建测试按钮,以针对您的站点生成虚假交易。您将需要使用它。

编辑4

Thanks a lot man for the great advice - figures the simpler I keep it the less issues I'd run into. Would holler again on SO should I need more advice. I had worked once a while back in 2Checkout but that was on code already built so I had a vague idea of what was going on - this is my first project using paypal though - ah well never too late to learn :)

最后一件事。确保您从一开始就设置了基本的日志记录功能,这样您就可以将数据转储到文件中并查看发生了什么,PayPal 向您发送了什么样的数据。这对我帮助很大。它不需要什么高级的东西,一个简单的文本文件就可以了。否则,“调试”这些事务可能会非常痛苦。 “FTW现在正在进行中?” :)

祝你好运!

关于php - 建立基于 Paypal 的成员(member)网站 - total noob - would appreciate help,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/939972/

相关文章:

javascript - Paypal智能按钮: how to redirect to a PHP page after successfull payment?

php 调试 POST 变量

php - Joomla 和来自 mysql 的动态内容/页面

php - Laravel 即时更新电子邮件配置

paypal - Payflow 链接错误 - 缺少 token

php - 我怎么知道哪个订单是paypal付款的?

.net - MySql .net 连接器成员资格提供程序默认 MinRequiredNonAlphanumericCharacters

mysql - 在 MVC2 中使用 MySQL 的成员资格提供程序

javascript - 带有 Javascript 的 PHP 页面

asp.net - 如何在 Asp.Net Membership Provider 中处理 "Remember me"