阿凡灯充值系统2.2.doc 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628
  1. <html xmlns:v="urn:schemas-microsoft-com:vml"
  2. xmlns:o="urn:schemas-microsoft-com:office:office"
  3. xmlns:w="urn:schemas-microsoft-com:office:word"
  4. xmlns="http://www.w3.org/TR/REC-html40">
  5. <head><meta http-equiv=Content-Type content="text/html; charset=utf-8">
  6. <style type="text/css">
  7. table
  8. {
  9. border-collapse: collapse;
  10. border: none;
  11. width: 100%;
  12. }
  13. td,tr
  14. {
  15. border: solid #CCC 1px;
  16. padding:3px;
  17. font-size:9pt;
  18. }
  19. .codestyle{
  20. word-break: break-all;
  21. mso-highlight:rgb(252, 252, 252);
  22. padding-left: 5px; background-color: rgb(252, 252, 252); border: 1px solid rgb(225, 225, 232);
  23. }
  24. img {
  25. width:100;
  26. }
  27. </style>
  28. <meta name=ProgId content=Word.Document>
  29. <meta name=Generator content="Microsoft Word 11">
  30. <meta name=Originator content="Microsoft Word 11">
  31. <xml><w:WordDocument><w:View>Print</w:View></xml></head>
  32. <body><h1>1、签名规则</h1><div style="margin-left:20px;"><blockquote>
  33. <p>签名生成的通用步骤如下</p>
  34. </blockquote>
  35. <p><strong>第一步:</strong>设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。<br/><br/>
  36. 特别注意以下重要规则:<br/><br/>
  37. ◆ 参数名ASCII码从小到大排序(字典序);<br/><br/>
  38. ◆ 如果参数的值为空不参与签名;<br/><br/>
  39. ◆ 参数名区分大小写;<br/><br/>
  40. ◆ 验证调用返回或系统主动通知签名时,传送的sign参数不参与签名,将生成的签名与该sign值作校验。<br/><br/>
  41. <p><strong>第二步:</strong>在stringA最后拼接上key得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。 </p>
  42. <p>如请求系统参数如下:</p>
  43. <table width='100%' class='codestyle'><pre><code> Map signMap = new HashMap<>();
  44. signMap.put("appId", "test01");
  45. signMap.put("mobile", "18698798721");
  46. signMap.put("productNo", '2110000050000');
  47. signMap.put("amount", 50);
  48. signMap.put("orderNo", "12345");
  49. signMap.put("notifyUrl", "xxxxxx");
  50. </code></pre></table>
  51. <p><code>待签名值</code>:amount=50&appId=test01&mobile=18698798721&<span>notifyUrl</span>=xxxxxx&orderNo=12345&productNo=2110000050000&key=EWEFD123RGSRETYDFNGFGFGSHDFGH</p><br/>
  52. <code>签名结果</code>:7864F84DE809CE3FA0C080FB516FD991<br/>
  53. ##### 备注
  54. appId 和 key请到代理商户后台 “账户管理 - 账户信息” 中查看</div><h1>2、充值提交</h1><div style="margin-left:20px;"><h5>简要描述</h5>
  55. <ul>
  56. <li>话费入单接口,接收话费商推送过来的话单。</li>
  57. </ul>
  58. <h5>请求URL</h5>
  59. <ul>
  60. <li><code>http://xx.com/gateway/recharge</code></li>
  61. </ul>
  62. <h5>请求方式</h5>
  63. <ul>
  64. <li>POST </li>
  65. </ul>
  66. <h5>参数</h5>
  67. <table>
  68. <thead><tr style='background-color: rgb(0, 136, 204); color: rgb(255, 255, 255);'>
  69. <th style="text-align: left;">参数名</th>
  70. <th style="text-align: left;">必选</th>
  71. <th style="text-align: left;">类型</th>
  72. <th>说明</th>
  73. </tr>
  74. </thead>
  75. <tbody>
  76. <tr>
  77. <td style="text-align: left;">appId</td>
  78. <td style="text-align: left;">是</td>
  79. <td style="text-align: left;">string</td>
  80. <td>appId,可后台查看</td>
  81. </tr>
  82. <tr>
  83. <td style="text-align: left;">mobile</td>
  84. <td style="text-align: left;">是</td>
  85. <td style="text-align: left;">string</td>
  86. <td>长度11</td>
  87. </tr>
  88. <tr>
  89. <td style="text-align: left;">productNo</td>
  90. <td style="text-align: left;">是</td>
  91. <td style="text-align: left;">string</td>
  92. <td>具体值看下面商品NO</td>
  93. </tr>
  94. <tr>
  95. <td style="text-align: left;">amount</td>
  96. <td style="text-align: left;">是</td>
  97. <td style="text-align: left;">string</td>
  98. <td>金额元</td>
  99. </tr>
  100. <tr>
  101. <td style="text-align: left;">orderNo</td>
  102. <td style="text-align: left;">是</td>
  103. <td style="text-align: left;">string</td>
  104. <td>订单号,长度最大30位</td>
  105. </tr>
  106. <tr>
  107. <td style="text-align: left;">notifyUrl</td>
  108. <td style="text-align: left;">是</td>
  109. <td style="text-align: left;">string</td>
  110. <td>异步通知地址,长度最大300位</td>
  111. </tr>
  112. <tr>
  113. <td style="text-align: left;">sign</td>
  114. <td style="text-align: left;">是</td>
  115. <td style="text-align: left;">string</td>
  116. <td>见签名规则</td>
  117. </tr>
  118. </tbody>
  119. </table>
  120. <h5>返回示例</h5>
  121. <table width='100%' class='codestyle'><pre><code>{
  122. "code": 200,
  123. "msg": "",
  124. "data": {
  125. "moblie": "18676709241",
  126. "orderNo": "22222222222",
  127. "tradeNo": "2020092817541471344"
  128. }
  129. }</code></pre></table>
  130. <h5>返回参数说明</h5>
  131. <table>
  132. <thead><tr style='background-color: rgb(0, 136, 204); color: rgb(255, 255, 255);'>
  133. <th style="text-align: left;">参数名</th>
  134. <th style="text-align: left;">类型</th>
  135. <th>说明</th>
  136. </tr>
  137. </thead>
  138. <tbody>
  139. <tr>
  140. <td style="text-align: left;">code</td>
  141. <td style="text-align: left;">int</td>
  142. <td>返回码</td>
  143. </tr>
  144. <tr>
  145. <td style="text-align: left;">msg</td>
  146. <td style="text-align: left;">String</td>
  147. <td>返回信息</td>
  148. </tr>
  149. <tr>
  150. <td style="text-align: left;">data</td>
  151. <td style="text-align: left;">json</td>
  152. <td>成功返回数据</td>
  153. </tr>
  154. <tr>
  155. <td style="text-align: left;">moblie</td>
  156. <td style="text-align: left;">String</td>
  157. <td>手机号码</td>
  158. </tr>
  159. <tr>
  160. <td style="text-align: left;">orderNo</td>
  161. <td style="text-align: left;">String</td>
  162. <td>商户订单号</td>
  163. </tr>
  164. <tr>
  165. <td style="text-align: left;">tradeNo</td>
  166. <td style="text-align: left;">String</td>
  167. <td>交易订单号</td>
  168. </tr>
  169. </tbody>
  170. </table>
  171. <h5>商品NO说明</h5>
  172. <table>
  173. <thead><tr style='background-color: rgb(0, 136, 204); color: rgb(255, 255, 255);'>
  174. <th style="text-align: left;">商品编号</th>
  175. <th>商品名称</th>
  176. </tr>
  177. </thead>
  178. <tbody>
  179. <tr>
  180. <td style="text-align: left;">23100000200101</td>
  181. <td>全国联通200话费</td>
  182. </tr>
  183. <tr>
  184. <td style="text-align: left;">23100000100101</td>
  185. <td>全国联通100话费</td>
  186. </tr>
  187. <tr>
  188. <td style="text-align: left;">2310000050101</td>
  189. <td>全国联通50话费</td>
  190. </tr>
  191. <tr>
  192. <td style="text-align: left;">22100000200101</td>
  193. <td>全国电信200话费</td>
  194. </tr>
  195. <tr>
  196. <td style="text-align: left;">22100000100101</td>
  197. <td>全国电信100话费</td>
  198. </tr>
  199. <tr>
  200. <td style="text-align: left;">2210000050101</td>
  201. <td>全国电信50话费</td>
  202. </tr>
  203. <tr>
  204. <td style="text-align: left;">21100000200101</td>
  205. <td>全国移动200话费</td>
  206. </tr>
  207. <tr>
  208. <td style="text-align: left;">2110000050000</td>
  209. <td>全国移动50话费</td>
  210. </tr>
  211. <tr>
  212. <td style="text-align: left;">21100000100000</td>
  213. <td>全国移动100元话费</td>
  214. </tr>
  215. </tbody>
  216. </table>
  217. <h5>备注</h5>
  218. <ul>
  219. <li>返回码code
  220. 200 提交成功
  221. 其他 提交失败</li>
  222. </ul>
  223. <h5>错误码表</h5>
  224. <table>
  225. <thead><tr style='background-color: rgb(0, 136, 204); color: rgb(255, 255, 255);'>
  226. <th style="text-align: left;">code</th>
  227. <th>msg</th>
  228. </tr>
  229. </thead>
  230. <tbody>
  231. <tr>
  232. <td style="text-align: left;">200</td>
  233. <td>OK</td>
  234. </tr>
  235. <tr>
  236. <td style="text-align: left;">999</td>
  237. <td>异常</td>
  238. </tr>
  239. <tr>
  240. <td style="text-align: left;">100</td>
  241. <td>sign不正确</td>
  242. </tr>
  243. <tr>
  244. <td style="text-align: left;">101</td>
  245. <td>请求ip不在白名单</td>
  246. </tr>
  247. <tr>
  248. <td style="text-align: left;">110</td>
  249. <td>参数异常</td>
  250. </tr>
  251. <tr>
  252. <td style="text-align: left;">120</td>
  253. <td>商品不存在</td>
  254. </tr>
  255. <tr>
  256. <td style="text-align: left;">121</td>
  257. <td>充值金额和商品编号不对应</td>
  258. </tr>
  259. <tr>
  260. <td style="text-align: left;">130</td>
  261. <td>商户appId错误</td>
  262. </tr>
  263. <tr>
  264. <td style="text-align: left;">131</td>
  265. <td>商户被冻结</td>
  266. </tr>
  267. <tr>
  268. <td style="text-align: left;">132</td>
  269. <td>商户被注销</td>
  270. </tr>
  271. <tr>
  272. <td style="text-align: left;">140</td>
  273. <td>平台维护中</td>
  274. </tr>
  275. <tr>
  276. <td style="text-align: left;">144</td>
  277. <td>产品运营商和号码不匹配</td>
  278. </tr>
  279. <tr>
  280. <td style="text-align: left;">141</td>
  281. <td>省份维护中</td>
  282. </tr>
  283. <tr>
  284. <td style="text-align: left;">142</td>
  285. <td>运营商维护中</td>
  286. </tr>
  287. <tr>
  288. <td style="text-align: left;">143</td>
  289. <td>号码黑名单中</td>
  290. </tr>
  291. <tr>
  292. <td style="text-align: left;">144</td>
  293. <td>号码提交太频繁</td>
  294. </tr>
  295. <tr>
  296. <td style="text-align: left;">145</td>
  297. <td>号码信息获取失败</td>
  298. </tr>
  299. <tr>
  300. <td style="text-align: left;">150</td>
  301. <td>订单已经存在</td>
  302. </tr>
  303. <tr>
  304. <td style="text-align: left;">151</td>
  305. <td>订单不存在</td>
  306. </tr>
  307. <tr>
  308. <td style="text-align: left;">160</td>
  309. <td>账户被冻结</td>
  310. </tr>
  311. <tr>
  312. <td style="text-align: left;">161</td>
  313. <td>账户异常</td>
  314. </tr>
  315. <tr>
  316. <td style="text-align: left;">162</td>
  317. <td>账户余额不足</td>
  318. </tr>
  319. <tr>
  320. <td style="text-align: left;">163</td>
  321. <td>未知交易类型</td>
  322. </tr>
  323. <tr>
  324. <td style="text-align: left;">164</td>
  325. <td>支付其他错误</td>
  326. </tr>
  327. <tr>
  328. <td style="text-align: left;">165</td>
  329. <td>账户不存在</td>
  330. </tr>
  331. <tr>
  332. <td style="text-align: left;">170</td>
  333. <td>商品没设置供货商</td>
  334. </tr>
  335. <tr>
  336. <td style="text-align: left;">171</td>
  337. <td>找不到合适的供货商</td>
  338. </tr>
  339. <tr>
  340. <td style="text-align: left;">172</td>
  341. <td>没有供货商接口</td>
  342. </tr>
  343. <tr>
  344. <td style="text-align: left;">173</td>
  345. <td>供货繁忙</td>
  346. </tr>
  347. </tbody>
  348. </table></div><h1>3、异步通知结果</h1><div style="margin-left:20px;"><h5>简要描述</h5>
  349. <ul>
  350. <li>异步通知结果</li>
  351. </ul>
  352. <h5>请求URL</h5>
  353. <ul>
  354. <li><code>充值提交的通知地址,需加白的,请咨询我方相关人员提供IP</code></li>
  355. </ul>
  356. <h5>请求方式</h5>
  357. <ul>
  358. <li>POST
  359. content-type : application/json
  360. <h5>参数</h5></li>
  361. </ul>
  362. <table>
  363. <thead><tr style='background-color: rgb(0, 136, 204); color: rgb(255, 255, 255);'>
  364. <th style="text-align: left;">参数名</th>
  365. <th style="text-align: left;">必选</th>
  366. <th style="text-align: left;">类型</th>
  367. <th>说明</th>
  368. </tr>
  369. </thead>
  370. <tbody>
  371. <tr>
  372. <td style="text-align: left;">tradeNo</td>
  373. <td style="text-align: left;">是</td>
  374. <td style="text-align: left;">string</td>
  375. <td>平台交易订单号</td>
  376. </tr>
  377. <tr>
  378. <td style="text-align: left;">orderNo</td>
  379. <td style="text-align: left;">是</td>
  380. <td style="text-align: left;">string</td>
  381. <td>代理商户订单号</td>
  382. </tr>
  383. <tr>
  384. <td style="text-align: left;">orderStatus</td>
  385. <td style="text-align: left;">是</td>
  386. <td style="text-align: left;">int</td>
  387. <td>1:处理中,2:成功,3:失败,9:未确认</td>
  388. </tr>
  389. <tr>
  390. <td style="text-align: left;">amount</td>
  391. <td style="text-align: left;">是</td>
  392. <td style="text-align: left;">int</td>
  393. <td>充值金额,单位元</td>
  394. </tr>
  395. <tr>
  396. <td style="text-align: left;">mobile</td>
  397. <td style="text-align: left;">是</td>
  398. <td style="text-align: left;">string</td>
  399. <td>手机号</td>
  400. </tr>
  401. <tr>
  402. <td style="text-align: left;">carrierOrderNo</td>
  403. <td style="text-align: left;">否</td>
  404. <td style="text-align: left;">string</td>
  405. <td>运营商流水号</td>
  406. </tr>
  407. <tr>
  408. <td style="text-align: left;">sign</td>
  409. <td style="text-align: left;">是</td>
  410. <td style="text-align: left;">string</td>
  411. <td>见签名规则</td>
  412. </tr>
  413. </tbody>
  414. </table>
  415. <h5>返回示例</h5>
  416. <table width='100%' class='codestyle'><pre><code> {
  417. "tradeNo": "123",
  418. "orderNo": "12154545",
  419. "orderStatus": 2,
  420. "amont": 20 ,
  421. "mobile": "1436864169",
  422. "carrierOrderNo": "1008634343242343434",
  423. "sign":"-----"
  424. }</code></pre></table>
  425. <h5>备注</h5>
  426. <ul>
  427. <li>收到请求,需返回<strong>小写</strong>字符: success</li>
  428. </ul></div><h1>4、订单查询</h1><div style="margin-left:20px;"><h5>简要描述</h5>
  429. <ul>
  430. <li>订单查询</li>
  431. </ul>
  432. <h5>请求URL</h5>
  433. <ul>
  434. <li><code>http://xx.com/gateway/recharge/order</code></li>
  435. </ul>
  436. <h5>请求方式</h5>
  437. <ul>
  438. <li>POST application/x-www-form-urlencoded</li>
  439. </ul>
  440. <h5>参数</h5>
  441. <table>
  442. <thead><tr style='background-color: rgb(0, 136, 204); color: rgb(255, 255, 255);'>
  443. <th style="text-align: left;">参数名</th>
  444. <th style="text-align: left;">必选</th>
  445. <th style="text-align: left;">类型</th>
  446. <th>说明</th>
  447. </tr>
  448. </thead>
  449. <tbody>
  450. <tr>
  451. <td style="text-align: left;">appId</td>
  452. <td style="text-align: left;">是</td>
  453. <td style="text-align: left;">string</td>
  454. <td>用户名</td>
  455. </tr>
  456. <tr>
  457. <td style="text-align: left;">tradeNo</td>
  458. <td style="text-align: left;">是</td>
  459. <td style="text-align: left;">string</td>
  460. <td>平台交易号</td>
  461. </tr>
  462. <tr>
  463. <td style="text-align: left;">sign</td>
  464. <td style="text-align: left;">是</td>
  465. <td style="text-align: left;">string</td>
  466. <td>签名</td>
  467. </tr>
  468. </tbody>
  469. </table>
  470. <h5>返回参数说明</h5>
  471. <table>
  472. <thead><tr style='background-color: rgb(0, 136, 204); color: rgb(255, 255, 255);'>
  473. <th style="text-align: left;">参数名</th>
  474. <th style="text-align: left;">类型</th>
  475. <th>说明</th>
  476. </tr>
  477. </thead>
  478. <tbody>
  479. <tr>
  480. <td style="text-align: left;">code</td>
  481. <td style="text-align: left;">int</td>
  482. <td>200查询成功,其他查询失败</td>
  483. </tr>
  484. <tr>
  485. <td style="text-align: left;">msg</td>
  486. <td style="text-align: left;">string</td>
  487. <td>描述信息</td>
  488. </tr>
  489. <tr>
  490. <td style="text-align: left;">data</td>
  491. <td style="text-align: left;">json</td>
  492. <td>成功返回信息</td>
  493. </tr>
  494. <tr>
  495. <td style="text-align: left;">orderNo</td>
  496. <td style="text-align: left;">string</td>
  497. <td>商户订单号</td>
  498. </tr>
  499. <tr>
  500. <td style="text-align: left;">tradeNo</td>
  501. <td style="text-align: left;">string</td>
  502. <td>平台交易号</td>
  503. </tr>
  504. <tr>
  505. <td style="text-align: left;">productNo</td>
  506. <td style="text-align: left;">string</td>
  507. <td>商品编号</td>
  508. </tr>
  509. <tr>
  510. <td style="text-align: left;">orderStatus</td>
  511. <td style="text-align: left;">int</td>
  512. <td>1:处理中,2:成功,3:失败,9:未确认</td>
  513. </tr>
  514. <tr>
  515. <td style="text-align: left;">moblie</td>
  516. <td style="text-align: left;">string</td>
  517. <td>手机号</td>
  518. </tr>
  519. <tr>
  520. <td style="text-align: left;">facePrice</td>
  521. <td style="text-align: left;">string</td>
  522. <td>订单面值(元)</td>
  523. </tr>
  524. <tr>
  525. <td style="text-align: left;">carrierOrderNo</td>
  526. <td style="text-align: left;">string</td>
  527. <td>运营商流水号</td>
  528. </tr>
  529. </tbody>
  530. </table>
  531. <h5>返回示例</h5>
  532. <table width='100%' class='codestyle'><pre><code>{
  533. "code": 200,
  534. "msg": "OK",
  535. "data": {
  536. "orderNo": "22222222233",
  537. "tradeNo": "2020111013362583735",
  538. "productNo": "2110000050000",
  539. "orderStatus": 3,
  540. "moblie": "13670074035",
  541. "facePrice": "50"
  542. }
  543. }</code></pre></table></div><h1>5、余额查询</h1><div style="margin-left:20px;"><h5>简要描述</h5>
  544. <ul>
  545. <li>查询余额</li>
  546. </ul>
  547. <h5>请求URL</h5>
  548. <ul>
  549. <li><code>http://xx.com/gateway/balance/query</code></li>
  550. </ul>
  551. <h5>请求方式</h5>
  552. <ul>
  553. <li>POST application/x-www-form-urlencoded</li>
  554. </ul>
  555. <h5>参数</h5>
  556. <table>
  557. <thead><tr style='background-color: rgb(0, 136, 204); color: rgb(255, 255, 255);'>
  558. <th style="text-align: left;">参数名</th>
  559. <th style="text-align: left;">必选</th>
  560. <th style="text-align: left;">类型</th>
  561. <th>说明</th>
  562. </tr>
  563. </thead>
  564. <tbody>
  565. <tr>
  566. <td style="text-align: left;">appId</td>
  567. <td style="text-align: left;">是</td>
  568. <td style="text-align: left;">string</td>
  569. <td>用户名</td>
  570. </tr>
  571. <tr>
  572. <td style="text-align: left;">sign</td>
  573. <td style="text-align: left;">是</td>
  574. <td style="text-align: left;">string</td>
  575. <td>签名</td>
  576. </tr>
  577. </tbody>
  578. </table>
  579. <h5>返回参数说明</h5>
  580. <table>
  581. <thead><tr style='background-color: rgb(0, 136, 204); color: rgb(255, 255, 255);'>
  582. <th style="text-align: left;">参数名</th>
  583. <th style="text-align: left;">类型</th>
  584. <th>说明</th>
  585. </tr>
  586. </thead>
  587. <tbody>
  588. <tr>
  589. <td style="text-align: left;">code</td>
  590. <td style="text-align: left;">int</td>
  591. <td>200查询成功,其他查询失败</td>
  592. </tr>
  593. <tr>
  594. <td style="text-align: left;">msg</td>
  595. <td style="text-align: left;">string</td>
  596. <td>描述信息</td>
  597. </tr>
  598. <tr>
  599. <td style="text-align: left;">data</td>
  600. <td style="text-align: left;">json</td>
  601. <td>成功返回信息</td>
  602. </tr>
  603. <tr>
  604. <td style="text-align: left;">totalBalance</td>
  605. <td style="text-align: left;">string</td>
  606. <td>余额(元)</td>
  607. </tr>
  608. <tr>
  609. <td style="text-align: left;">credit</td>
  610. <td style="text-align: left;">string</td>
  611. <td>授信(元)</td>
  612. </tr>
  613. </tbody>
  614. </table>
  615. <h5>返回示例</h5>
  616. <table width='100%' class='codestyle'><pre><code>{
  617. "code": 200,
  618. "msg": "OK",
  619. "data": {
  620. "totalBalance": "-86.80",
  621. "credit": "10.00"
  622. }
  623. }</code></pre></table></div></body></html>