求助个网站上支付功能实现的思路

2015-05-08 09:38:03 +08:00
 gevin

近期要帮别人做一个网站,基于django开发,网站需要简单的支付功能,如注册用户付费成为会员等。

我从来没有做过支付相关的功能,与钱相关的功能还要慎重考虑安全性问题,所以这里想和各位老师请教一下,如何实现比较高效

ps:
我现在主要考虑下面三点如何实现

  1. 如何付费?利用支付宝,利用微信支付,还是有其他更好的方式(如ping++)?
  2. 使用这些付费手段前,要具备什么样的使用条件?(如需要申请什么东西,提供哪些资质等)
  3. 付费后(成功或失败)如何实现callback比较靠谱?
  4. 以后会开发微信服务号,在微信服务号上提供支付功能最后能一并考虑进去

请各位老师指点,不胜感激

3083 次点击
所在节点    Python
13 条回复
armoni
2015-05-08 10:08:19 +08:00
去他们网站上看看吧,有sdk文档,百度下就知道的东西
huxiweng
2015-05-08 10:16:55 +08:00
想太多了。ping++就够了。
cevincheung
2015-05-08 10:33:54 +08:00
@huxiweng ping++还是需要自己去申请各大支付平台的key和密钥什么的,个人身份只能用银联方式支付。
shierji
2015-05-08 10:58:03 +08:00
我想问下如何保证安全呢。纯新手 哪儿能找到文档么 同样想基于Python

@armoni
@huxiweng
@cevincheung
hging
2015-05-08 11:00:24 +08:00
1. 我现在用的ping++ 之前用过支付宝
2. 申请如果是公司可能要执照什么的 具体可以丢给ping++帮你搞定.(简直太方便了)
3. 付费后, 比如ping++或者支付宝会给你callback 感觉接受到callback后 再通过callback的内容去相应的支付放去验证下状态, 这样比较安全.
4. 那建议用ping++ 增加支付方式不要太方便....
101
2015-05-08 11:06:41 +08:00
https://github.com/fengli/alipay_python
很久没更新了,了解一下思路吧
gevin
2015-05-08 11:38:54 +08:00
@armoni 去什么网站看?
gevin
2015-05-08 11:39:16 +08:00
@101 多谢~
gevin
2015-05-08 11:43:04 +08:00
@hging 我也看中ping++,现在的困境是我从来没接触够支付功能的逻辑,所以比较慎重,关于支付功能的实现,能多介绍一下么?
hging
2015-05-08 12:18:07 +08:00
@gevin 基本上在ping++的网站上 可以找到文档 然后基本上把代码都帮你写完了. 只用改改就好了(仅限支付以及回调,验证回调正确性还要自己写,不过不难)
gevin
2015-05-08 13:31:20 +08:00
@hging 多谢~
tidewind
2015-05-09 01:51:46 +08:00
支付功能最简单的逻辑(抛开ping++不提)

1:用户在你的系统里做某个操作得到一个订单(订单编号按照自定义规则生成,需要唯一标识)

2:参看第三方支付的 sdk,每家标准不同,当用户创建完订单开始支付时,服务端内部(django)需要用sdk向第三方支付平台发起支付申请(可以把刚才创建的的订单编号传过去,还包括一堆 有的没的参数,包括支付结果的回调地址,根据sdk需要来)

3:带着参数redirect到第三方支付页面(也有别的情况,例如微信支付就是拿着prepayid之类的丢给浏览器js继续处理),总之这一步就开始让用户进行支付的操作了

4:支付完成,两种支付通知方式:
1:第三方支付发起同步跳转请求到你的web服务上,带着参数将支付结果告诉你的某个接口,你进行解密后拿到支付是否成功的信息,对你的数据进行操作。
2:异步通知,第三方支付会在它后台向你的异步通知请求接口发起支付结果请求,如果因为网络问题,一次没访问到,会多访问几次,如果n次之后还没有访问到,不再请求,你需要手工查询进行处理。

支付结果通知建议同步和异步两种都做,当然每一个方式都需要先检查一遍订单是否已经做过已付款的操作。

这就是最简单的逻辑了。
gevin
2015-05-09 14:20:55 +08:00
@tidewind 多谢~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/189379

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX