dongfeng-pay/jhmerchant/views/api_doc/pay_doc.html

1614 lines
61 KiB
HTML
Raw Normal View History

2019-12-19 14:47:58 +08:00
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>对接文档</title>
<style>
body, ul, li {
margin: 0;
padding: 0;
font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;
list-style: none;
}
body {
/* overflow-y: hidden; */
/* overflow-x: hidden; */
}
header, footer {
background-color: white;
position: fixed;
z-index: 9;
width: 100%;
height: 40px;
font-size: 18px;
color: #333;
font-weight: bold;
text-align: center;
line-height: 40px;
}
header {
border-bottom: 1px solid #e3e3e3;
}
footer {
border-top: 1px solid #e3e3e3;
bottom: 0;
}
section {
padding: 40px 0;
overflow: auto;
}
nav {
border-right: 1px solid #e3e3e3;
color: #333;
}
nav li {
margin-top: 8px;
padding-left: 40px;
}
nav li:hover {
cursor: pointer;
}
article {
padding: 20px;
text-align: left;
overflow: auto;
}
section.default nav {
overflow: auto;
position: absolute;
top: 60px;
bottom: 60px;
width: 200px;
}
section.default nav li {
padding: 10px 20px;
}
section.default nav li.active {
background: #77d677;
}
section.default article {
padding-left: 220px;
}
section.flexModal {
/* overflow-y: scroll; */
display: flex;
}
section.flexModal nav {
width: 200px;
}
section.flexModal article {
flex: 1;
}
section.fixedLeft nav {
position: fixed;
top: 40px;
bottom: 40px;
}
section.fixedLeft article {
margin-left: 200px;
}
section.fixedLeft a {
list-style: none;
text-decoration: none;
}
code {
display: block;
height: 40px;
line-height: 40px;
font-size: 18px;
background-color: #F8F8F8;
border: 1px solid #e3e3e3;
padding-left: 20px;
margin-bottom: 10px;
}
th, td {
font-size: 14px;
height: 40px;
text-align: center;
vertical-align: middle;
}
table {
margin-top: 20px;
margin-bottom: 20px;
}
json {
display: block;
line-height: 20px;
font-size: 14px;
background-color: #F8F8F8;
border: 1px solid #e3e3e3;
padding-left: 20px;
margin-bottom: 10px;
}
/* table {
margin: auto auto;
} */
.divider {
border-bottom: 2px solid #e3e3e3;
margin-bottom: 20px;
}
</style>
</head>
<body>
<header>商户对接文档(所有字段均传字符串类型)</header>
<section class="flexModal fixedLeft">
<nav>
<ul>
<li><a href="#scan">扫码支付</a></li>
<li><a href="#h5">H5支付</a></li>
<li><a href="#syt">收银台支付</a></li>
<li><a href="#fast">快捷支付</a></li>
<li><a href="#pay-notify">支付回调</a></li>
<li><a href="#pay-query">支付结果查询</a></li>
<li><a href="#pay-status">支付状态</a></li>
<li><a href="#payfor">代付接口</a></li>
<li><a href="#payfor-query">代付结果查询</a></li>
<li><a href="#balance-query">余额查询</a></li>
<li><a href="#sign">签名与验签</a></li>
<li><a href="#bank-code">银行编码</a></li>
<li><a href="#question">常见问题</a></li>
</ul>
</nav>
<article id="article">
<div id="scan">
<h2>扫码支付</h2>
<p>1请求地址</p>
<code>http://localhost:10081/gateway/scan</code>
<p>2商户请求数据表单提交</p>
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<th width=40px>序号</th>
<th>字段</th>
<th>名称</th>
<th width=100px>长度</th>
<th>说明</th>
<th width=80px>是否必填</th>
</tr>
<tr>
<td>01</td>
<td>orderNo</td>
<td>商户唯一订单号</td>
<td>变长30</td>
<td>订单号码支持数字、英文字母、-、_、*、+、#,其他字符将不支持</td>
<td></td>
</tr>
<tr>
<td>02</td>
<td>productName</td>
<td>商品描述信息</td>
<td>变长64</td>
<td></td>
<td></td>
</tr>
<tr>
<td>03</td>
<td>orderPeriod</td>
<td>订单过期时间</td>
<td>变长4</td>
<td>订单过期时间,单位:小时</td>
<td></td>
</tr>
<tr>
<td>04</td>
<td>orderPrice</td>
<td>订单金额</td>
<td>变长13</td>
<td>是人民币且以元为单位例如1.001元0.011分</td>
<td></td>
</tr>
<tr>
<td>05</td>
<td>payWayCode</td>
<td>扫码类型</td>
<td>变长8</td>
<td>支付宝ALI_SCAN<BR/>微 信WEIXIN_SCAN<BR/>QQ钱包QQ_SCAN<br/>百度扫码BAIDU_SCAN<br/>银联扫码UNION_SCAN<br/>京东扫码JD_SCAN
</td>
<td></td>
</tr>
<tr>
<td>06</td>
<td>osType</td>
<td>支付设备系统类型</td>
<td>变长2</td>
<td>PC端0<br/>移动端1</td>
<td></td>
</tr>
<tr>
<td>07</td>
<td>notifyUrl</td>
<td>服务器异步通知页面路径</td>
<td>变长128</td>
<td>交易完成后,快付支付平台会按照此地址将交易结果以后台的方式发送到商户网站。<br/>在后端支付请求中notifyUrl为必填,否则无法将支付结果通知到商户网站。</td>
<td></td>
</tr>
<tr>
<td>07</td>
<td>returnUrl</td>
<td>支付成功后跳转地址</td>
<td>变长128</td>
<td>支付成功后,如果上游的系统允许商户跳转自带的成功页面<br/>不一定会按照填写的地址进行跳转</td>
<td></td>
</tr>
<tr>
<td>08</td>
<td>payKey</td>
<td>支付key</td>
<td>固定长32</td>
<td>商户支付标识</td>
<td></td>
</tr>
<tr>
<td>10</td>
<td>sign</td>
<td>签名</td>
<td>固定长32</td>
<td>参见《签名与验签》</td>
<td></td>
</tr>
</table>
<p>3响应数据列表JSON格式</p>
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<th width=40px>序号</th>
<th>字段</th>
<th width=120px>名称</th>
<th width=100px>长度</th>
<th>说明</th>
<th width=80px>是否必填</th>
</tr>
<tr>
<td>01</td>
<td>orderNo</td>
<td>商户唯一订单号</td>
<td>变长32</td>
<td>订单号码支持数字、英文字母、-、_、*、+、#,其他字符将不支持</td>
<td></td>
</tr>
<tr>
<td>02</td>
<td>orderPrice</td>
<td>订单金额</td>
<td>变长13</td>
<td>是人民币,且以元为单位<br/>例如1.001元0.011分</td>
<td></td>
</tr>
<tr>
<td>03</td>
<td>payKey</td>
<td>支付key</td>
<td>固定长32</td>
<td>商户支付标识</td>
<td></td>
</tr>
<tr>
<td>04</td>
<td>payURL</td>
<td>二维码URL</td>
<td>变长128</td>
<td>商户可以用改链接地址,渲染成适配的扫码页面</td>
<td></td>
</tr>
<tr>
<td>05</td>
<td>statusCode</td>
<td>状态码</td>
<td>固定长2</td>
<td>00订单生成成功<br/>其他值(失败)</td>
<td></td>
</tr>
<tr>
<td>06</td>
<td>msg</td>
<td>信息</td>
<td>无固定长度</td>
<td>一些附带说明</td>
<td></td>
</tr>
<tr>
<td>07</td>
<td>sign</td>
<td>签名</td>
<td>固定长32</td>
<td>参见《签名与验签》</td>
<td></td>
</tr>
</table>
<p>4成功样例</p>
<br>
{</br>
&nbsp;"orderNo": "1507966197960",</br>
&nbsp;"sign": "0D3F39874AF0B6F07C4AB5230FC7E55F",</br>
&nbsp;"orderPrice": "0.01",</br>
&nbsp;"payKey": "9ae9ef6d094d4de69bb5dc19abf48ec9",</br>
&nbsp;"payURL": "https://qr.alipay.com/bax04483swjy46gkbvms604e",</br>
&nbsp;"statusCode": "00",</br>
&nbsp;"msg":"请求成功"</br>
}</br>
</json>
<p>5失败样例</p>
<json>
{</br>
&nbsp;"payKey": "9ae9ef6d094d4de69bb5dc19abf48ec9",</br>
&nbsp;"statusCode": "01",</br>
&nbsp;"msg":"获取二维码失败"</br>
}</br>
</json>
</div>
<div class="divider">
</div>
<div id="h5">
<h2>H5支付</h2>
<p>1请求地址</p>
<code>http://localhost:10081/gateway/h5</code>
<p>2H5产品说明</p>
<p>H5应用产品都是在移动端使用用户点击支付按钮页面会自动拉起相应的APP。例如拉起微信进行支付、拉起支付宝、拉起QQ等。</p>
<p>3商户请求数据</p>
<table border=1 cellpadding="0" cellspacing="0">
<tr>
<th width=40px>序号</th>
<th>字段</th>
<th>名称</th>
<th width=100px>长度</th>
<th>说明</th>
<th width=80px>是否必填</th>
</tr>
<tr>
<td>01</td>
<td>orderNo</td>
<td>商户唯一订单号</td>
<td>变长30</td>
<td>订单号码支持数字、英文字母、-、_、*、+、#,其他字符将不支持</td>
<td></td>
</tr>
<tr>
<td>02</td>
<td>productName</td>
<td>商品描述信息</td>
<td>变长64</td>
<td></td>
<td></td>
</tr>
<tr>
<td>03</td>
<td>orderPeriod</td>
<td>订单过期时间</td>
<td>变长4</td>
<td>订单过期时间,单位:小时</td>
<td></td>
</tr>
<tr>
<td>04</td>
<td>orderPrice</td>
<td>付款金额</td>
<td>变长13</td>
<td>是人民币且以元为单位例如1.001元0.011分</td>
<td></td>
</tr>
<tr>
<td>05</td>
<td>payWayCode</td>
<td>支付类型</td>
<td>变长8</td>
<td>微信&emsp;H5 支付:&emsp;WEIXIN_H5 <br/>支付宝H5支付&emsp;ALI_WAP<br/>QQ&emsp;H5 支付:&emsp;QQ_H5 <br/>银联H5支付&emsp;UNION_H5
</td>
<td></td>
</tr>
<tr>
<td>06</td>
<td>osType</td>
<td>支付设备系统类型</td>
<td>变长2</td>
<td>PC端0<br/>移动端1</td>
<td></td>
</tr>
<tr>
<td>07</td>
<td>notifyUrl</td>
<td>服务器异步通知页面路径</td>
<td>变长128</td>
<td>交易完成后,快付支付平台会按照此地址将交易结果以后台的方式发送到商户网站。<br/>在后端支付请求中notify_url为必填,否则无法将支付结果通知到商户网站。</td>
<td></td>
</tr>
<tr>
<td>08</td>
<td>sceneType</td>
<td>场景类型</td>
<td>变长10</td>
<td>场景类型<br/>IOS:0<br/>Android:1<br/>Wap:2</td>
<td></td>
</tr>
<tr>
<td>09</td>
<td>appName</td>
<td>APP名称</td>
<td>变长128</td>
<td>场景类型sceneType=0、1时必填<br/>例如:王者荣耀</br>否则不填</td>
<td></td>
</tr>
<tr>
<td>10</td>
<td>bundleId</td>
<td>绑定ID</td>
<td>变长128</td>
<td>场景类型sceneType=0时必填<br/>例如com.tencent.wzryIOS</br>否则不填</td>
<td></td>
</tr>
<tr>
<td>11</td>
<td>packageName</td>
<td>包名</td>
<td>变长128</td>
<td>场景类型sceneType=1时必填<br/>例如com.tencent.tmgp.sgame</br>否则不填</td>
<td></td>
</tr>
<tr>
<td>12</td>
<td>wapUrl</td>
<td>WAP网站URL</td>
<td>变长128</td>
<td>场景类型sceneType=2时必填<br/>例如https://pay.qq.com</br>否则不填</td>
<td></td>
</tr>
<tr>
<td>14</td>
<td>payKey</td>
<td>支付key</td>
<td>固定长32</td>
<td>商户支付标识</td>
<td></td>
</tr>
<tr>
<td>16</td>
<td>sign</td>
<td>签名</td>
<td>固定长32</td>
<td>参见《签名与验签》</td>
<td></td>
</tr>
</table>
<p>4H5支付产品无数据返回。商户在提交数据后会自动拉起APP。</p>
</div>
<div id="syt">
<h2>收银台支付</h2>
<p>1请求地址</p>
<code>http://localhost:10081/gateway/syt</code>
<p>2产品说明</p>
<p>收银台是上游提供完整的用户交互界面,无需商户自己渲染交互页面。因此收银台没有参数返回。</p>
<p>3商户请求数据</p>
<table border=1 cellpadding="0" cellspacing="0">
<tr>
<th width=40px>序号</th>
<th>字段</th>
<th>名称</th>
<th width=120px>长度</th>
<th>说明</th>
<th width=80px>是否必填</th>
</tr>
<tr>
<td>01</td>
<td>orderNo</td>
<td>商户唯一订单号</td>
<td>变长30</td>
<td>订单号码支持数字、英文字母、-、_、*、+、#,其他字符将不支持</td>
<td></td>
</tr>
<tr>
<td>02</td>
<td>productName</td>
<td>商品描述信息</td>
<td>变长64</td>
<td></td>
<td></td>
</tr>
<tr>
<td>03</td>
<td>orderPeriod</td>
<td>订单过期时间</td>
<td>变长4</td>
<td>订单过期时间,单位:小时</td>
<td></td>
</tr>
<tr>
<td>04</td>
<td>orderPrice</td>
<td>付款金额</td>
<td>变长13</td>
<td>是人民币且以元为单位例如1.001元0.011分</td>
<td></td>
</tr>
<tr>
<td>05</td>
<td>payWayCode</td>
<td>支付类型</td>
<td>变长8</td>
<td>微信收银台WEIXIN_SYT<br/>QQ钱包收银台QQ_SYT<br/>银联收银台UNION_SYT<br/>支付宝收银台ALI_SYT</td>
<td></td>
</tr>
<tr>
<td>06</td>
<td>osType</td>
<td>支付设备系统类型</td>
<td>变长2</td>
<td>PC端0<br/>移动端1</td>
<td></td>
</tr>
<tr>
<td>07</td>
<td>notifyUrl</td>
<td>服务器异步通知页面路径</td>
<td>变长128</td>
<td>交易完成后,快付支付平台会按照此地址将交易结果以后台的方式发送到商户网站。<br/>在后端支付请求中notify_url为必填,否则无法将支付结果通知到商户网站。</td>
<td></td>
</tr>
<tr>
<td>08</td>
<td>payKey</td>
<td>支付key</td>
<td>固定长32</td>
<td>商户支付标识</td>
<td></td>
</tr>
<tr>
<td>10</td>
<td>sign</td>
<td>签名</td>
<td>固定长32</td>
<td>参见《签名与验签》</td>
<td></td>
</tr>
</table>
</div>
<div class="divider">
</div>
<div id="fast">
<h2>快捷支付</h2>
<p>1请求地址</p>
<code>http://localhost:10081/gateway/fast</code>
<p>2产品说明</p>
<p>快捷支付的用户交互页面,由上游提供,故此商户发送请求数据后,没有数据返回。</p>
<p>3商户请求数据</p>
<table border=1 cellpadding="0" cellspacing="0">
<tr>
<th width=40px>序号</th>
<th>字段</th>
<th width=200px>名称</th>
<th width=80px>长度</th>
<th>说明</th>
<th width=70px>是否必填</th>
</tr>
<tr>
<td>01</td>
<td>orderNo</td>
<td>商户唯一订单号</td>
<td>变长30</td>
<td>订单号码支持数字、英文字母、-、_、*、+、#,其他字符将不支持</td>
<td></td>
</tr>
<tr>
<td>02</td>
<td>productName</td>
<td>商品描述信息</td>
<td>变长64</td>
<td></td>
<td></td>
</tr>
<tr>
<td>03</td>
<td>orderPeriod</td>
<td>订单过期时间</td>
<td>变长4</td>
<td>订单过期时间,单位:小时</td>
<td></td>
</tr>
<tr>
<td>04</td>
<td>orderPrice</td>
<td>付款金额</td>
<td>变长13</td>
<td>是人民币且以元为单位例如1.001元0.011分</td>
<td></td>
</tr>
<tr>
<td>05</td>
<td>payWayCode</td>
<td>支付类型</td>
<td>变长8</td>
<td>快捷支付SCAN_FAST</td>
<td></td>
</tr>
<tr>
<td>06</td>
<td>osType</td>
<td>支付设备系统类型</td>
<td>变长2</td>
<td>PC端0<br/>移动端1</td>
<td></td>
</tr>
<tr>
<td>07</td>
<td>notifyUrl</td>
<td>服务器异步通知页面路径</td>
<td>变长128</td>
<td>交易完成后,快付支付平台会按照此地址将交易结果以后台的方式发送到商户网站。<br/>在后端支付请求中notify_url为必填,否则无法将支付结果通知到商户网站。</td>
<td></td>
</tr>
<tr>
<td>08</td>
<td>returnUrl</td>
<td>页面跳转同步通知页面路径</td>
<td>变长128</td>
<td>
交易完成后快付支付平台会按照此地址将用户的交易结果页面重定向到商户网站。为保证商户能收到交易的结果则必须至少提交ret_urlnotify_url其中之一,前端支付请求必须传递returnUrl否则无法正常返回商户网站
</td>
<td></td>
</tr>
<tr>
<td>09</td>
<td>payKey</td>
<td>支付key</td>
<td>固定长32</td>
<td>商户支付标识</td>
<td></td>
</tr>
<tr>
<td>10</td>
<td>bankName</td>
<td>银行编号</td>
<td>固定长10</td>
<td>详细参见:附录</td>
<td></td>
</tr>
<tr>
<td>11</td>
<td>payType</td>
<td>支付卡种</td>
<td>固定长2</td>
<td>借记卡01<br/>贷记卡02<br/>暂时只支持借记卡</td>
<td></td>
</tr>
<tr>
<td>12</td>
<td>certificateNo</td>
<td>身份证</td>
<td>变长20</td>
<td>开户人身份证</td>
<td></td>
</tr>
<tr>
<td>12</td>
<td>accountNo</td>
<td>银行卡号</td>
<td>变长20</td>
<td>银行卡的卡号</td>
<td></td>
</tr>
<tr>
<td>12</td>
<td>accountName</td>
<td>姓名</td>
<td>变长20</td>
<td>持卡者姓名</td>
<td></td>
</tr>
<tr>
<td>12</td>
<td>mobileNo</td>
<td>手机号码</td>
<td>变长20</td>
<td>跟银行卡绑定</td>
<td></td>
</tr>
<tr>
<td>14</td>
<td>sign</td>
<td>签名</td>
<td>固定长32</td>
<td>参见《签名与验签》</td>
<td></td>
</tr>
</table>
</div>
<div class="divider">
</div>
<div id="pay-notify">
<h2>支付回调post方式</h2>
<p>1说明</p>
<p>客户支付成功后平台向商户发起异步通知通知地址为下单请求中传递给平台的notifyUrl地址(建议在接收到回调后验》证签名和判断状态)。
商户程序处理完业务逻辑后需要返回success到平台平台就不会再发起通知了 否则会按照这个规律发起通知</p>
<p>2回调机制</p>
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<th align="center">第N次</th>
<th>间隔时间(单位分钟)</th>
</tr>
<tr>
<td>第1次</td>
<td align="center">0min</td>
</tr>
<tr>
<td>第2次</td>
<td align="center">2min</td>
</tr>
<tr>
<td>第3次</td>
<td align="center">5min</td>
</tr>
<tr>
<td>第4次</td>
<td align="center">15min</td>
</tr>
<tr>
<td>第5次</td>
<td align="center">30min</td>
</tr>
</table>
<p>3商户回调参数</p>
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<th width=40px>序号</th>
<th>字段</th>
<th>名称</th>
<th width=120px>长度</th>
<th>说明</th>
<th align="center" width=80px>是否必填</th>
</tr>
<tr>
<td>01</td>
<td>orderNo</td>
<td align="center">商户唯一订单号</td>
<td align="center">变长32</td>
<td align="center">订单号码支持数字、英文字母、-、_、*、+、#,其他字符将不支持</td>
<td align="center"></td>
</tr>
<tr>
<td>02</td>
<td>orderPrice</td>
<td align="center">订单金额</td>
<td align="center">变长13</td>
<td align="center">是人民币且以元为单位例如1.001元0.011分</td>
<td align="center"></td>
</tr>
{{/*<tr>
<td>02</td><td>showPrice</td><td align="center">展示付款金额</td><td align="center">变长13</td><td align="center">是人民币,且以元为单位。展示在用户面前的金额。</td><td align="center"></td>
</tr>*/}}
<tr>
<td>02</td>
<td>factPrice</td>
<td align="center">实际付款金额</td>
<td align="center">变长13</td>
<td align="center">是人民币且以元为单位例如1.001元0.011分</td>
<td align="center"></td>
</tr>
<tr>
<td>03</td>
<td>orderTime</td>
<td align="center">商户订单日期</td>
<td align="center">定长14</td>
<td align="center">商户生成订单的日期格式yyyyMMddHHmmss</td>
<td align="center"></td>
</tr>
<tr>
<td>04</td>
<td>trxNo</td>
<td align="center">平台交易流水号</td>
<td align="center">固定长20</td>
<td></td>
<td align="center"></td>
</tr>
<tr>
<td>05</td>
<td>statusCode</td>
<td align="center">状态码</td>
<td align="center">固定长2</td>
<td align="center">00查询操作成功<br/>其他值(失败)</td>
<td align="center"></td>
</tr>
<tr>
<td>06</td>
<td>tradeStatus</td>
<td align="center">交易状态</td>
<td align="center">变长 20</td>
<td align="center">详见《交易状态说明》</td>
<td align="center"></td>
</tr>
<tr>
<td>08</td>
<td>payKey</td>
<td align="center">支付key</td>
<td align="center">固定长32</td>
<td align="center">商户支付标识</td>
<td align="center"></td>
</tr>
<tr>
<td>09</td>
<td>sign</td>
<td align="center">签名</td>
<td align="center">固定长32</td>
<td align="center">参见《签名与验签》</td>
<td align="center"></td>
</tr>
</table>
</div>
<div class="divider">
</div>
<div id="pay-query">
<h2>支付结果查询</h2>
<p>1请求地址</p>
<code>http://47.101.3.15/gateway/order/query</code>
<p>2商户请求数据</p>
<table border="1" cellpadding="0" cellspacing="0" width="100%">
<tr>
<th width=40px>序号</th>
<th>字段</th>
<th>名称</th>
<th>长度</th>
<th>说明</th>
<th align="center" width=80px>是否必填</th>
</tr>
<tr>
<td>01</td>
<td>orderNo</td>
<td align="center">商户唯一订单号</td>
<td align="center">变长32</td>
<td align="center">订单号码支持数字、英文字母、-、_、*、+、#,其他字符将不支持</td>
<td align="center"></td>
</tr>
<tr>
<td>02</td>
<td>payKey</td>
<td align="center">支付key</td>
<td align="center">固定长32</td>
<td align="center">商户支付标识</td>
<td align="center"></td>
</tr>
<tr>
<td>03</td>
<td>sign</td>
<td align="center">签名</td>
<td align="center">固定长32</td>
<td align="center">参见《签名与验签》</td>
<td align="center"></td>
</tr>
</table>
<p>3:响应数据</p>
<table border="1" cellpadding="0" cellspacing="0" width="100%">
<tr>
<th width=40px>序号</th>
<th>字段</th>
<th>名称</th>
<th width=120px>长度</th>
<th>说明</th>
<th align="center" width=80px>是否必填</th>
</tr>
<tr>
<td>01</td>
<td>orderNo</td>
<td align="center">商户唯一订单号</td>
<td align="center">变长32</td>
<td align="center">订单号码支持数字、英文字母、-、_、*、+、#,其他字符将不支持</td>
<td align="center"></td>
</tr>
<tr>
<td>02</td>
<td>orderPrice</td>
<td align="center">订单金额</td>
<td align="center">变长13</td>
<td align="center">是人民币且以元为单位例如1.001元0.011分</td>
<td align="center"></td>
</tr>
<tr>
<td>02</td>
<td>factPrice</td>
<td align="center">实际付款金额</td>
<td align="center">变长13</td>
<td align="center">是人民币,且以元为单位。</td>
<td align="center"></td>
</tr>
<tr>
<td>03</td>
<td>orderTime</td>
<td align="center">商户订单日期</td>
<td align="center">定长14</td>
<td align="center">商户生成订单的日期格式yyyyMMddHHmmss</td>
<td align="center"></td>
</tr>
<tr>
<td>04</td>
<td>trxNo</td>
<td align="center">平台交易流水号</td>
<td align="center">固定长20</td>
<td align="center"></td>
<td align="center"></td>
</tr>
<tr>
<td>05</td>
<td>statusCode</td>
<td align="center">状态码</td>
<td align="center">固定长2</td>
<td align="center">00查询操作成功<br/>其他值(失败)</td>
<td align="center"></td>
</tr>
<tr>
<td>06</td>
<td>tradeStatus</td>
<td align="center">交易状态</td>
<td align="center">变长 20</td>
<td align="center">详见《交易状态说明》</td>
<td align="center"></td>
</tr>
<tr>
<td>08</td>
<td>payKey</td>
<td align="center">支付key</td>
<td align="center">固定长32</td>
<td align="center">商户支付标识</td>
<td align="center"></td>
</tr>
<tr>
<td>09</td>
<td>sign</td>
<td align="center">签名</td>
<td align="center">固定长32</td>
<td align="center">参见《签名与验签》</td>
<td align="center"></td>
</tr>
</table>
<p>4订单查询成功样例</p>
<br>
{</br>
&nbsp;&nbsp;"orderNo": "1508055453731",</br>
&nbsp;&nbsp;"orderTime": "20171015162249",</br>
&nbsp;&nbsp;"trxNo": "77772017101510000722",</br>
&nbsp;&nbsp;"tradeStatus": "wait",</br>
&nbsp;&nbsp;"sign": "8E3DC89AB06B0E6361D7D2CDF164456C",</br>
&nbsp;&nbsp;"payKey": "9ae9ef6d094d4de69bb5dc19abf48ec9",</br>
&nbsp;&nbsp;"orderPrice": "0.01",</br>
&nbsp;&nbsp;"factPrice": "0.01",</br>
&nbsp;&nbsp;"statusCode": "00"</br>
}</br>
</json>
<p>5订单查询失败样例</p>
<json>
{</br>
&nbsp;&nbsp;"payKey": "9ae9ef6d094d4de69bb5dc19abf48ec9",</br>
&nbsp;&nbsp;"statusCode": "01",</br>
&nbsp;&nbsp;"msg": "商户不存在"</br>
}</br>
</json>
</div>
<div class="divider">
</div>
<div id="pay-status">
<h2>支付状态说明</h2>
<table border=1 cellpadding="0" cellspacing="0" width="100%">
<tr>
<th align="center">序号</th>
<th align="center">枚举名称</th>
<th align="center">说明</th>
<th align="center">备注</th>
</tr>
<tr>
<td align="center">01</td>
<td align="center">wait</td>
<td align="center">交易创建,等待买家付款</td>
<td></td>
</tr>
<tr>
<td align="center">02</td>
<td align="center">success</td>
<td align="center">交易成功,不能再次进行交易</td>
<td></td>
</tr>
<tr>
<td align="center">03</td>
<td align="center">cancel</td>
<td align="center">交易撤销</td>
<td></td>
</tr>
<tr>
<td align="center">04</td>
<td align="center">fail</td>
<td align="center">交易失败</td>
<td>失败可能风控引起</td>
</tr>
</table>
</div>
<div class="divider">
</div>
<div id="payfor">
<h2>代付接口</h2>
<p>1请求地址</p>
<code>http://47.101.3.15/gateway/payfor</code>
<p>2商户请求数据</p>
<table border=1 cellpadding="0" cellspacing="0">
<tr>
<th>序号</th>
<th>字段</th>
<th>名称</th>
<th>长度</th>
<th>说明</th>
<th>是否必填</th>
</tr>
<tr>
<td>01</td>
<td>merchantKey</td>
<td>商户key</td>
<td>变长32</td>
<td>商户key,可找商务获取</td>
<td></td>
</tr>
<tr>
<td>02</td>
<td>realname</td>
<td>持卡人姓名</td>
<td>变长60</td>
<td>持卡人真实姓名</td>
<td></td>
</tr>
<tr>
<td>03</td>
<td>cardNo</td>
<td>卡号</td>
<td>变长30</td>
<td>代付卡卡号</td>
<td></td>
</tr>
<tr>
<td>04</td>
<td>bankCode</td>
<td>银行编码</td>
<td>变长10</td>
<td>银行编码,文档最后附有</td>
<td></td>
</tr>
<tr>
<td>05</td>
<td>accType</td>
<td>开户账号类型</td>
<td>固定长2</td>
<td>01 -- 对公帐户<br/>02 --对私借记卡</td>
<td></td>
</tr>
<tr>
<td>06</td>
<td>province</td>
<td>开户行所在省份</td>
<td>变长14</td>
<td>开户行所在省份</td>
<td></td>
</tr>
<tr>
<td>07</td>
<td>city</td>
<td>开户行所在城市</td>
<td>变长30</td>
<td>开户行所在城市</td>
<td></td>
</tr>
<tr>
<td>08</td>
<td>bankAccountAddress</td>
<td>开户行全称</td>
<td>变长32</td>
<td>开户行全称</td>
<td></td>
</tr>
<tr>
<td>09</td>
<td>amount</td>
<td>代付金额</td>
<td>变长12</td>
<td>订单金额,以元为单位(保留2位小数 100.00)</td>
<td></td>
</tr>
<tr>
<td>10</td>
<td>moblieNo</td>
<td>银行预留手机号码</td>
<td>变长15</td>
<td>银行预留手机号码</td>
<td></td>
</tr>
<tr>
<td>11</td>
<td>merchantOrderId</td>
<td>商户订单号</td>
<td>变长32</td>
<td>商户订单号</td>
<td></td>
</tr>
<tr>
<td>12</td>
<td>sign</td>
<td>签名</td>
<td>固定长32</td>
<td>使用商户key对报文签名后的值</td>
<td></td>
</tr>
</table>
<p>3响应数据</p>
<table border=1 cellpadding="0" cellspacing="0">
<tr>
<th>序号</th>
<th>字段</th>
<th>名称</th>
<th>长度</th>
<th>说明</th>
<th>是否必填</th>
</tr>
<tr>
<td>01</td>
<td>resultCode</td>
<td>返回码</td>
<td>固定长2</td>
<td>00 -- 受理成功<br/>01 -- 其它</td>
<td></td>
</tr>
<tr>
<td>02</td>
<td>resultMsg</td>
<td>商户订单号</td>
<td>变长256</td>
<td>返回码信息提示</td>
<td></td>
</tr>
<tr>
<td>03</td>
<td>merchantOrderId</td>
<td>卡号</td>
<td>变长32</td>
<td>商户系统的订单号</td>
<td>resultCode为00时必填<br/>其余可不填</td>
</tr>
<tr>
<td>04</td>
<td>settAmount</td>
<td>代付金额</td>
<td>变长10</td>
<td>代付金额 ,以元为单位</td>
<td>resultCode为00时必填<br/>其余可不填</td>
</tr>
<tr>
<td>08</td>
<td>sign</td>
<td>签名</td>
<td>固定长32</td>
<td>使用商户key对报文签名后的值</td>
<td></td>
</tr>
</table>
<p>4成功返回样例</p>
<json>
{</br>
&nbsp;&nbsp;"settAmount":"15,</br>
&nbsp;&nbsp;"resultCode":"00",</br>
&nbsp;&nbsp;"sign":"2509743B7C6A12011A7BAD16F7A78F8F",</br>
&nbsp;&nbsp;"merchantOrderId":"1522654509571",</br>
&nbsp;&nbsp;"resultMsg":"代付订单已生成"</br>
}</br>
</json>
<p>5失败样例</p>
<json>
{ </br>
&nbsp;&nbsp;"resultCode":"01",</br>
&nbsp;&nbsp;"resultMsg":"accType类型错误"</br>
}</br>
</json>
</div>
<div id="payfor-query">
<h2>代付结果查询</h2>
<p>1:代付查询地址</p>
<code>http://47.101.3.15/gateway/payfor/query</code>
<p>2商户请求数据</p>
<table border=1 cellpadding="0" cellspacing="0">
<tr>
<th>序号</th>
<th>字段</th>
<th>名称</th>
<th>长度</th>
<th>说明</th>
<th>是否必填</th>
</tr>
<tr>
<td>01</td>
<td>merchantKey</td>
<td>商户key</td>
<td>变长32</td>
<td>商户key,可找商务获取</td>
<td></td>
</tr>
<tr>
<td>02</td>
<td>timestamp</td>
<td>时间戳</td>
<td>固定长10</td>
<td>unix时间戳</td>
<td></td>
</tr>
<tr>
<td>03</td>
<td>merchantOrderId</td>
<td>商户订单号</td>
<td>变长32</td>
<td>商户订单号</td>
<td></td>
</tr>
<tr>
<td>04</td>
<td>sign</td>
<td>签名</td>
<td>固定长32</td>
<td>使用商户key对报文签名后的值</td>
<td></td>
</tr>
</table>
<p>3响应数据JSON格式</p>
<table border=1 cellpadding="0" cellspacing="0">
<tr>
<th>序号</th>
<th>字段</th>
<th>名称</th>
<th>长度</th>
<th>说明</th>
<th>是否必填</th>
</tr>
<tr>
<td>02</td>
<td>resultMsg</td>
<td>商户订单号</td>
<td>变长256</td>
<td>返回码信息提示</td>
<td></td>
</tr>
<tr>
<td>03</td>
<td>merchantOrderId</td>
<td>卡号</td>
<td>变长32</td>
<td>商户系统的订单号</td>
<td></td>
</tr>
<tr>
<td>04</td>
<td>settAmount</td>
<td>代付金额</td>
<td>变长32</td>
<td>代付金额 ,以元为单位</td>
<td>settStatus为 00 时,必须</td>
</tr>
<tr>
<td>06</td>
<td>settFee</td>
<td>手续费</td>
<td>变长10</td>
<td>代付手续费</td>
<td>settStatus为 00 时,必须</td>
</tr>
<tr>
<td>07</td>
<td>settStatus</td>
<td>代付结果</td>
<td>变长30</td>
<td>00 -- 打款成功<br/>01-- 打款失败<br/>02 -- 打款中<br/>03 -- 查询失败</td>
<td></td>
</tr>
<tr>
<td>08</td>
<td>sign</td>
<td>签名</td>
<td>变长30</td>
<td>使用商户key对报文签名后的值</td>
<td></td>
</tr>
</table>
<p>4成功样例</p>
<json>
{</br>
&nbsp;&nbsp;"resultMsg":"打款成功",</br>
&nbsp;&nbsp;"merchantOrderId":"123456",</br>
&nbsp;&nbsp;"settAmount":"10000.00",</br>
&nbsp;&nbsp;"settFee":"2.00",</br>
&nbsp;&nbsp;"settStatus":"00",</br>
&nbsp;&nbsp;"sign":"70387FEBC8487EFFBE93511299BB30A7"</br>
}</br>
</json>
<p>5失败样例</p>
<json>
{</br>
&nbsp;&nbsp;"resultMsg":"查询失败",</br>
&nbsp;&nbsp;"settStatus":"03",</br>
&nbsp;&nbsp;"merchantOrderId":"123456",</br>
&nbsp;&nbsp;"sign":"70387FEBC8487EFFBE93511299BB30A7"</br>
}</br>
</json>
</div>
<div class="divider">
</div>
<div id="balance-query">
<h2>账户余额查询</h2>
<p>请求地址</p>
<code>http://47.101.3.15/gateway/balance</code>
<p>商户请求数据</p>
<table border=1 cellpadding="0" cellspacing="0">
<tr>
<th>序号</th>
<th>字段</th>
<th>名称</th>
<th>长度</th>
<th>说明</th>
<th>是否必填</th>
</tr>
<tr>
<td>01</td>
<td>merchantKey</td>
<td>商户key</td>
<td>变长32</td>
<td>商户key,可找商务获取</td>
<td></td>
</tr>
<tr>
<td>02</td>
<td>timestamp</td>
<td>时间戳</td>
<td>固定长10</td>
<td>unix时间戳</td>
<td></td>
</tr>
<tr>
<td>04</td>
<td>sign</td>
<td>签名</td>
<td>固定长32</td>
<td>使用商户key对报文签名后的值</td>
<td></td>
</tr>
</table>
<p>响应数据</p>
<table border=1 cellpadding="0" cellspacing="0">
<tr>
<th>序号</th>
<th>字段</th>
<th>名称</th>
<th>长度</th>
<th>说明</th>
<th>是否必填</th>
</tr>
<tr>
<td>01</td>
<td>resultCode</td>
<td>返回码</td>
<td>固定长2</td>
<td>00 -- 成功<br/>其它 -- 失败</td>
<td></td>
</tr>
<tr>
<td>02</td>
<td>balance</td>
<td>账户余额</td>
<td>变长12</td>
<td>账户总余额</td>
<td></td>
</tr>
<tr>
<td>03</td>
<td>availableAmount</td>
<td>可用余额</td>
<td>变长12</td>
<td>账户可结算余额</td>
<td>resultCode为00时必填<br/>其余可不填</td>
</tr>
<tr>
<td>05</td>
<td>freezeAmount</td>
<td>冻结金额</td>
<td>变长12</td>
<td>账户可结算余额</td>
<td>resultCode为00时必填<br/>其余可不填</td>
</tr>
<tr>
<td>06</td>
<td>waitAmount</td>
<td>待结算金额</td>
<td>变长12</td>
<td>账户可结算余额</td>
<td>resultCode为00时必填<br/>其余可不填</td>
</tr>
<tr>
<td>07</td>
<td>loanAmount</td>
<td>押款金额</td>
<td>变长12</td>
<td>账户可结算余额</td>
<td>resultCode为00时必填<br/>其余可不填</td>
</tr>
<tr>
<td>08</td>
<td>payforAmount</td>
<td>在出款金额</td>
<td>变长12</td>
<td>账户可结算余额</td>
<td>resultCode为00时必填<br/>其余可不填</td>
</tr>
<tr>
<td>09</td>
<td>resultMsg</td>
<td>返回码描述信息</td>
<td>变长256</td>
<td>返回码信息提示</td>
<td>resultCode为00时必填<br/>其余可不填</td>
</tr>
<tr>
<td>10</td>
<td>sign</td>
<td>签名</td>
<td>变长30</td>
<td>使用商户key对报文签名后的值</td>
<td>resultCode为00时必填<br/>其余可不填</td>
</tr>
</table>
<p>成功样例</p>
<json>
{</br>
&nbsp;&nbsp;"resultCode":"00",</br>
&nbsp;&nbsp;"balance":"25000.00",</br>
&nbsp;&nbsp;"availableAmount":"5000.00",</br>
&nbsp;&nbsp;"freezeAmount":"5000.00",</br>
&nbsp;&nbsp;"waitAmount":"5000.00",</br>
&nbsp;&nbsp;"loanAmount":"5000.00",</br>
&nbsp;&nbsp;"payforAmount":"5000.00",</br>
&nbsp;&nbsp;"resultMsg":"查询成功",</br>
&nbsp;&nbsp;"sign":"70387FEBC8487EFFBE93511299BB30A7"</br>
}</br>
</json>
<p>失败样例</p>
<json>
{</br>
&nbsp;&nbsp;"resultCode":"-1",</br>
&nbsp;&nbsp;"resultMsg":"查询失败"</br>
}</br>
</json>
</div>
</div>
<div id="sign">
<h2>签名与验签</h2>
<p>1签名算法</p>
<p>在请求参数列表中除去sign参数外其它必填的字段均参加签名。</p>
<p>参与签名的键值对根据key值按照acsii码从小到大进行排序每个键值对之间用"&"进行连接。</p>
<p>在拼接完得到的字符串尾部,再将支付密钥(paySecret)拼接上。</p>
<p>最后将得到的待签名字符串进行MD5加密将字母全部转为大写。</p>
<p>2格式样例需要签名的字符串</p>
<code>
waitSign: a=xxxxxxx&b=xxxxxxx&c=xxxxx&d=xxxxxx&e=xxxxx&f=xxxxxx&paySecret=xxxx
</code>
<p>3得到的签名字符串</p>
<code>
sign=70387FEBC8487EFFBE93511299BB30A7
</code>
</div>
<div class="divider">
</div>
<div id="bank-code">
<h2>银行编码</h2>
<table border=1 cellpadding="0" cellspacing="0">
<tr>
<th>支付银行</th>
<th>描述</th>
</tr>
<tr>
<td>ICBC</td>
<td>中国工商银行</td>
</tr>
<tr>
<td>ABC</td>
<td>中国农业银行</td>
</tr>
<tr>
<td>CCB</td>
<td>中国建设银行</td>
</tr>
<tr>
<td>BOC</td>
<td>中国银行</td>
</tr>
<tr>
<td>COMM</td>
<td>交通银行</td>
</tr>
<tr>
<td>PSBC</td>
<td>中国邮政储蓄银行</td>
</tr>
<tr>
<td>CMB</td>
<td>招商银行</td>
</tr>
<tr>
<td>CMBC</td>
<td>民生银行</td>
</tr>
<tr>
<td>SPDB</td>
<td>上海浦东发展银行</td>
</tr>
<tr>
<td>CITIC</td>
<td>中信银行</td>
</tr>
<tr>
<td>HXB</td>
<td>华夏银行</td>
</tr>
<tr>
<td>CIB</td>
<td>兴业银行</td>
</tr>
<tr>
<td>PINGANBANK</td>
<td>平安银行</td>
</tr>
<tr>
<td>CZB</td>
<td>浙商银行</td>
</tr>
<tr>
<td>HFB</td>
<td>恒丰银行</td>
</tr>
<tr>
<td>GDB</td>
<td>广发银行</td>
</tr>
<tr>
<td>CEB</td>
<td>光大银行</td>
</tr>
<tr>
<td>CBHB</td>
<td>渤海银行</td>
</tr>
<tr>
<td>CSCB</td>
<td>长沙银行</td>
</tr>
</table>
</div>
<div class="divider">
</div>
<div id="question">
<h2>常见问题解答</h2>
<h4>1支付key和商户密钥怎么获取</h4>
<p>答:这两个字段在开户成功后,相关运营人员会将两者发送给商户。请求商户妥善保管。</p>
<h4>2请求协议是支持get还是post</h4>
<p>同时支持get和post。</p>
</div>
</article>
</section>
<footer>聚合支付产品技术交流</footer>
</body>
</html>