总结:
1、手机调用后台服务端接口,获取银联返回的流水号tn
银联支付是请求后台,后台向银联下单,返回交易流水号,然后返回给用户,用户通过这个交易流水号,向银联发送请求,获取订单信息,然后再填写银行卡和密码,然后银联在返回支付结果,然后再异步提交到服务器。
2.发送到银联的url是 acpsdk.appTransUrl=https://gateway.95516.com/gateway/api/appTransReq.do
//对请求参数进行签名并发送http post请求,接收同步应答报文
Map<String, String> reqData = AcpService.sign(contentData, AcpCommonUtils.encoding_UTF8); //报文中certId,signature的值是在signData方法中获取并自动赋值的,只要证书配置正确即可。
Map<String, String> rspData = AcpService.post(reqData, AcpCommonUtils.appRequestUrl, AcpCommonUtils.encoding_UTF8); //发送请求报文并接受同步应答(默认连接超时时间30秒,读取返回结果超时时间30秒);这里调用signData之后,调用submitUrl之前不能对submitFromData中的键值对做任何修改,如果修改会导致验签不通过
3.获取流水号
4.证书
5.发送报文格式参数
(外网地址)
图 1‑2
1.浏览并选购商品
用户通过手机客户端与商户系统交互浏览选购商品,客户端向商户系统发送购买商品请求数据。
2.生成并推送订单信息请求数据
商户系统根据选购商品请求数据生成订单数据集,把构造完成的订单信息数据集合按照移动支付系统的订单信息推送接口,通过商户后台提交(POST)的方式传递给移动支付系统。
3. 移动支付系统对请求数据进行处理
移动支付系统得到这些集合后,会先进行安全校验等验证,一系列验证通过后便会处理这次发送过来的数据请求。
4. 返回交易流水号
移动支付系统返回商户系统交易流水号应答。
5. 转发交易流水号
商户系统转发交易流水号至手机客户端。
6.调用支付控件,发起支付请求数据
手机客户端收到交易流水号等要素,调起支付控件,用户输入支付信息后,客户端按照移动支付系统的支付接口规则组装并发送支付请求数据至移动支付系统。
7.移动支付系统对请求数据进行处理
移动支付系统得到这些集合后,会先进行安全校验等验证,一系列验证通过后便会处理这次发送过来的数据请求。
8.返回支付结果
移动支付系统返回结果至手机客户端。
9. 返回支付结果
手机客户端发送前台支付结果通知(参数frontUrl)。
10.移动支付系统后台异步返回处理的结果数据
对于成功处理完成的交易,移动支付系统服务器主动发起通知,调用商户在请求时设定好的后台通知地址路径(参数backUrl), 把支付结果数据反馈给商户。
11.商户对获取的返回结果数据进行处理
商户在前台通知处理页面(参数frontUrl指定页面)或服务器后台通知页面(参数backUrl指定页面)获取移动支付返回的结果数据后,可以结合自身网站的业务逻辑进行数据处理(如:订单更新等操作)。以后台通知为准。若未收到后台通知,需要发起交易信息查询请求。
注意:商户后台接收到移动支付系统支付成功通知交易后,需返回全渠道系统后台确认已收到应答。
|
|
|
|