如何在Google App Engine中“运行”“Paypal订阅服务”?
首先,我想让你知道,我在开发“付费”网页应用方面完全是个新手。我一直在阅读一些关于如何将Paypal的IPN与Google App Engine结合的帖子,但我对这个话题有一些疑问,情况是这样的:
我想在我的网页应用中使用Paypal的订阅按钮(我的应用是用GAE的Python基础开发的),这样用户就可以订阅高级版本,如果他们不想再使用免费版本的话……
我看到Paypal可以通过IPN来帮助我管理用户控制的事情,但我不知道该如何在我的GAE应用中设置这个……比如:
在Paypal的配置中,通知URL应该指向哪里?我觉得它应该指向我应用中的一个Python脚本,但我不太确定……如果真是这样,这个Python脚本里应该包含什么内容呢?
然后,等这一切完成后,我该如何让Paypal为我的用户创建用户名和密码,以便把非高级用户挡在“高级功能”之外呢?我不需要链接到某个地方,我需要的是关于如何在GAE的Python应用中实现“Paypal订阅服务”的详细说明,以便提供“高级服务”和免费服务。
谢谢,希望你能帮忙。
1 个回答
为了简单回答一下(因为我不太确定你的问题范围)。
- 维护你的数据模型不是PayPal的责任。你需要自己创建一个数据库来存储用户信息。
想要了解更多,可以查看谷歌的文档,地址是:
http://code.google.com/appengine/docs/python/gettingstarted/usingusers.html,还有更重要的,http://code.google.com/appengine/docs/python/gettingstarted/usingdatastore.html
所以你可以创建一个这样的数据模型:
class Users(db.Model):
gae_user_object = db.UserProperty()
premium_member = db.BooleanProperty(default=False)
(当然,因为你想追踪订阅,这个模型会太简单,但你可以理解大概意思)。
然后让PayPal触发的脚本调用一个函数来改变 *premium_member* 的值……
- 是的,PayPal的即时支付通知会调用你的应用程序(你可以在PayPal的界面中指定一个网址,这样你可以选择映射到哪个地址,最好使用你的https的appspot子域名)。你的应用需要存储PayPal刚刚发送的数据,并且在确认任何事情之前,先向PayPal的服务器回调刚刚发送的参数,以确认这笔交易确实是由PayPal发起的,而不是其他人。
想要看到一个实际的例子,可以查看 http://blog.awarelabs.com/2008/paypal-ipn-python-code/ 和 http://groups.google.com/group/google-appengine-python/browse_thread/thread/d76701e774e308be,虽然这两个例子都不是很好(可能会工作,但不要直接在生产环境中使用,因为错误处理会很糟糕)。