谈谈银联 js 支付

业务场景:银联 JS 支付指二维码为收单机构订单的 URL,用户扫描二维码后在 APP 浏览器中打开收单机构的 H5 页面,收单机构在确认支付后调用银联统一网关,由银联调用 APP 完成支付的场景。

银联 JS 支付为丰富 APP 受理范围,现中国银联正在积极推动包括各大行、京东、携程等在内等其他银联标准 APP 银联 JS 支付付款侧改造。现已支持云闪付 APP、交通银行手机银行、交通银行买单吧、中信动卡空间、浦发喜大普奔、京东金融。其他银行APP正在陆续改造中。

现在整理下接入流程,希望对接入过程中有问题的朋友提供些参考。整个流程主要分为关键的 3 个步骤:

1、获取临时用户授权

2、获取用户唯一标识

3、下单获取支付链接,并拉起支付控件,完成支付

获取临时用户授权和获取用户唯一标识,交互流程如下:

谈谈银联 js 支付_第1张图片

 

关键点:

1、获取临时用户授权,请求地址 https://qr.95516.com/qrcGtwWeb-web/api/userAuthversion=1.0.0

&redirectUrl=callbackUrl,回调回来时 callbackUrl 后面添加 userAuthCode 和 respCode 两个参数, respCode=00标识成功, userAuthCode 为后台获取 APP 用户信息的临时授权码。

2、userAuthCode 访问有效期 5 分钟。

3、获取用户标识,需拿 userAuthCode 和 银联支付标识 appUpIdentifier 置换。其中appUpIdentifier 的获取方式:通过用户请求的 HTTP 中的 User Agent 截取,银联支付标识的格式为“UnionPay/<版本号>”,从前往后截取,匹配“UnionPay/”作为开始,至英文空格之间的内容为版本号(如 1.0、1.1、2.0),从英文空格开始,至非字母非数字结束,之间的内容为每一个 APP 的特殊标识。

 

下单的交互流程如下:

谈谈银联 js 支付_第2张图片

 

关键点:

1、下单时,需要传入获取的用户唯一标识和用户客户端的真实 ip 地址(银联将对此进行安全控制)。

2、下单成功拿到 pay_url ,后端直接 301 重定向返回给浏览器,即可拉起对应 APP 的支付控件完成支付。

你可能感兴趣的:(支付,支付,银联,js,支付,支付流程)