银联支付开发

简介: 最近在接入各种支付机构,鉴于各种产品业务需求不同,具体开发实现不尽相同,不讨论具体业务实现。银联官方商家技术服务网站提供了很多可接入产品,本文仅讨论以下几种收款产品:网关支付(和手机网页支付(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支付实现流程。
2848 0
|
新零售 人工智能 Oracle
多商户商城家政服务平台系统开发(开发功能)丨多商户商城家政服务系统开发(案例及源码)
 新零售是什么?新零售是通过投资建设门店、电子商务等营销手段,开放线上线下,以满足消费者的多元化需求。
|
测试技术 开发工具 开发者
银联支付,实现代码对接
和其他支付平台一样,根据不同的移动端银联也提供了相应的支付渠道,比如在线网关支付、云闪付APP支付(原手机支付控件)、企业网银支付(商户版)、手机网页支付(WAP支付)、二维码支付等。
271 0
银联支付,实现代码对接
|
Java PHP
支付宝一码多付接口开发指南
1.接口说明   接口介绍     该方案适用于通过一个二维码,可以使用多种第三方支付,常见的一码多付产品:收钱吧     使用场景流程,申请条件,产品费率点击【更多】查看   常见问题     Q:怎么判断自己的需求可以使用一码多付方案?     A:一般都是想使用一个固定的二维码,可以使用...
1326 0
|
Java PHP
支付宝手机网站接口开发指南
  1.接口说明   产品介绍     手机网站接口适用于商户在移动端网页应用中集成支付宝支付功能。     商家在网页中调用支付宝提供的网页支付接口调起支付宝客户端内的支付模块,商家网页会跳转到支付宝中用户完成支付,支付完后跳回到商家网页内,最后展示支付结果。
1041 0
支付宝卡包集成流程
该产品可以用于管理电子凭证的产品,该产品聚合来自各类生活服务的票据凭证,包括优惠券、折扣券、代金券、换购券、电影票、演出票、火车票、机票。 用户交易创建后,企业或者个人开发者根据交易外部订单号可以通过支付宝提供的开放接口,把卡券添加到支付宝卡包,用户可以通过支付宝钱包客户端,在卡包功能中查看并使用卡券。
838 0
|
移动开发 前端开发 Java
【微信支付】微信端的手机网页支付 开发流程
-----------------------------------------------------------------------------------------------1.微信 手机网页支付 流程图--------------------------------------...
2382 0
|
JavaScript 前端开发 NoSQL
银联支付接口+支付宝接口统一支付功能
这个demo发出来已经比较久了,后面发现陆续还有同学找到我,我这里说下现在的情况。 这个接口中的银联支付接口实际也是走的支付宝接口,不需要单独申请银联了。但是!支付宝的这个接口已经下架了,以前已经接入的此接口还可以照常使用,新接入的不能再使用银联接口。
8270 0
|
Android开发 iOS开发
移动APP 支付宝快捷支付开发流程
[代码] [Java]代码 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 说说开发的心得吧,之前也没接触过支付宝快捷支付,不扯蛋了进入主题。
995 0