支付,流程

来源:互联网 发布:手机电子书阅读器软件 编辑:程序博客网 时间:2024/05/05 12:44
支付的方式:远程支付(网上支付,短信支付),近程支付(刷卡,pos机),现在就是使用第三方集成的SDK,有微信支付,
  支付宝支付,银联支付等.


  支付聚合平台:ping++


支付的流程:选择商品,选择支付方式,处理支付结果:成功,失败,取消.




支付流程:1,拼接支付信息,post到自己的服务器;(也就是发送一个请求url,以post的方式,


post的数据以jsonstring的格式进行发送,因为支付的数据非常多,非常复杂.其实是有一个这样形式的协议的,叫做


订单确认模式)


2,服务器返回'支付串码'-->response,这个所谓的支付串码其实就是调用起第三方支付平台需要传递的


核心参数.


3,拿着支付串码,调用第三方服务,完成支付.


4,处理支付结果

1)同步返回:支付后通知我们自己的apk,


2)异步通知:支付后通知我们的server




误觉:当我们点击了支付按钮的时候,好像是调到了支付宝界面,其实并不是这样的


真正的流程是:点击了支付按钮-->post支付信息到服务器(Request请求)
成功-->跳到支付宝,银联,微信完成付款操作,同时告诉它们你的付款信息,而这个付款信息是后台response返回的
失败-->请求失败


post请求参数中参数的含义: For example:goodInfos商品信息,代表你要买什么
   payInfo支付信息,代表你支付的方式,选择的平台等等
   userID谁去买




写Demo的话遇到了一些问题,没法写出DefaultHttpClient?所以后面好像我没法解决这个网络请求的问题.
按照Demo的写法的话,里面会用到post请求,添加头信息,添加支付信息,然后用网络请求把post发送出去得到Response响应
然后用Gson解析得到的Response,得到之后开始第三步操作,调用第三方服务




官方的Demo是运行不起来的,因为Keys里面是缺少一些东西的,这些东西包括:合作者ID,收款支付宝账号,商户私钥这些
所以,接入SDK之前,需要有前期准备,例如,商户签约,密钥配置这些
至于商户的私钥是需要自己生成的,其目的是把自己的公钥通过RSA加密算法,管理后台告诉第三方




集成支付宝,安装它的集成Demo,集成文档进行操作


1.核心插件jar包alipay.jar进行关联,资源Library工程alipay_lib放到当前libs下
2.修改Manifest清单文件
3.订单数据生成交给后台去拼接生成
4.接口调用,里面有个mHandler,这个mHandler的作用就是处理支付结果用的
5,支付结果和处理,也就是mHandler里面的处理方式.对官方的Demo进行一定的处理,把和Keys有关的删除掉




微信支付:运行注意,debug_keystore必须要用它的这个keystore进行签名,为什么要这样做?是因为安全码策略,与
百度地图中是一样的,它的作用是在微信本地后台唯一确定一个apk


微信支付集成的代码虽多,但是我们只需要关注文档中的第三部开始,调起微信支付,前面的一两步是需要服务器端
是实现的,但是在调用支付信息的时候因为要使用到后台的数据,微信官方的Demo又很复杂,我们又不需要,所以
我们可以自己定义一个实体bean去接受后台返回的数据,来替换官方Demo里面的第三步里面的方法.


官方第四步的操作,就是处理支付结果,它的这个处理的方法放在了WXPayEntryActivity这个类中的





银联支付:与支付宝支付的流程不相同的前1,2步其实就是支付的方式不一样.bankType
使用交易流水号就可以进行交易,但是一定要使用真机去进行调试


银联的处理方式是通过回调onActivityResult进行处理的
1 0
原创粉丝点击