(5)客户端通过交易序列号(TN)调用支付控制;
(6)用户在支付控件中输入相关支付信息后,支付控件向银联后台发起支付请求;
(7)支付成功后,银联后台将支付结果通知商户后台;
(8)银联将支付结果通知支付控件;
(9)支付控件显示支付结果,并将支付结果返回给客户端;
注:本文件主要关注上述流程中第(5)和第(9)部分的实施。
目前各平台支持的设备如下:
平台SDK主要适用于2.3及以上版本的终端设备;
3. 测试账户
提供测试卡号及手机号信息(此信息仅用于测试,不会发生正式交易)
招商银行借记卡:
电话号码:
密码:
短信验证码:(点击获取验证码,输入即可)
文件类型:01 身份证
身份证号码:5303
姓名: 张三
华夏银行信用卡:
电话号码:
CVN2:248
有效期:1219
短信验证码:(点击获取验证码,输入即可)
文件类型:01 身份证
身份证号码:5303
姓名: 张三
4. SDK获取说明及部分文档
关于技术支持和业务描述的一些事项
下载移动控制支付SDK的demo以及相关接入文档jar包
因为下载的银联手机控件支付开发包里的demo工程还未配置好,所以下载的控件使用指导文档里还有一些说明,这里也会列出来,现在我就用它来完成本次demo,如下:
4.1 SDK 软件包说明
商户开发者获取银联提供的开发包后,需要查看SDK文件所在目录,下文中提到的文件均在此目录中:
apk目录包含支付控制apk:.apk
jar目录下包含了商户集成所需的jar包、so文件(支持arm、x86、-v8a平台)和资源文件。
.jar定义了调用支付控件所需的接口。
4.2 接口说明
1.支付接口
启动支付控件的接口定义在/.jar中,接口定义如下:
int (,spId,,,模式)
参数说明:
——用于启动支付控件的对象
spId - 保留,此处输入 null
—— 保留使用,此处输入空值
—— 订单信息为商户后台从银联后台获取的交易流水号,即TN。
mode —— 银联后台环境标识,“00”将在银联正式环境中发起交易,“01”将在银联测试环境中发起交易
返回值:
.—— 终端已安装控件并启动控件
.— 移动端尚未安装支付控件,需要先安装支付控件
2.检查银联Apk接口是否安装
检测银联apk是否安装的接口定义在/.jar中,接口定义如下:
()
参数说明:
——启动支付控制的环境
返回值:
true —— 终端已经安装控制apk
— 终端没有安装控制apk
4.3 添加SDK包
(1)可以新建一个工程来写demo,也可以使用导入的demo。
生成的项目
(2)在appàsrcàmain中新建文件夹,将//jar/data.bin复制到项目的/目录下;
(3)在主目录下新建,然后将//jar/xxx/.so和//jar/xxx/.so复制到项目的libs/xxx/目录下,其中xxx为-v7a、-v8a、x86等之一。
-v8a() 是针对(x86 64)架构优化的库文件,引入到项目中后,在(x86 64)机型上的性能会有所提升,但最终生成的包会变大。注意:如果项目中使用了其他的.so库,那么所有的.so库都需要有 -v8a() 的版本。
(4)在app目录下新建libs,并将//.jar复制到项目的libs/目录下;
复制//jar/.jar到项目的libs/目录下,然后制作依赖jar包;
效果如下:
(5)在项目的.xml文件中注册支付插件,添加以下内容
:name="com...demo."
:=“@/jar” >
:name="com..."
:=“||”
:=“”>
:name="com.."
:=“||”
:=“”
:=“” >
还添加权限:
注意:编译版本的时候要选择API,建议使用上面的
(6)调用支付控件
1.支付接口调用
a) 在调用支付控件的代码文件中引入类如:
聯絡..;
b) 然后您可以通过以下方式调用支付控件:
// "00" 为银联官方环境
// “01” – 银联测试环境,不发生任何真实交易
=“01”;
. (, 空, 空, tn, );

支付完成后获取支付控件的支付结果并添加相应的处理逻辑,只需要在调用中实现()方法即可,支付成功时会返回商户客户端支付结果的签名信息。
对于新增的签名信息,请注意以下几点:
1、前台返回的支付结果带有银联签名,需在商户后台验证签名后才能显示结果。
2、前台签名使用的密钥和算法与后台结果中的签名一致。
3.商户APP若在客户端进行签名验证,需自行实现签名密钥更新机制,否则更换密钥后会导致签名验证失败。(不推荐)
4.商户订单是否支付成功需以商户后台各渠道返回的支付结果为准,此处支付控件返回的结果仅供参考。
示例代码如下:
无效( int ,
整数,
数据)
如果(数据==空){
;
str = 数据.().(“”);
如果(str。()){
// 支付成功后,若存在,则取出进行验证
//结构见c)参数说明
如果(数据。(“”)){
符号 = 数据.().(“”);
// 通过签证证书后台验证来验证签证证书
//此处需要商户发送到商户后台进行签名验证
如果((符号)){
//验证通过后,显示支付结果
(“ 支付成功! ”);
} 别的 {
// 验证失败后的处理
//建议通过商户后台查看支付结果
} 别的 {
// 未收到签名信息
//建议通过商户后台查看支付结果
}否则,如果(str。()){
(“支付失败!”);
}否则,如果(str。()){
(“您已取消此订单的付款!”);
c)参数说明:
参数说明:
sign —— 签名后的数据
data —— 需要签名的原始数据
数据中原有的数据结构:
—— 支付结果, 支付失败,
tn——订单号
以下是一个例子:
"{"sign":"//+1N++/xX/////+==","data":"=&tn="}"
2.检查银联Apk接口调用是否已经安装
如果(。())
//当判断用户手机已安装银联APK时,商户客户端可进行相应的个性化处理
(7)旧SDK商户修改说明
对于已经接入原版SDK的商户,可以在原有修改的基础上更新相应文件,增加如下修改:
1.添加//jar/xxx/.so
2.在项目的.xml文件中添加。添加如下:
:name="com.."
:=“|”
:=“”
:=""/>
3、调用接口改为4.2节中的支付接口,但仍保留原有接口,如下所示:
int (,,spId,,,模式)
参数说明:
我先自我介绍一下,我2013年毕业于上海交通大学,在小公司工作过,也进过华为、OPPO等大公司,2018年加入阿里巴巴,一直到现在。
我知道大部分初中级工程师想要提升自己的技能,往往都是自学或者上课,但培训机构的学费动辄近万元,压力真的很大。没有系统的自学效率低、耗时长,而且很容易碰天花板、停滞不前!
因此我收集整理了一本《2024年全套移动开发学习资料》,初衷很简单,就是为了帮助那些想要提升自己却不知道从何下手的朋友,同时也减轻大家的负担。
既有适合新手学习的零基础资料,也有适合经验3年以上小伙伴深入学习提升的进阶课程,基本覆盖了95%以上的开发知识点,真正做到了系统化!
由于文件比较大,这里只截图部分目录,每个节点都有大公司面试经历,学习笔记,源码讲义,实战项目,讲解视频,会持续更新!
如果你觉得这些内容对你有帮助的话,可以扫码获取!!(注:)
总结
最后,为了帮助大家深入理解相关知识点原理和面试相关知识,这里附上我针对中高级开发人员收集整理的核心笔记,一共 2968 页 PDF,58 万字,涵盖 648 个开发知识点。我把技术点整理成视频和 PDF(其实比想象中花了不少功夫),包括知识脉络 + 很多细节。
网上有很多的学习资料,但是如果学习到的知识不系统,遇到问题只是浅尝辄止,没有深入研究,很难取得真正的技术提升,希望本篇系统化的技术体系能给大家提供参考。
虽然2021年的道路坎坷,大家都在谈论衰落,但不要慌张,自己做计划,自己吸取教训,竞争无处不在,每个行业都有。相信自己,没有你做不到的事,只有你想不到的事。
虽然我面试失败了,但是我不会放弃加入字节跳动的决心!建议大家在面试前做好充分的准备,这样才能顺利拿到自己想要的工作。
点击传送门即可获取“各大互联网公司面试真题解析、高级开发核心学习笔记、全套讲解视频、实际项目源码讲义”!
!!(评论:)**
总结
最后,为了帮助大家深入理解相关知识点原理和面试相关知识,这里附上我针对中高级开发人员收集整理的核心笔记,一共 2968 页 PDF,58 万字,涵盖 648 个开发知识点。我把技术点整理成视频和 PDF(其实比想象中花了不少功夫),包括知识脉络 + 很多细节。
[外部链接图片正在转移...(img--36)]
网上有很多的学习资料,但是如果学习到的知识不系统,遇到问题只是浅尝辄止,没有深入研究,很难取得真正的技术提升,希望本篇系统化的技术体系能给大家提供参考。
虽然2021年的道路坎坷,大家都在谈论衰落,但不要慌张,自己做计划,自己吸取教训,竞争无处不在,每个行业都有。相信自己,没有你做不到的事,只有你想不到的事。
虽然我面试失败了,但是我不会放弃加入字节跳动的决心!建议大家在面试前做好充分的准备,这样才能顺利拿到自己想要的工作。
点击传送门即可获取“各大互联网公司面试真题解析、高级开发核心学习笔记、全套讲解视频、实际项目源码讲义”!