Android 技术:支付宝支付接入详细指南
来源:互联网 发布:手机脚本软件 编辑:程序博客网 时间:2024/04/30 00:57
接入流程如下:
1 签约成为支付宝商户
签约地址:https://b.alipay.com/,
只有成为签约商户的开发者才能具备集成支付宝app支付的资格。
签约资料:1)营业执照 2)APP说明文档 3)商户经营信息、商户联系人等信息
必要时还需提供APP apk以备审核。审核通过后即可进行代码集成。
审核通过后,可得到支付宝分配的商户号等信息。
2 客户端代码集成准备
2.1 导入jar包资源
目前最新版支付宝开发jar包下载地址:http://download.csdn.net/detail/xiong_it/9566771
下载后将之拷贝libs目录,Eclipse会自动添加依赖,Android Studio需在app的gradle中添加一行
- 1
- 1
点击右上角:Sync Now,稍等片刻
2.2 修改AndroidManifest.xml清单
声明必要Activity
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
添加必要权限
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
2.3 添加支付宝混淆规则
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
3 客户端代码集成
支付宝交互流程示意图
流程图白话版解释
- app携带支付信息调用支付接口请求支付宝客户端调起支付界面;
- 用户操作,输入密码支付,支付成功;直接返回取消支付;出现错误,支付失败;进入支付界面,但输入密码支付,支付待确认;
- 支付宝客户端将支付结果告诉app客户端,商户服务器通知app服务器支付结果;
- app客户端处理支付结果;
- app服务器处理支付结果。
支付宝的支付流程较之微信的支付流程图少了一步app服务器端订单的生成,但是在其demo代码中是推荐使用app服务器进行sign签名过程的,于是笔者索性是按照的微信支付的流程(微信支付交互流程)去集成的。
- 客户端代码得到用户购买的商品信息,将之传给自己公司app服务器,参数包含但不限于以下:
- 1
- 2
- 1
- 2
注意:支付宝支付的人民币单位和微信支付,银联支付稍有不同,需以:元 作为支付单位。其他两者支付单位为:分
其他参数均交给咱们app服务器处理即可,详细参数请点击:https://doc.open.alipay.com/doc2/detail?treeId=59&articleId=103663&docType=1
- app服务器参考上述详细参数链接,得到sign(支付签名信息)字段并返回sign字段给手机客户端;
- 手机客户端使用sign签名信息在非UI线程调起支付客户端进行支付;
用户操作:输入密码进行支付;返回键取消支付;进入支付界面,用户未进行支付,用户返回,待支付;网络无连接支付失败等; - 客户端得到支付结果;
- 支付宝服务器异步通知咱们公司app服务器支付结果(服务器的工作,与客户端无关)
这样做的好处:签名逻辑在服务器完成,app无需暴露公钥和私钥,更安全。同时也是demo中的推荐做法。
更详细的支付宝接入交互流程解释请点击:https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.7WO30X&treeId=59&articleId=103658&docType=1
4 客户端代码示例
支付调起代码(须在子线程)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
支付处理代码(UI线程)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
注:AliPayResult.Java来自支付宝demo中的PayResult.java
至此,集成支付宝SDK结束。祝各位集成支付宝支付成功!
按照惯例,附上支付宝SDK接入的官方demo下载链接:https://doc.open.alipay.com/doc2/detail.htm?treeId=54&articleId=104509&docType=1
- Android 技术:支付宝支付接入详细指南
- Android 技术:微信支付接入详细指南
- Android App支付系列(二):支付宝SDK接入详细指南(附官方支付demo)
- Android App支付系列(二):支付宝SDK接入详细指南(附官方支付demo)
- Android App支付:支付宝SDK接入详细指南(附官方支付demo)
- Android App支付系列(二):支付宝SDK接入详细指南(附官方支付demo)
- Android App支付系列(二):支付宝SDK接入详细指南(附官方支付demo)
- Android App支付系列(二):支付宝SDK接入详细指南(附官方支付demo)
- 支付宝支付接入指南
- 支付宝SDK接入详细指南(附官方支付demo)
- Android App支付系列(一):微信支付接入详细指南(附官方支付demo)
- Android App支付系列(一):微信支付接入详细指南(附官方支付demo)
- Android App支付系列(一):微信支付接入详细指南(附官方支付demo)
- Android App支付系列(一):微信支付接入详细指南(附官方支付demo)
- Android App支付系列(一):微信支付接入详细指南(附官方支付demo)
- Android支付接入:支付宝
- 超详细Android接入支付宝支付实现,有图有真相
- 超详细Android接入支付宝支付实现,有图有真相
- NSNotification、KVO、Delegate的同步和异步问题
- Android系统编程思想篇:建造者模式
- .NET 中的委托
- PAT
- iOS UDID UUID 广告标识符的区别
- Android 技术:支付宝支付接入详细指南
- Keil/MDK 小知识点:Program size: Code, RO-data , RW-data, ZI-data 解释(什么意思)
- Linux 之 最常用的20条命令
- LintCode | 66. 二叉树的前序遍历
- Spring AOP xml配置方法
- android中文件加密和解密的实现
- jquery单选按钮循环赋值及获取选中的值
- java关于switch-case的练习题
- COMET 诞生(转载)