IOS原生支付开发:
流程:app内显示支付页面--->用户付款--->付款后app获取交易凭证--->app将交易凭证传到日事清服务器--->日事清服务器通过交易凭证去苹果后台请求交易数据--->日事清服务器验证交易是否成功--->验证后给用户充值或者提示错误信息
ios原生支付相对较简单,不涉及过多的操作处理,也不涉及多个平台的支付。
Android集成Ping++支付开发:
流程:app内显示支付页面--->向日事清服务器请求Charge对象--->日事清服务器向ping++服务器请求创建Charge对象--->将请求到的Charge对象返给app并创建订单数据(UpgradeOrder表)--->app提示付款--->用户付款--->付款成功后app内显示付费成功--->Ping++平台通过Webhooks向日事清服务器推送支付成功--->日事清服务器查询订单并进行充值操作--->充值成功返给Ping++状态200,失败记录数据(PayError表)
Ping++平台可以统一微信和支付宝等支付平台,对用户来说只需要实现一套付费逻辑即可。对于开发者来说相对简单。
刚开始接触Ping++时遇到的误区,君毅开始时说的是所有的数据都在系统里,去系统里找就可以,我把所以能添的都添到Ping++平台后发现是不行的,然后根据Ping++平台提供的错误信息一步步去找解决方式,从目前来看,正确的流程应该是这样的:
1.先去各支付平台申请应用和app支付功能
2.开通后各支付平台会给用户邮箱发送各种开发用到的数据
3.将数据添入到Ping++平台
移动端支付宝、微信支付开发的相关问题:
app支付功能和web支付功能不尽相同。
相同的地方:
1.都需要经过 创建应用、资料审核、账户验证、签署协议、签约app支付功能 这几个步骤。
2.步骤一完成后都会向相关邮箱发送一套关于本次支付功能需要使用到的一系列数据。(邮箱为bit.liulei@163.com)
不同的地方:
1.支付宝的所有功能都在一个平台(支付宝),支付宝支付需要和支付宝商户平台打通。而微信部分功能在开放平台,部分功能在公众平台,而且两个平台是分别和商户平台打通的。
2.支付宝的商户私钥是自己保存,不提供查询私钥的入口(公钥可以在支付宝平台查),而微信的公钥私钥是可以在平台上查询的。
吐槽:
微信app支付开发是真费劲啊,每次审核都需要两天的时间才行,而支付宝只需要几个小时就审核完毕了。而且每次微信开发都会被有两个平台的问题绊住,web端支付开发用的是公众平台(之前我并没有意识到),而app支付开发需要使用开放平台才行,然后出现的情况就是在开放平台资料审核通过后需要账户验证,点击验证就跳到商户平台里的验证,然后商户平台就会提示验证已通过,无需验证,百度了几下找不到解决方案,给他们客服打电话,聊了几句之后他告诉我,可能我使用的是公众平台的商户账号登录的,我需要用开放平台的商户账号登录验证才行。到这我才了解到web端用的是公众平台的支付功能,所以我登录商户平台的是公众平台申请支付功能后提供的账号密码想死的心都有。
[jekyll]: http://jekyllrb.com
[jekyll-gh]: https://github.com/jekyll/jekyll
[jekyll-help]: https://github.com/jekyll/jekyll-help