123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628 |
- <html xmlns:v="urn:schemas-microsoft-com:vml"
- xmlns:o="urn:schemas-microsoft-com:office:office"
- xmlns:w="urn:schemas-microsoft-com:office:word"
- xmlns="http://www.w3.org/TR/REC-html40">
- <head><meta http-equiv=Content-Type content="text/html; charset=utf-8">
- <style type="text/css">
- table
- {
- border-collapse: collapse;
- border: none;
- width: 100%;
- }
- td,tr
- {
- border: solid #CCC 1px;
- padding:3px;
- font-size:9pt;
- }
- .codestyle{
- word-break: break-all;
- mso-highlight:rgb(252, 252, 252);
- padding-left: 5px; background-color: rgb(252, 252, 252); border: 1px solid rgb(225, 225, 232);
- }
- img {
- width:100;
- }
- </style>
- <meta name=ProgId content=Word.Document>
- <meta name=Generator content="Microsoft Word 11">
- <meta name=Originator content="Microsoft Word 11">
- <xml><w:WordDocument><w:View>Print</w:View></xml></head>
- <body><h1>1、签名规则</h1><div style="margin-left:20px;"><blockquote>
- <p>签名生成的通用步骤如下</p>
- </blockquote>
- <p><strong>第一步:</strong>设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。<br/><br/>
- 特别注意以下重要规则:<br/><br/>
- ◆ 参数名ASCII码从小到大排序(字典序);<br/><br/>
- ◆ 如果参数的值为空不参与签名;<br/><br/>
- ◆ 参数名区分大小写;<br/><br/>
- ◆ 验证调用返回或系统主动通知签名时,传送的sign参数不参与签名,将生成的签名与该sign值作校验。<br/><br/>
- <p><strong>第二步:</strong>在stringA最后拼接上key得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。 </p>
- <p>如请求系统参数如下:</p>
- <table width='100%' class='codestyle'><pre><code> Map signMap = new HashMap<>();
- signMap.put("appId", "test01");
- signMap.put("mobile", "18698798721");
- signMap.put("productNo", '2110000050000');
- signMap.put("amount", 50);
- signMap.put("orderNo", "12345");
- signMap.put("notifyUrl", "xxxxxx");
- </code></pre></table>
- <p><code>待签名值</code>:amount=50&appId=test01&mobile=18698798721&<span>notifyUrl</span>=xxxxxx&orderNo=12345&productNo=2110000050000&key=EWEFD123RGSRETYDFNGFGFGSHDFGH</p><br/>
- <code>签名结果</code>:7864F84DE809CE3FA0C080FB516FD991<br/>
- ##### 备注
- appId 和 key请到代理商户后台 “账户管理 - 账户信息” 中查看</div><h1>2、充值提交</h1><div style="margin-left:20px;"><h5>简要描述</h5>
- <ul>
- <li>话费入单接口,接收话费商推送过来的话单。</li>
- </ul>
- <h5>请求URL</h5>
- <ul>
- <li><code>http://xx.com/gateway/recharge</code></li>
- </ul>
- <h5>请求方式</h5>
- <ul>
- <li>POST </li>
- </ul>
- <h5>参数</h5>
- <table>
- <thead><tr style='background-color: rgb(0, 136, 204); color: rgb(255, 255, 255);'>
- <th style="text-align: left;">参数名</th>
- <th style="text-align: left;">必选</th>
- <th style="text-align: left;">类型</th>
- <th>说明</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td style="text-align: left;">appId</td>
- <td style="text-align: left;">是</td>
- <td style="text-align: left;">string</td>
- <td>appId,可后台查看</td>
- </tr>
- <tr>
- <td style="text-align: left;">mobile</td>
- <td style="text-align: left;">是</td>
- <td style="text-align: left;">string</td>
- <td>长度11</td>
- </tr>
- <tr>
- <td style="text-align: left;">productNo</td>
- <td style="text-align: left;">是</td>
- <td style="text-align: left;">string</td>
- <td>具体值看下面商品NO</td>
- </tr>
- <tr>
- <td style="text-align: left;">amount</td>
- <td style="text-align: left;">是</td>
- <td style="text-align: left;">string</td>
- <td>金额元</td>
- </tr>
- <tr>
- <td style="text-align: left;">orderNo</td>
- <td style="text-align: left;">是</td>
- <td style="text-align: left;">string</td>
- <td>订单号,长度最大30位</td>
- </tr>
- <tr>
- <td style="text-align: left;">notifyUrl</td>
- <td style="text-align: left;">是</td>
- <td style="text-align: left;">string</td>
- <td>异步通知地址,长度最大300位</td>
- </tr>
- <tr>
- <td style="text-align: left;">sign</td>
- <td style="text-align: left;">是</td>
- <td style="text-align: left;">string</td>
- <td>见签名规则</td>
- </tr>
- </tbody>
- </table>
- <h5>返回示例</h5>
- <table width='100%' class='codestyle'><pre><code>{
- "code": 200,
- "msg": "",
- "data": {
- "moblie": "18676709241",
- "orderNo": "22222222222",
- "tradeNo": "2020092817541471344"
- }
- }</code></pre></table>
- <h5>返回参数说明</h5>
- <table>
- <thead><tr style='background-color: rgb(0, 136, 204); color: rgb(255, 255, 255);'>
- <th style="text-align: left;">参数名</th>
- <th style="text-align: left;">类型</th>
- <th>说明</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td style="text-align: left;">code</td>
- <td style="text-align: left;">int</td>
- <td>返回码</td>
- </tr>
- <tr>
- <td style="text-align: left;">msg</td>
- <td style="text-align: left;">String</td>
- <td>返回信息</td>
- </tr>
- <tr>
- <td style="text-align: left;">data</td>
- <td style="text-align: left;">json</td>
- <td>成功返回数据</td>
- </tr>
- <tr>
- <td style="text-align: left;">moblie</td>
- <td style="text-align: left;">String</td>
- <td>手机号码</td>
- </tr>
- <tr>
- <td style="text-align: left;">orderNo</td>
- <td style="text-align: left;">String</td>
- <td>商户订单号</td>
- </tr>
- <tr>
- <td style="text-align: left;">tradeNo</td>
- <td style="text-align: left;">String</td>
- <td>交易订单号</td>
- </tr>
- </tbody>
- </table>
- <h5>商品NO说明</h5>
- <table>
- <thead><tr style='background-color: rgb(0, 136, 204); color: rgb(255, 255, 255);'>
- <th style="text-align: left;">商品编号</th>
- <th>商品名称</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td style="text-align: left;">23100000200101</td>
- <td>全国联通200话费</td>
- </tr>
- <tr>
- <td style="text-align: left;">23100000100101</td>
- <td>全国联通100话费</td>
- </tr>
- <tr>
- <td style="text-align: left;">2310000050101</td>
- <td>全国联通50话费</td>
- </tr>
- <tr>
- <td style="text-align: left;">22100000200101</td>
- <td>全国电信200话费</td>
- </tr>
- <tr>
- <td style="text-align: left;">22100000100101</td>
- <td>全国电信100话费</td>
- </tr>
- <tr>
- <td style="text-align: left;">2210000050101</td>
- <td>全国电信50话费</td>
- </tr>
- <tr>
- <td style="text-align: left;">21100000200101</td>
- <td>全国移动200话费</td>
- </tr>
- <tr>
- <td style="text-align: left;">2110000050000</td>
- <td>全国移动50话费</td>
- </tr>
- <tr>
- <td style="text-align: left;">21100000100000</td>
- <td>全国移动100元话费</td>
- </tr>
- </tbody>
- </table>
- <h5>备注</h5>
- <ul>
- <li>返回码code
- 200 提交成功
- 其他 提交失败</li>
- </ul>
- <h5>错误码表</h5>
- <table>
- <thead><tr style='background-color: rgb(0, 136, 204); color: rgb(255, 255, 255);'>
- <th style="text-align: left;">code</th>
- <th>msg</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td style="text-align: left;">200</td>
- <td>OK</td>
- </tr>
- <tr>
- <td style="text-align: left;">999</td>
- <td>异常</td>
- </tr>
- <tr>
- <td style="text-align: left;">100</td>
- <td>sign不正确</td>
- </tr>
- <tr>
- <td style="text-align: left;">101</td>
- <td>请求ip不在白名单</td>
- </tr>
- <tr>
- <td style="text-align: left;">110</td>
- <td>参数异常</td>
- </tr>
- <tr>
- <td style="text-align: left;">120</td>
- <td>商品不存在</td>
- </tr>
- <tr>
- <td style="text-align: left;">121</td>
- <td>充值金额和商品编号不对应</td>
- </tr>
- <tr>
- <td style="text-align: left;">130</td>
- <td>商户appId错误</td>
- </tr>
- <tr>
- <td style="text-align: left;">131</td>
- <td>商户被冻结</td>
- </tr>
- <tr>
- <td style="text-align: left;">132</td>
- <td>商户被注销</td>
- </tr>
- <tr>
- <td style="text-align: left;">140</td>
- <td>平台维护中</td>
- </tr>
- <tr>
- <td style="text-align: left;">144</td>
- <td>产品运营商和号码不匹配</td>
- </tr>
- <tr>
- <td style="text-align: left;">141</td>
- <td>省份维护中</td>
- </tr>
- <tr>
- <td style="text-align: left;">142</td>
- <td>运营商维护中</td>
- </tr>
- <tr>
- <td style="text-align: left;">143</td>
- <td>号码黑名单中</td>
- </tr>
- <tr>
- <td style="text-align: left;">144</td>
- <td>号码提交太频繁</td>
- </tr>
- <tr>
- <td style="text-align: left;">145</td>
- <td>号码信息获取失败</td>
- </tr>
- <tr>
- <td style="text-align: left;">150</td>
- <td>订单已经存在</td>
- </tr>
- <tr>
- <td style="text-align: left;">151</td>
- <td>订单不存在</td>
- </tr>
- <tr>
- <td style="text-align: left;">160</td>
- <td>账户被冻结</td>
- </tr>
- <tr>
- <td style="text-align: left;">161</td>
- <td>账户异常</td>
- </tr>
- <tr>
- <td style="text-align: left;">162</td>
- <td>账户余额不足</td>
- </tr>
- <tr>
- <td style="text-align: left;">163</td>
- <td>未知交易类型</td>
- </tr>
- <tr>
- <td style="text-align: left;">164</td>
- <td>支付其他错误</td>
- </tr>
- <tr>
- <td style="text-align: left;">165</td>
- <td>账户不存在</td>
- </tr>
- <tr>
- <td style="text-align: left;">170</td>
- <td>商品没设置供货商</td>
- </tr>
- <tr>
- <td style="text-align: left;">171</td>
- <td>找不到合适的供货商</td>
- </tr>
- <tr>
- <td style="text-align: left;">172</td>
- <td>没有供货商接口</td>
- </tr>
- <tr>
- <td style="text-align: left;">173</td>
- <td>供货繁忙</td>
- </tr>
- </tbody>
- </table></div><h1>3、异步通知结果</h1><div style="margin-left:20px;"><h5>简要描述</h5>
- <ul>
- <li>异步通知结果</li>
- </ul>
- <h5>请求URL</h5>
- <ul>
- <li><code>充值提交的通知地址,需加白的,请咨询我方相关人员提供IP</code></li>
- </ul>
- <h5>请求方式</h5>
- <ul>
- <li>POST
- content-type : application/json
- <h5>参数</h5></li>
- </ul>
- <table>
- <thead><tr style='background-color: rgb(0, 136, 204); color: rgb(255, 255, 255);'>
- <th style="text-align: left;">参数名</th>
- <th style="text-align: left;">必选</th>
- <th style="text-align: left;">类型</th>
- <th>说明</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td style="text-align: left;">tradeNo</td>
- <td style="text-align: left;">是</td>
- <td style="text-align: left;">string</td>
- <td>平台交易订单号</td>
- </tr>
- <tr>
- <td style="text-align: left;">orderNo</td>
- <td style="text-align: left;">是</td>
- <td style="text-align: left;">string</td>
- <td>代理商户订单号</td>
- </tr>
- <tr>
- <td style="text-align: left;">orderStatus</td>
- <td style="text-align: left;">是</td>
- <td style="text-align: left;">int</td>
- <td>1:处理中,2:成功,3:失败,9:未确认</td>
- </tr>
- <tr>
- <td style="text-align: left;">amount</td>
- <td style="text-align: left;">是</td>
- <td style="text-align: left;">int</td>
- <td>充值金额,单位元</td>
- </tr>
- <tr>
- <td style="text-align: left;">mobile</td>
- <td style="text-align: left;">是</td>
- <td style="text-align: left;">string</td>
- <td>手机号</td>
- </tr>
- <tr>
- <td style="text-align: left;">carrierOrderNo</td>
- <td style="text-align: left;">否</td>
- <td style="text-align: left;">string</td>
- <td>运营商流水号</td>
- </tr>
- <tr>
- <td style="text-align: left;">sign</td>
- <td style="text-align: left;">是</td>
- <td style="text-align: left;">string</td>
- <td>见签名规则</td>
- </tr>
- </tbody>
- </table>
- <h5>返回示例</h5>
- <table width='100%' class='codestyle'><pre><code> {
- "tradeNo": "123",
- "orderNo": "12154545",
- "orderStatus": 2,
- "amont": 20 ,
- "mobile": "1436864169",
- "carrierOrderNo": "1008634343242343434",
- "sign":"-----"
- }</code></pre></table>
- <h5>备注</h5>
- <ul>
- <li>收到请求,需返回<strong>小写</strong>字符: success</li>
- </ul></div><h1>4、订单查询</h1><div style="margin-left:20px;"><h5>简要描述</h5>
- <ul>
- <li>订单查询</li>
- </ul>
- <h5>请求URL</h5>
- <ul>
- <li><code>http://xx.com/gateway/recharge/order</code></li>
- </ul>
- <h5>请求方式</h5>
- <ul>
- <li>POST application/x-www-form-urlencoded</li>
- </ul>
- <h5>参数</h5>
- <table>
- <thead><tr style='background-color: rgb(0, 136, 204); color: rgb(255, 255, 255);'>
- <th style="text-align: left;">参数名</th>
- <th style="text-align: left;">必选</th>
- <th style="text-align: left;">类型</th>
- <th>说明</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td style="text-align: left;">appId</td>
- <td style="text-align: left;">是</td>
- <td style="text-align: left;">string</td>
- <td>用户名</td>
- </tr>
- <tr>
- <td style="text-align: left;">tradeNo</td>
- <td style="text-align: left;">是</td>
- <td style="text-align: left;">string</td>
- <td>平台交易号</td>
- </tr>
- <tr>
- <td style="text-align: left;">sign</td>
- <td style="text-align: left;">是</td>
- <td style="text-align: left;">string</td>
- <td>签名</td>
- </tr>
- </tbody>
- </table>
- <h5>返回参数说明</h5>
- <table>
- <thead><tr style='background-color: rgb(0, 136, 204); color: rgb(255, 255, 255);'>
- <th style="text-align: left;">参数名</th>
- <th style="text-align: left;">类型</th>
- <th>说明</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td style="text-align: left;">code</td>
- <td style="text-align: left;">int</td>
- <td>200查询成功,其他查询失败</td>
- </tr>
- <tr>
- <td style="text-align: left;">msg</td>
- <td style="text-align: left;">string</td>
- <td>描述信息</td>
- </tr>
- <tr>
- <td style="text-align: left;">data</td>
- <td style="text-align: left;">json</td>
- <td>成功返回信息</td>
- </tr>
- <tr>
- <td style="text-align: left;">orderNo</td>
- <td style="text-align: left;">string</td>
- <td>商户订单号</td>
- </tr>
- <tr>
- <td style="text-align: left;">tradeNo</td>
- <td style="text-align: left;">string</td>
- <td>平台交易号</td>
- </tr>
- <tr>
- <td style="text-align: left;">productNo</td>
- <td style="text-align: left;">string</td>
- <td>商品编号</td>
- </tr>
- <tr>
- <td style="text-align: left;">orderStatus</td>
- <td style="text-align: left;">int</td>
- <td>1:处理中,2:成功,3:失败,9:未确认</td>
- </tr>
- <tr>
- <td style="text-align: left;">moblie</td>
- <td style="text-align: left;">string</td>
- <td>手机号</td>
- </tr>
- <tr>
- <td style="text-align: left;">facePrice</td>
- <td style="text-align: left;">string</td>
- <td>订单面值(元)</td>
- </tr>
- <tr>
- <td style="text-align: left;">carrierOrderNo</td>
- <td style="text-align: left;">string</td>
- <td>运营商流水号</td>
- </tr>
- </tbody>
- </table>
- <h5>返回示例</h5>
- <table width='100%' class='codestyle'><pre><code>{
- "code": 200,
- "msg": "OK",
- "data": {
- "orderNo": "22222222233",
- "tradeNo": "2020111013362583735",
- "productNo": "2110000050000",
- "orderStatus": 3,
- "moblie": "13670074035",
- "facePrice": "50"
- }
- }</code></pre></table></div><h1>5、余额查询</h1><div style="margin-left:20px;"><h5>简要描述</h5>
- <ul>
- <li>查询余额</li>
- </ul>
- <h5>请求URL</h5>
- <ul>
- <li><code>http://xx.com/gateway/balance/query</code></li>
- </ul>
- <h5>请求方式</h5>
- <ul>
- <li>POST application/x-www-form-urlencoded</li>
- </ul>
- <h5>参数</h5>
- <table>
- <thead><tr style='background-color: rgb(0, 136, 204); color: rgb(255, 255, 255);'>
- <th style="text-align: left;">参数名</th>
- <th style="text-align: left;">必选</th>
- <th style="text-align: left;">类型</th>
- <th>说明</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td style="text-align: left;">appId</td>
- <td style="text-align: left;">是</td>
- <td style="text-align: left;">string</td>
- <td>用户名</td>
- </tr>
- <tr>
- <td style="text-align: left;">sign</td>
- <td style="text-align: left;">是</td>
- <td style="text-align: left;">string</td>
- <td>签名</td>
- </tr>
- </tbody>
- </table>
- <h5>返回参数说明</h5>
- <table>
- <thead><tr style='background-color: rgb(0, 136, 204); color: rgb(255, 255, 255);'>
- <th style="text-align: left;">参数名</th>
- <th style="text-align: left;">类型</th>
- <th>说明</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td style="text-align: left;">code</td>
- <td style="text-align: left;">int</td>
- <td>200查询成功,其他查询失败</td>
- </tr>
- <tr>
- <td style="text-align: left;">msg</td>
- <td style="text-align: left;">string</td>
- <td>描述信息</td>
- </tr>
- <tr>
- <td style="text-align: left;">data</td>
- <td style="text-align: left;">json</td>
- <td>成功返回信息</td>
- </tr>
- <tr>
- <td style="text-align: left;">totalBalance</td>
- <td style="text-align: left;">string</td>
- <td>余额(元)</td>
- </tr>
- <tr>
- <td style="text-align: left;">credit</td>
- <td style="text-align: left;">string</td>
- <td>授信(元)</td>
- </tr>
- </tbody>
- </table>
- <h5>返回示例</h5>
- <table width='100%' class='codestyle'><pre><code>{
- "code": 200,
- "msg": "OK",
- "data": {
- "totalBalance": "-86.80",
- "credit": "10.00"
- }
- }</code></pre></table></div></body></html>
|