银联支付开发

简介: 最近在接入各种支付机构,鉴于各种产品业务需求不同,具体开发实现不尽相同,不讨论具体业务实现。银联官方商家技术服务网站提供了很多可接入产品,本文仅讨论以下几种收款产品:网关支付(和手机网页支付(WAP支付)其实一样)手机控件支付无跳转支付一、网关支付&WAP支付先讨论这两种支付方式,比较简单而且容易理解,这两种支付方式只需要我们将请求参数值设置好,签名,组装成HTML返回给前台界面[java:response.getWriter().write()]即可。

最近在接入各种支付机构,鉴于各种产品业务需求不同,具体开发实现不尽相同,不讨论具体业务实现。
银联官方商家技术服务网站提供了很多可接入产品,本文仅讨论以下几种收款产品:

一、网关支付&WAP支付

先讨论这两种支付方式,比较简单而且容易理解,这两种支付方式只需要我们将请求参数值设置好,签名,组装成HTML返回给前台界面[java:response.getWriter().write()]即可。
HTML报文示例:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<form id="pay_form" action="https://101.231.204.80:5000/gateway/api/frontTransReq.do" method="post">
<input type="hidden" name="txnType" id="txnType" value="01" />
<input type="hidden" name="frontUrl" id="frontUrl" value="http://127.0.0.1:8080/ACPSample_B2C/frontRcvResponse" />
<input type="hidden" name="channelType" id="channelType" value="07" />
<input type="hidden" name="currencyCode" id="currencyCode" value="156" />
<input type="hidden" name="merId" id="merId" value="777290058110048" />
<input type="hidden" name="txnSubType" id="txnSubType" value="01" />
<input type="hidden" name="txnAmt" id="txnAmt" value="10000" />
<input type="hidden" name="version" id="version" value="5.0.0" />
<input type="hidden" name="signMethod" id="signMethod" value="01" />
<input type="hidden" name="backUrl" id="backUrl" value="http://222.222.222.222:8080/ACPSample_B2C/BackRcvResponse" />
<input type="hidden" name="certId" id="certId" value="68759663125" />
<input type="hidden" name="encoding" id="encoding" value="UTF-8" />
<input type="hidden" name="bizType" id="bizType" value="000201" />
<input type="hidden" name="signature" id="signature" value="q75cUw1E90Z/3zoPLoaWwOsHoiLmw4PvD1xgUIapsxKY3tcQpHmI/Y/4oKsG3lli4DpU63EoZScTEZNjdOvorAd5+DTSmKNLECVSBxy7mRTfTVISX/jYuVuc87ogdro8GpT4sHaY0jwVjp1dWalOSQ/jfoYniAggUuhSgQtz/0dSH//R4GVa3sP22jJjHWeWUVFJi5bMNeYe57qqcdZ5Ga04rnKnGuIpIQC3I3GosKziRtRGjdo+OYFmbl28W3QwB5qohG1QIqPvwpDM6WUlVbStuEVBf/FwpZ8yuai8WXOU+GQ9kZYuRSoSDNrRR9/jmYqkwyJDEMtWsl9pehQ4Og==" />
<input type="hidden" name="orderId" id="orderId" value="20160303100902" />
<input type="hidden" name="txnTime" id="txnTime" value="20160303100902" />
<input type="hidden" name="accessType" id="accessType" value="0" />
</form>
<script type="text/javascript">document.all.pay_form.submit();</script>
</body>
</html>

不清楚的可以试试复制下上面的代码保存为.html格式的文档,然后用浏览器打开,即可跳转到银联页面,付款成功后银联会通过你请求参数中的backUrl通知你。

二、手机控件支付

手机控件支付更简单,不用组装报文,但是流程上与网页支付不同,需要先跟银联交互一次,拿到tn(银联受理订单号),然后客户端就可以调起银联手机控件进行支付了。

三、无跳转支付

介绍无跳转支付之前,需要先了解银联的两个概念:

  • 后台消费
  • 前台消费。

前台消费:通过浏览器提交请求到银联的消费。
后台消费:直接通过商户后台提交请求到银联完成支付,相对于前台消费,无需页面跳转。

无跳转支付就是后台支付,主要是为了方便用户完成交互过程(前提是用户银联卡已开通银联全渠道支付),用户选择银联卡/输入卡号后,向银联“获取短信”接口发送获取短信验证码请求,银联会将短信验证码发送到卡号(accNo)对应的绑定手机上,用户输入短信验证码后,后台将卡号(accNo)和短信验证码(smsCode)提交到银联,即可完成消费过程。

所以后台消费的整个过程可以理解为这样(假设卡已经开通了银联全渠道消费):
客户端/前台界面选择银行卡/输入卡号-->点击获取短信-->后台发送报文到银联获取短信验证码-->银联将短信验证码发送到卡号绑定的手机-->用户输入验证码-->点击“消费/购买”-->后台将包含卡号(accNo)和短信验证码(smsCode)的报文发送到银联-->消费完成。

```sequence
客户端->客户端: 选择卡/输入卡号
客户端->后台:请求短信验证码
后台->银联:调用发送短信接口
note right of 银联:发送验证码到\n卡号绑定的手机
note right of 客户端:用户输入验证码
客户端->后台:消费
后台->银联:发送消费报文\n包含accNo和smsCode
```
img_01a36255f47cee30d1e30d9b9c3c4a1b.png
以上代码在stackedit可以生成此图
目录
相关文章
|
XML 移动开发 API
微信支付开发(7) H5支付
关键字:微信支付 微信支付v3 H5支付 wap支付 prepay_id 作者:方倍工作室原文: http://www.cnblogs.com/txw1958/p/wxpayv3_h5.html    本文介绍微信支付下的H5支付实现流程。
3388 1
|
存储 API 对象存储
【 uniapp - 黑马优购 | 登录与支付(2)】如何实现三秒后跳转和微信支付
【 uniapp - 黑马优购 | 登录与支付(2)】如何实现三秒后跳转和微信支付
96 0
|
移动开发 前端开发 Android开发
前端微信支付开发H5支付(微信外)
前端微信支付开发H5支付(微信外)
434 0
前端微信支付开发H5支付(微信外)
|
移动开发 安全 小程序
微信支付最新V3版详细流程
微信支付最新V3版详细流程
243 0
|
测试技术 开发工具 开发者
银联支付,实现代码对接
和其他支付平台一样,根据不同的移动端银联也提供了相应的支付渠道,比如在线网关支付、云闪付APP支付(原手机支付控件)、企业网银支付(商户版)、手机网页支付(WAP支付)、二维码支付等。
363 0
银联支付,实现代码对接
|
XML 存储 小程序
微信小程序支付流程详解
微信小程序支付流程详解
813 0
微信小程序支付流程详解
|
Java PHP
支付宝手机网站接口开发指南
  1.接口说明   产品介绍     手机网站接口适用于商户在移动端网页应用中集成支付宝支付功能。     商家在网页中调用支付宝提供的网页支付接口调起支付宝客户端内的支付模块,商家网页会跳转到支付宝中用户完成支付,支付完后跳回到商家网页内,最后展示支付结果。
1157 11
|
Java PHP
支付宝一码多付接口开发指南
1.接口说明   接口介绍     该方案适用于通过一个二维码,可以使用多种第三方支付,常见的一码多付产品:收钱吧     使用场景流程,申请条件,产品费率点击【更多】查看   常见问题     Q:怎么判断自己的需求可以使用一码多付方案?     A:一般都是想使用一个固定的二维码,可以使用...
1419 0
|
移动开发 前端开发 Java
【微信支付】微信端的手机网页支付 开发流程
-----------------------------------------------------------------------------------------------1.微信 手机网页支付 流程图--------------------------------------...
2430 0