1.0 API接入说明
<p>[TOC]</p>
<h4>接入流程</h4>
<ul>
<li>
<p>测试联调:接口对接 -> 联调测试 -> 对接完成;以下是测试环境联调参数:
> 渠道编号<strong>(channelNo)</strong>:<code>DC1780</code>
> 账户编号<strong>(accountId)</strong>:<code>1560</code>
> 接口密钥<strong>(apiKey)</strong>:<code>qk2KX7mHTdeqHZtw</code>
> 产品编号<strong>(itemId)</strong>:<code>1001(联通冲浪卡-不选号)</code> 或 <code>1002(联通冲浪卡-选号)</code>
> 省份编码<strong>(provinceNo)</strong>:<code>51(四川省)</code>
> 地市编码<strong>(cityNo)</strong>:<code>5105(泸州市)</code></p>
</li>
<li>正式上线:联系运营 -> 获取生产环境参数 -> 配置推送地址 -> 生产下单测试 -> 测试完成 -> 上线</li>
</ul>
<h4>接口说明</h4>
<ul>
<li>选号归属地、收货地址可使用接口1.1,1.2,也可使用离线数据:<strong>[prov-city-area.csv](<a href="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=4f99e23dcdb523dee1bdf7aafaaf080d">https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=4f99e23dcdb523dee1bdf7aafaaf080d</a> "[prov-city-area.csv")</strong></li>
<li>不选号产品必须对接:1.6,1.10</li>
<li>选号产品必须对接:1.3,1.7,1.8,1.10(1.9接口可选择接入)
<strong>注1:根据不同产品类型,选择性接入1.4,1.5;如不选号产品也要校验一证五户和风控则必须接入1.3接口</strong>
<strong>注2:1.4接口仅支持联通、广电直连产品,1.5仅支持联通直连产品,对接前请先咨询要合作的产品</strong>
<strong>注3:通知推送接口1.10上线前需联系运营或技术配置推送地址</strong></li>
</ul>
<h4>签名规则</h4>
<ul>
<li>除下单接口外其他接口不做签名校验</li>
<li>签名规则:传入参数字典序排序后使用=&符号拼接,再追加分配给合作方的apiKey,再对字符串做MD5签名,签名结果不区分大小写;如:md5(key1=value1&key2=value2......keyn=valuen&apiKey)
<strong>注1:值为空的字段不参与签名,请勿传递空值字段以避免签名错误</strong>
<strong>注2:签名时userParams字段JSON请不要转义</strong></li>
</ul>
<h4>Java签名示例</h4>
<pre><code> public static String createSign(Map&lt;String, Object&gt; params, String appKey) {
List&lt;Map.Entry&lt;String, Object&gt;&gt; list = new ArrayList&lt;&gt;(params.entrySet());
list.sort(Map.Entry.comparingByKey());
StringBuilder sb = new StringBuilder();
for (Map.Entry&lt;String, Object&gt; entry : list) {
String value = (entry.getValue() == null) ? &quot;&quot; : entry.getValue().toString();
if (!&quot;sign&quot;.equalsIgnoreCase(entry.getKey()) &amp;&amp; StrUtil.isNotEmpty(value)) {
sb.append(entry.getKey()).append(&quot;=&quot;).append(value).append(&quot;&amp;&quot;);
}
}
sb.append(appKey);
String signSrc = sb.toString();
String signDst = cn.hutool.crypto.SecureUtil.md5(signSrc).toUpperCase();
return signDst;
}
</code></pre>
<p><strong>常用API响应码</strong></p>
<ul>
<li>100-操作成功</li>
<li>200-操作失败</li>
<li>900-系统异常</li>
<li>[其他](<a href="https://www.showdoc.com.cn/qxosp/9750883487453965">https://www.showdoc.com.cn/qxosp/9750883487453965</a> "其他")</li>
</ul>