近期要帮别人做一个网站,基于django开发,网站需要简单的支付功能,如注册用户付费成为会员等。
我从来没有做过支付相关的功能,与钱相关的功能还要慎重考虑安全性问题,所以这里想和各位老师请教一下,如何实现比较高效
ps:
我现在主要考虑下面三点如何实现
请各位老师指点,不胜感激
1
armoni 2015-05-08 10:08:19 +08:00 1
去他们网站上看看吧,有sdk文档,百度下就知道的东西
|
2
huxiweng 2015-05-08 10:16:55 +08:00 via iPhone 1
想太多了。ping++就够了。
|
3
cevincheung 2015-05-08 10:33:54 +08:00 1
@huxiweng ping++还是需要自己去申请各大支付平台的key和密钥什么的,个人身份只能用银联方式支付。
|
4
shierji 2015-05-08 10:58:03 +08:00 via Android
|
5
hging 2015-05-08 11:00:24 +08:00
1. 我现在用的ping++ 之前用过支付宝
2. 申请如果是公司可能要执照什么的 具体可以丢给ping++帮你搞定.(简直太方便了) 3. 付费后, 比如ping++或者支付宝会给你callback 感觉接受到callback后 再通过callback的内容去相应的支付放去验证下状态, 这样比较安全. 4. 那建议用ping++ 增加支付方式不要太方便.... |
6
101 2015-05-08 11:06:41 +08:00
https://github.com/fengli/alipay_python
很久没更新了,了解一下思路吧 |
9
gevin OP @hging 我也看中ping++,现在的困境是我从来没接触够支付功能的逻辑,所以比较慎重,关于支付功能的实现,能多介绍一下么?
|
10
hging 2015-05-08 12:18:07 +08:00
@gevin 基本上在ping++的网站上 可以找到文档 然后基本上把代码都帮你写完了. 只用改改就好了(仅限支付以及回调,验证回调正确性还要自己写,不过不难)
|
12
tidewind 2015-05-09 01:51:46 +08:00 1
支付功能最简单的逻辑(抛开ping++不提)
1:用户在你的系统里做某个操作得到一个订单(订单编号按照自定义规则生成,需要唯一标识) 2:参看第三方支付的 sdk,每家标准不同,当用户创建完订单开始支付时,服务端内部(django)需要用sdk向第三方支付平台发起支付申请(可以把刚才创建的的订单编号传过去,还包括一堆 有的没的参数,包括支付结果的回调地址,根据sdk需要来) 3:带着参数redirect到第三方支付页面(也有别的情况,例如微信支付就是拿着prepayid之类的丢给浏览器js继续处理),总之这一步就开始让用户进行支付的操作了 4:支付完成,两种支付通知方式: 1:第三方支付发起同步跳转请求到你的web服务上,带着参数将支付结果告诉你的某个接口,你进行解密后拿到支付是否成功的信息,对你的数据进行操作。 2:异步通知,第三方支付会在它后台向你的异步通知请求接口发起支付结果请求,如果因为网络问题,一次没访问到,会多访问几次,如果n次之后还没有访问到,不再请求,你需要手工查询进行处理。 支付结果通知建议同步和异步两种都做,当然每一个方式都需要先检查一遍订单是否已经做过已付款的操作。 这就是最简单的逻辑了。 |