获取用户信息:
用户信息获取包含两个接口。
第一步,收款方通过“获取用户授权”接口请求付款方APP获取临时授权URL;
第二步,收款方通过HTTP GET方式访问临时授权URL,付款方直接在HTTP应答中返回用户标识。具体过程如下:
获取用户授权接口(第一步):
付款方APP访问收单机构H5页面,收单判断当前是否有该 APP 的用户信息 。如没有,则返回 302 重定向地址,具体格式如下: “https://qr.95516.com/qrcGtwWeb-web/api/userAuth?version=1.0.0&redirectUrl=收单机构接收处理结果的地址” (具体格式可参考《中国银联二维码交易处理系统技术指南V2.5》中“获取用户授权”接口部分),其中请求的redirectUrl值需进行URLEncode。付款方APP将处理用户信息获取请求,完成后直接访问请求中的redirectUrl,并在redirectUrl后面添加userAuthCode和respCode两个参数,respCode=00标识成功,userAuthCode为后台获取APP用户信息的临时授权码。
获取用户授权接口有以下三种返回情况:
1)获取用户信息成功(respCode == 00),收单在订单推送接口必须上送userId;
2)获取用户信息失败(respCode != 00&& respCode != 34),收单机构需告知用户终止交易;3)付款方不支持获取用户信息(respCode == 34),收单在订单推送接口可以不送userId,也不用再执行第二步“获取用户标识”。
获取用户授权接口(第二步):
收款方获取授权码userAuthCode、银联支付标识appUpIdentifier后通过后台接口请求银联获取用户标识。其中,授权码只能请求一次,一般访问有效时间为5分钟(注:付款方可能会根据情况缩短或延长链接有效时间);银联支付标识需要收款方通过HTTP中的User Agent截取,银联支付标识的格式为“UnionPay/<版本号><App标识>”(不含双引号),其中<版本号>固定为1.0,<App标识>为付款方自行定义的内容(仅包含字母或数字)。具体报文可参考《中国银联二维码交易处理系统技术指南V2.5》中“获取用户标识”接口部分。银联将通过付款方后台将处理用户信息获取请求,完成后返回应答,应答内容包括userId和respCode两个参数,respCode=00标识成功,userId为用户标识。
获取用户标识接口有以下二种返回情况:
1)获取用户信息成功(respCode == 00),收单在订单推送接口必须上送userId;
2)获取用户信息失败(respCode != 00),收单机构需告知用户终止交易。
订单推送接口:
用户在收款方 H5 页面上点击“确认”后,收款方识别 HTTP 请求 User Agent 中包含银联支付标识“UnionPay/<版本号> <App 标识>”或者包含 Safari 浏览器标识时,通过“订单推送”接口向银联推送消费类订单。银联将向收款方返回重定向地址(redirectUrl),收款方向浏览器返回 HTTP 应答码 301,且重定向地址指向银联返回的redirectUrl。
注:收款方向银联发起“订单推送”请求报文中的 customerIp 字段需要填写用户 APP侧的真实 IP 地址,银联将对此进行安全控制;userId 字段通过用户信息获取接口获取,非APP 返回用户信息获取接口不支持(respCode=34 表示不支持)情况下该值必送;frontUrl字段填写扣款成功之后、收款方接收银联“前台收款通知”的地址(HTTP POST 方式);
frontFailUrl 字段填写扣款失败之后、收款方接收交易结果的地址(HTTP GET 方式);backUrl字段填写扣款成功之后、收款方接收银联“收款通知”的地址。
前台收款通知接口:
付款方扣款成功后,银联通过 App 的 WebView 向收款方发送“前台收款通知”,具体采用 HTTP POST方式,POST 数据内容根据接口定义采用 Key/Value 格式,URL 地址为收款方订单推送时指定的 frontUrl 字段。同时,银联会通过后台发送“收款通知”交易报文,这两种通知在功能上是等效的,收款方按照先到先处理的原则,对于后到的通知交易,收款方应直接返回成功,收款方也需具备重复接收银联通知的能力。 收款方应同时具备后台接入的能力,流程同收款方自发码的处理流程。收款方需要在“查询订单”应答报文中返回收款方机构代码(详见 4.1.4.3 章节)。
{
"code": "string",
"msg": "string",
"data": {
"userId": "string",
"atqTag": "string"
}
}