一、先copy下写给后台的文档
支付宝
交互流程详见:
https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.7WO30X&treeId=59&articleId=103658&docType=1
客户端(android)调用的快捷支付接口如下:
https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.z09AwR&treeId=59&articleId=103662&docType=1
该接口需要传入两个参数 第二个参数 isShowPayLoading 是ui方面的设置,与后台无关。第一个参数 orderInfo 需要 后台服务器给出
客户端发起支付请求需要之前 需要 商户服务器 提供 签名后的订单信息 。
该订单信息的数据格式见链接:(请求参数说明)
https://doc.open.alipay.com/doc2/detail?treeId=59&articleId=103663&docType=1
支付完毕后 。支付宝服务器会向客户端 返回 请求结果 并异步通知 商户服务器端 。客户端在得到正确的返回码后 会再次向 后台服务器发起 最终的确认请求 也就是 文档第一个链接中的 数据交互流程图的 第 9 、10、11步。并以此确认结果为最终结果。
所以后台需提供一个 确认某支付订单支付结果的接口。
客户端和服务器端交互 两个接口
获取订单信息接口:
客户端传入参数:用户标识(uuid),商品信息(年付费、月付费),交易金额(年对应50,月对应6元),支付方式(支付宝支付)
服务器返回结果:结果码(1 成功),商品名称,商品详情(可空)、商品网站唯一订单号(必须)、带有签名的orderInfo(生成方式参见上面的说明)
交易结果确认接口:
客户端传入参数:用户标识、商品网站唯一订单号,支付方式
服务器返回结果: 结果码
微信支付
交互流程详见:
https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_3
客户单调用微信支付接口如下:
https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_12&index=2
这四个参数需要服务器端给出
预支付订单的生成 见:
https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1
微信的数据交互流程和支付宝类似
都要在客户端收到支付结果码后 向服务器发送确认交易结果的请求
因此微信支付 ,客户端和服务器端交互也是两个接口
获取订单信息接口:
客户端传入参数:用户标识(uuid),商品信息(年付费、月付费),交易金额(年对应50,月对应6元),支付方式(微信支付)
服务器返回结果:结果码(1 成功),商品名称,商品详情(可空)、商品网站唯一订单号(必须)、预支付交易会话id,随机字符串,时间戳,签名。
交易结果确认接口:
客户端传入参数:用户标识、商品网站唯一订单号,支付方式
服务器返回结果: 结果码
三、遇到的问题
1、androidstudio 打包编译 第三方sdk jar包冲突
支付宝sdk 和umeng 或者支付宝系列的其他app 比如阿里云等
iOS&Android版资源(适用于集成了百川sdk,出现UTDID冲突)
2、微信坑比较多 从界面到调用 个人感觉都不如支付宝 网上已有很多趟路人了到处都是坑的微信支付V3