复制于 http://www.360doc.com/content/15/0225/21/22062232_450809874.shtml 文章很详细,谢谢该作者!参看 银联支付安卓版服务评测 中的测试文档http://www.devstore.cn/evaluation/testInfo/98-133.html Android-银联支付http://blog.csdn.net/qq285016127/article/details/38435585银联支付也是一般比较常用的支付功能,这里简单了介绍android app如果短期快速应用这一方面的东西。直接上代码: 1.导入银联支付的依赖包:
2.在res目录下增加资源包:
3.配置AndroidManifest.xml文件配置打开的activity:
银联支付代码3步骤: 1.获取TN号 2.请求控件界面(PayActivity) 3.ActivityResult处理支付结果(但该结果并不一定正确 ,因为银联系统通过异步返回给服务器和我们的app是同时异步的)
获取TN号后就可调用SDK的API发起支付操作。 I. 服务器获取交易流水号 商户服务器根据商户属性及订单属性向银联换取交易流水号(TN)
后面的run方法中从服务器获取上面产生的tn.发送消息到MainActivity.
客户端从后台获取 tn,启动支付
参数说明:
I. 支付结果获取和处理 a) 客户端同步获取 客户端需在onActivityResult中监听银联支付结果。银联将支付结果包装到了Intent data中,且requestCode=10。 客户端支付结果回调信息:
客户端支付结果代码示例:
b) 商户服务器异步获取 成功进行支付操作后,银联会通过post形式将商品支付信息通知到商户服务器。银联为支付通知设置了10秒超时时间,所以商户接到银联支付结果并确认无误后应立即答复银联返回码为200的通知,否则银联会认为通知失败。此外,超过10秒未答复银联也会认为是通知失败。银联会多次发送通知失败的支付结果,次数最多为5次。此外,由于网络等客观环境原因,商户可能会多次通知同一次支付结果,这时需商户在自己服务器进行逻辑判断并处理。
1、 遇到问题 (1)一定要注意将data.bin放到项目的res/drawable目录下,否则图片读取会出错; (2)如果使用2.1.3以上版本,银联将data.bin放到了UPPayPluginEx.jar中,所以不必再将data.bin放到res/drawable目录; (3)请确保将.so文件成功打到apk包中(可将apk包当做zip解压检查/lib目录下是否存在.so文件),否则无法成功打开银联支付; 2、 上手难易 银联的文档写得较乱,并且和内置的demo实际代码有冲突,所以接入初期会比较复杂,但银联的API调用比较简单,综上,客户端和服务器分别用半天时间进行接入调试应该就可以了。 3、 开发文档和支持
《UPMP商户接入技术改造指南》
《UPMP商户接入接口规范》
《银联手机支付控件使用指南(Android平台Jar包集成)》
《中国银联手机支付控件使用指南》 4、 测试日志: 获取交易流水号:
客户端收到银联支付结果:
5、 测试Demo 客户端测试Demo: BaseActivity
JARActivity
商户服务器测试Demo: 获取交易流水号:
测试银联支付回调:
6、 综合点评 1、 仔细阅读文档,熟悉银联支付接入流程; 2、 接入之前最好先运行资源包中附带的Demo,出现Demo和文档不一致的情况以Demo为准; 3、 一定要注意data.bin的位置,根据本人经验,不同2.1.3以上的银联版本把data.bin放到了jar包中,所以从2.1.3升级时一定要记得把之前放到drawable下的data.bin删除,否则会出现ANR。
7、 适用人群 客户端:熟悉Android开发,java开发,最好对第三方支付接入有一定了解。 服务器:熟悉Java开发,为满足支付的高并发请求和尽量避免掉单,请设计好线程池调度。 8、 客服反馈 技术支持反馈速度一般且态度比较亲和,如果遇到技术问题他们会找相关技术,客服不是技术出身,回复没有预想的及时了,技术支持QQ:769929732
9、 特色功能 1、 支持多达两千多个银行; 2、 支持信用卡、借记卡及预付卡三种银行卡进行支付; 3、 支持Debug联调模式,方便商户进行测试联调;
|
银联支付安卓版
最新推荐文章于 2021-05-29 19:18:17 发布