银联支付流程详解:从交易流水号生成到支付结果返回的完整步骤

2024-12-28
来源:网络整理

(3)银联后端收到订单信息并核对后,生成对应的交易序列号(即TN),并将交易序列号回复给商户后台(响应元素:交易序列号等);

(4)商户后台接收交易序列号,并将交易序列号返回给客户端;

(5)客户端通过交易序列号(TN)调用支付控制;

(6)用户在支付控件中输入相关支付信息后,支付控件向银联后端发起支付请求;

(7)支付成功后,银联后台将支付结果通知商户后台;

(8)银联将支付结果通知支付控制;

(9)支付控件显示支付结果并将支付结果返回给客户端;

注:本文档主要关注上述流程中第(5)、(9)部分的实现。

目前各平台支持的设备如下:

平台SDK主要适用于2.3及以上版本的终端设备;

3. 测试账户

提供测试卡号和手机号码信息(此信息仅用于测试,不会发生正式交易)

招商银行借记卡:

电话号码:

密码:

短信验证码:(先点击获取验证码再输入)

文件类型:01身份证

证书编号:5303

姓名:张三

华夏银行信用卡:

电话号码:

简历2: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

——保留使用,此处填null

——订单信息为交易流水号,即TN,由商户后台从银联后台获取。

mode —— 银联后端环境标识,“00”为银联官方环境发起交易,“01”为银联测试环境发起交易

返回值:

。 ——终端已安装控件并启动控件

。 — 移动端尚未安装支付控件。您需要先安装支付控件。

2.检查是否安装了银联Apk接口

/.jar中定义了检测是否安装银联apk的接口。接口定义如下:

( )

参数说明:

——启动支付控制的环境

返回值:

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...演示。"

:=“@/jar”>

:name="com..."

:=“||”

:="">

:name="com.."

:=“||”

:=“”

:=“”>

还添加权限:

注意:编译版本时要选择API。以上建议

(6) 通话支付控制

1.支付接口调用

a) 引入类,例如:

com..;

b)支付控件可以通过以下方式调用:

// “00”——银联正式环境

// “01” – 银联测试环境,该环境下无真实交易发生

=“01”;

。 (, 空, 空, tn, );

支付完成后,获取支付控件的支付结果,并添加相应的处理逻辑。只需要在调用中实现()方法即可。支付成功后,将返回商户客户端支付结果的签名信息。

对于新增的签名信息,请注意以下几点:

1、前台返回的支付结果中包含银联签名,需在商户后台验证签名后才能显示结果。

2、前台签名使用的密钥和算法与后台签名结果一致。

3、如果商户APP在客户端进行签名验证,则必须自行实现更新签名密钥的机制,否则更改密钥后签名验证将失败。 (不推荐)

4、商户订单是否支付成功以商户后台各渠道返回的支付结果为准。这里支付控件返回的结果仅供参考。

示例代码如下:

无效(整数,

整数,

数据)

如果(数据==空){

str =数据.().("");

if( str.() ){

// 支付成功后,如果存在,取出来验证

// 结构体见c)参数说明

如果(数据。(“”)){

符号=data.().("");

// 验证证书,同时验证证书

// 这里商户需要发送给商户后台进行签名验证

如果((符号)){

//验证通过后,显示支付结果

(“支付成功!”);

} 别的 {

// 验证失败后的处理

// 建议通过商户后台查看支付结果

} 别的 {

// 没有收到签名信息

银联支付怎么关闭_银联支付平台有哪些_银联如何支付

// 建议通过商户后台查看支付结果

}否则 if( str.() ){

(“支付失败!”);

}否则 if( str.() ){

(“您已取消此订单的付款!”);

c) 参数说明:

参数说明:

签名 - 签名后创建的数据

data – 用于签名的原始数据

data中原始数据结构:

——支付结果,失败,

tn——订单号

示例如下:

"{"sign":"//+1N++/xX/////+==","data":"=&tn="}"

2.检查是否已安装银联Apk接口调用

如果(。())

//当判断用户手机上已安装银联Apk时,商户客户端即可进行相应的个性化处理

(7) 商户旧版本SDK修改说明

对于原生SDK接入的商户,在原有修改的基础上更新相应文件后,需要添加如下修改:

1.添加//jar/xxx/.so

2. 添加到项目的.xml 文件中。添加以下内容:

:name="com.."

:=“|”

:=“”

:=""/>

3、调用接口改为4.2节中的支付接口,但仍保留原来的接口,如下图:

让我自我介绍一下。我2013年毕业于上海交通大学,曾在小公司和华为、OPPO等大公司工作过。我于2018年加入阿里巴巴,一直到现在。

我知道,大多数初级和中级工程师想要提高自己的技能,往往必须自己探索和成长,或者报名参加课程。但培训机构近万元的学费确实压力很大。没有系统的自学效果低效且冗长,很容易触碰天花板,技术停滞不前!

因此,我们收集整理了《2024年移动开发全套学习资料》。初衷也很简单。希望能够帮助到想要学习、提升自己却又不知道从哪里开始的朋友,同时也减轻大家的负担。

既有适合新手学习的基础教材,也有适合3年以上经验的朋友深入学习和提高的高级课程,基本涵盖了95%以上的开发知识点,真正系统化!

由于文件比较大,这里只是截取部分目录。每个节点包含各大厂商访谈、学习笔记、源码讲义、实战项目、讲解视频,并将持续更新!

如果您觉得本内容对您有帮助,可以扫码获取! ! (评论:)

终于

如果您读了这篇文章,觉得文章写得很好,请点个赞好吗?如果您觉得有什么值得改进的地方,请给我留言。我一定会仔细检查并改正任何不足之处。谢谢。

欢迎大家交流讨论~

《各大互联网公司面试真题解析、高级开发核心学习笔记、全套讲解视频、实际项目源码讲义》点击传送门即可获取!

246)]

[外部链接图片正在传输中...(img--47)]

[外部链接图片正在传输中...(img--47)]

[外部链接图片正在传输中...(img--47)]

既有适合新手学习的基础教材,也有适合3年以上经验的朋友深入学习和提高的高级课程。基本涵盖了95%以上的开发知识点,真正系统化!

由于文件比较大,这里只是截取部分目录。每个节点包含各大厂商访谈、学习笔记、源码讲义、实战项目、讲解视频,并将持续更新!

如果您觉得本内容对您有帮助,可以扫码获取! ! (评论:)

终于

如果您读了这篇文章,觉得文章写得很好,请点个赞好吗?如果您觉得有什么值得改进的地方,请给我留言。我会仔细检查并改正任何不足之处。谢谢。

[外部链接图片正在传输中...(img--47)]

欢迎大家交流讨论~

《各大互联网公司面试真题解析、高级开发核心学习笔记、全套讲解视频、实用项目源码讲义》点击传送门即可获取!

分享