接口说明文档

<p>&nbsp;</p> <p><strong>1. 概述</strong></p> <p><strong>1.1 接口消息协议约定</strong></p> <p>默认情况下,接口系统提供的接口<strong>遵守</strong><strong>HTTPS+JSON</strong><strong>的数据传输方式</strong>,详见具体接口的协议说明。</p> <p><strong>2. 公共请求地址和处理</strong></p> <p><strong>2.1 请求地址</strong></p> <table> <caption>&nbsp;</caption> <thead> <tr> <th>环境</th> <th>HTTP</th> <th>HTTPS</th> </tr> </thead> <tbody> <tr> <td> <p>生产</p> </td> <td> <p>http://api.xiaoxi.pingan.com.cn/rest/{type}</p> </td> <td> <p>https://api.xiaoxi.pingan.com.cn/rest/{type}</p> </td> </tr> <tr> <td> <p>测试</p> </td> <td> <p>http://apitest.xiaoxi.pingan.com.cn/rest/{type}</p> </td> <td> <p>https://apitest.xiaoxi.pingan.com.cn/rest/{type}</p> </td> </tr> </tbody> </table> <p>说明: <em>type为API类型,比如:消息相关为msg,对数据信息安全要求高的消息,建议用HTTPS发送。</em></p> <p><strong>2.2 公共请求参数</strong></p> <table> <caption>&nbsp;</caption> <thead> <tr> <th style="width:102px">名称</th> <th style="width:61px">类型</th> <th style="width:63px">默认</th> <th style="width:68px">示例值</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="width:102px"> <p>method</p> </td> <td style="width:61px"> <p>String</p> </td> <td style="width:63px"> <p>必填</p> </td> <td style="width:68px">&nbsp;</td> <td>API方法名 <ul> <li>发送短信sendsms</li> <li>查询短信发送结果querySmsResult</li> <li>上行短信结果查询fetchNewSms</li> </ul> </td> </tr> <tr> <td style="width:102px"> <p>appid</p> </td> <td style="width:61px"> <p>String</p> </td> <td style="width:63px"> <p>必填</p> </td> <td style="width:68px"> <p>123</p> </td> <td> <p>应用编号,在消息云平台申请的应用编号。</p> </td> </tr> <tr> <td style="width:102px"> <p>timestamp</p> </td> <td style="width:61px"> <p>String</p> </td> <td style="width:63px"> <p>必填</p> </td> <td style="width:68px">20170315120000</td> <td> <p>yyyyMMddHHmmss</p> <p>30分钟有效,在有效期内这个值可以不变,即签名是一样的。在API调用时,该字段默认为系统当前时间即可。</p> </td> </tr> <tr> <td style="width:102px"> <p>sign</p> </td> <td style="width:61px"> <p>String</p> </td> <td style="width:63px"> <p>必填</p> </td> <td style="width:68px">&nbsp;</td> <td> <p>将secre作为密钥对appid + timestamp + secre进行MD5签名, 再将签名后的MD5字符串转成全大写。</p> </td> </tr> <tr> <td style="width:102px"> <p>extend</p> </td> <td style="width:61px"> <p>String</p> </td> <td style="width:63px"> <p>可选</p> </td> <td style="width:68px"> <p>123456</p> </td> <td> <p>公共回传参数,在&ldquo;消息返回&rdquo;中会透传回该参数;举例:用户可以传入自己的订单编号,在消息返回时,该订单编号会包含在内,用户可以根据该订单编号来识别是那个订单发的短信。</p> </td> </tr> <tr> <td style="width:102px"> <p>version</p> </td> <td style="width:61px"> <p>String</p> </td> <td style="width:63px"> <p>可选</p> </td> <td style="width:68px"> <p>1.0</p> </td> <td> <p>当前API版本,默认不用填。</p> </td> </tr> </tbody> </table> <p>说明:</p> <p>如下为测试环境的公共应用编号和密钥,在开发调试阶段可以使用它们来进行调试,注意生产上线后,要替换为生产实际的编号和密钥。</p> <p>appid为:680BB7E2B5F04F54E0537CE21F0A1D88</p> <p>secret为:6A43C3D60BC8ACBFC1D548E57ED7AFE4</p> <p><strong>2.3 公共响应参数</strong></p> <table> <caption>&nbsp;</caption> <thead> <tr> <th style="width:91px">名称</th> <th style="width:71px">类型</th> <th style="width:73px">示例</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="width:91px"> <p>code</p> </td> <td style="width:71px"> <p>String</p> </td> <td style="width:73px"> <p>000000</p> </td> <td> <p>返回码,如果返回非000000,则表明请求异常,用户可根据需求进行异常处理。</p> </td> </tr> <tr> <td style="width:91px"> <p>msg</p> </td> <td style="width:71px"> <p>String</p> </td> <td style="width:73px"> <p>成功</p> </td> <td> <p>返回信息描述。</p> </td> </tr> <tr> <td style="width:91px"> <p>appid</p> </td> <td style="width:71px"> <p>String</p> </td> <td style="width:73px">&nbsp;</td> <td> <p>应用编号。</p> </td> </tr> <tr> <td style="width:91px"> <p>extend</p> </td> <td style="width:71px"> <p>String</p> </td> <td style="width:73px">&nbsp;</td> <td> <p>公共回传参数。</p> </td> </tr> <tr> <td style="width:91px"> <p>expiretime</p> </td> <td style="width:71px"> <p>String</p> </td> <td style="width:73px"> <p>20170315123000</p> </td> <td> <p>签名过期时间。</p> <p>yyyyMMddHHmmss</p> </td> </tr> <tr> <td style="width:91px"> <p>token</p> </td> <td style="width:71px"> <p>String</p> </td> <td style="width:73px">&nbsp;</td> <td> <p>新的签名。</p> </td> </tr> </tbody> </table> <ul> <li><strong>签名算法</strong></li> </ul> <p>为了防止非法的API调用,调用任何一个API都需要携带签名,API服务端会根据请求参数,对签名进行验证,签名不合法的请求将会被拒绝。签名大体过程如下:</p> <ul> <li>将appid, timestamp和secre的值进行拼接后,进行MD5签名, 再将签名后的MD5字符串转成全大写。</li> <li>如:appid=123, timestamp=20170315120000, secret=xxx</li> <li>根据上面的示例得到的结果为:12320170315120000xxx</li> <li>把拼装好的字符串采用utf-8编码,使用签名算法对编码后的字节流进行MD5摘要。</li> </ul> <p>说明: secre 密钥是在消息云平台申请应用编号时对应的应用密钥。</p> <ul> <li><strong>验签流程</strong></li> </ul> <p>下面模拟了用户发起发送消息的请求,与消息云平台之间的交互。</p> <p><br /> <img src="https://pcp-portal-sca.obs-cn-shenzhen.pinganyun.com/pcp-portal-sca/20203112140408-1a05a13096e8.png" /></p> <p>&nbsp;</p> <p>(1)第三方应用第一次发起HTTPS请求,携带appid+timestamp+sign。</p> <p>&nbsp;</p> <p>(2)消息云平台验证签名是正确的,进入消息发送流程,同时生成一个token且定义了过期时间expiretime,返回这些信息给第三方应用。</p> <p>(3)消息云平台验证签名是错误的,直接返回签名错误给第三方应用。</p> <p>(4)第三方应用第二次发起HTTPS请求,检测返回结果带有token且在有效期内,则不用重新签名,</p> <p>(5)发送请求带上token即可。如下所示:</p> <p>appid=xxx&times;tamp=xxx&amp;sign=token</p> <p>(6)消息云平台验证token正确且在有效期内,进入消息发送流程。如果token找不到或已失效,尝试重新验签。签名不正确,返回错误信息。</p> <p><strong>3. 发送短信</strong></p> <ul> <li><strong>场景描述</strong></li> </ul> <p>向指定手机号码发送短信,模板内可设置部分变量。使用前需要获取短信签名与短信模板。测试时请直接使用正式环境HTTPS请求地址。 批量发送(一次传递多个号码eg:1881111111,1882222222)会产生相应的延迟,对时效性要求高的短信建议单条发送。</p> <ul> <li><strong>接口消息名称</strong></li> </ul> <p>接口地址:https://api.xiaoxi.pingan.com.cn/rest/msg</p> <p>方法:sendsms</p> <p>发起方:关联系统</p> <p>接收方:消息云平台</p> <p>发送类型:<strong>POST</strong></p> <p><strong>3.1 请求参数</strong></p> <table> <caption>&nbsp;</caption> <thead> <tr> <th style="width:100px">属性</th> <th style="width:60px">类型</th> <th style="width:50px">默认</th> <th style="width:135px">示例值</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="width:100px"> <p>sendType</p> </td> <td style="width:60px"> <p>String</p> </td> <td style="width:50px"> <p>可选</p> </td> <td style="width:135px"> <p>0</p> </td> <td> <p>0(短信通知): 短信通知服务指的是通过短信的方式,向用户签约的手机号码发送各类信息通知</p> <p>1(otp短信验证码):通过短信的方式,给用户签约的手机号码发送一组数字验证码,用户输入验证码以校验合法身份</p> <p>2(国际短信):给中国大陆地区以外的手机号码发送短信,包括港澳台和海外其他各个国家及地区。</p> </td> </tr> <tr> <td style="width:100px"> <p>templateId</p> </td> <td style="width:60px"> <p>String</p> </td> <td style="width:50px"> <p>必填</p> </td> <td style="width:135px"> <p>pscp_demo</p> </td> <td> <p>使用在消息云平台注册的模版id。该属性必填写。</p> </td> </tr> <tr> <td style="width:100px"> <p>requestId</p> </td> <td style="width:60px"> <p>String</p> </td> <td style="width:50px"> <p>必填</p> </td> <td style="width:135px"> <p>111,222</p> </td> <td> <p>关联系统一天内一条短信的唯一编号。最长为19位,不能以0开头且一天内不重复的正整数。建议为关联系统短信表的主键,一天内相同RequestID的短信会被认为是重复提交,不予发送。</p> </td> </tr> <tr> <td style="width:100px"> <p>mobileNo</p> </td> <td style="width:60px"> <p>String</p> </td> <td style="width:50px"> <p>必填</p> </td> <td style="width:135px"> <p>13480323810,13480323810</p> </td> <td> <p>11位手机号码,11位不能多也不能少,支持多个手机号码,以英文逗号分隔。</p> <p>说明: 每次请求最大200。</p> </td> </tr> <tr> <td style="width:100px"> <p>paramKeys</p> </td> <td style="width:60px"> <p>String</p> </td> <td style="width:50px"> <p>可选</p> </td> <td style="width:135px"> <p>name,amount</p> </td> <td> <p>模板变量名,以英文逗号分隔,如果模板带变量或paramValues有值,则这个必填。</p> </td> </tr> <tr> <td style="width:100px"> <p>paramValues</p> </td> <td style="width:60px"> <p>Json数组</p> </td> <td style="width:50px"> <p>可选</p> </td> <td style="width:135px"> <p>1. [[&ldquo;张三&rdquo;,&rdquo;100&rdquo;],[&ldquo;李四&rdquo;,&rdquo;1000&rdquo;]]</p> <p>2. [&ldquo;王五&rdquo;,&rdquo;2000&rdquo;]</p> </td> <td> <p>模板变量值,是个json格式的数组,变量值个数要跟paramKey一一对应,变量值数组要跟mobileNo个数一一对应。如果变量值数组只有1个,则系统认为所有手机号码的变量值都相同。</p> </td> </tr> <tr> <td style="width:100px"> <p>serviceID</p> </td> <td style="width:60px"> <p>String</p> </td> <td style="width:50px"> <p>可选</p> </td> <td style="width:135px"> <p>123</p> </td> <td> <p>服务子号,可根据它来区分不同互动业务(子号位长度不能超过3位)。</p> </td> </tr> <tr> <td style="width:100px"> <p>arrangeDate</p> </td> <td style="width:60px"> <p>String</p> </td> <td style="width:50px"> <p>可选</p> </td> <td style="width:135px">&nbsp;</td> <td> <p>短信安排发送时间,不填短信为立即发送。格式:yyyyMMddHHmmss</p> <p>说明: 这个参数传过来时为String类型,短信到了该时间点会开始排队发送,具体发送时间要视当时平台短信发送量而定。</p> </td> </tr> <tr> <td style="width:100px"> <p>expireDate</p> </td> <td style="width:60px"> <p>String</p> </td> <td style="width:50px"> <p>可选</p> </td> <td style="width:135px">&nbsp;</td> <td> <p>过期时间,当时间超过该时间将不再发送。若不填该字段将没有过期时间。</p> <p>格式:yyyyMMddHHmmss</p> <p>说明: 这个参数传过来时为String类型。</p> </td> </tr> </tbody> </table> <p>说明: 如下为测试环境的公共短信模板及变量,在开发调试阶段可以使用它们来进行调试,注意生产上线后,要替换为生产实际的短信模板及变量。以下模板仅有一个全变量,所以发送短信内容传sms_content变量。如下所示:</p> <table> <caption>&nbsp;</caption> <thead> <tr> <th>模版编号</th> <th>变量</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td> <p>otp_00000005685</p> </td> <td> <p>code</p> </td> <td> <p>交易类短信</p> </td> </tr> <tr> <td> <p>fwm_00000005686</p> </td> <td> <p>sms_content</p> </td> <td> <p>服务类短信</p> </td> </tr> <tr> <td> <p>yxm_00000005687</p> </td> <td> <p>sms_content</p> </td> <td> <p>营销类短信</p> </td> </tr> </tbody> </table> <p><strong>3.2 响应参数</strong></p> <table> <caption>&nbsp;</caption> <thead> <tr> <th>名称</th> <th>类型</th> <th>示例</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td> <p>公共响应参数</p> </td> <td>&nbsp;</td> <td>&nbsp;</td> <td> <p>详细定义参见&ldquo;公共响应参数&rdquo;部分。</p> </td> </tr> <tr> <td> <p>successList</p> </td> <td> <p>List</p> </td> <td>&nbsp;</td> <td> <p>处理成功的记录,successList里面每个对象都是Json对象,属性见下表。</p> </td> </tr> <tr> <td> <p>failList</p> </td> <td> <p>List</p> </td> <td>&nbsp;</td> <td> <p>处理失败的记录,failList里面每个对象都是Json对象,属性见下表。</p> </td> </tr> </tbody> </table> <p>successList和failList属性</p> <table> <caption>&nbsp;</caption> <thead> <tr> <th>属性</th> <th>类型</th> <th>示例</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td> <p>requestID</p> </td> <td> <p>String</p> </td> <td>&nbsp;</td> <td> <p>发送端定义的请求ID,参见&ldquo;请求参数&rdquo;。</p> </td> </tr> <tr> <td> <p>messageID</p> </td> <td> <p>String</p> </td> <td>&nbsp;</td> <td> <p>短信平台接纳后产生的唯一ID,若出现错误则返回-1。</p> </td> </tr> <tr> <td> <p>code</p> </td> <td> <p>String</p> </td> <td>0</td> <td> <p>结果编号,若成功则返回0 ;不成功则返回非零。</p> </td> </tr> <tr> <td> <p>msg</p> </td> <td> <p>String</p> </td> <td>&nbsp;</td> <td> <p>结果描述,若成功则是。</p> </td> </tr> </tbody> </table> <p><strong>3.3 请求示例</strong></p> <p>https://apitest.xiaoxi.pingan.com.cn/rest/msg?method=sendsms&amp;appid=680BB7E2B5F04F54E0537CE21F0A1D88&amp;timestamp=20170630161054&amp;sign=E0AA7BF266B9BADFF436D62A2D227A88&amp;templateId=fwm_00000000722&amp;paramKeys=sms_content&amp;paramValues=[&quot;短信发送内容&quot;]&amp;mobileNo=18820222220&amp;requestId=1000&amp;extend=这是一个扩展字段&amp;version=1.0</p> <p><strong>用JAVA版本的SDK实现</strong></p> <table> <caption>&nbsp;</caption> <tbody> <tr> <td> <ul> <li><strong>创建短信发送客户端,输入URL, 应用编号, 密钥</strong></li> </ul> <p>MSGOMCPClient msgomcpClient = new MSGOMCPClient(&quot;http://apitest.xiaoxi.pingan.com.cn/rest&quot;, &quot;52FC69100A311528E0537CE21F0A7CE9&quot;, &quot; E0AA7BF266B9BADFF436D62A2D227A88&quot;);</p> <ul> <li><strong>设置发送内容,模板,唯一编号,手机号码,变量,扩展字段等</strong></li> </ul> <p>SmsSendContent smsSendContent = new SmsSendContent(&quot;fwm_00000000722&quot;);</p> <p>smsSendContent.setRequestId(&quot;201704201512000&quot;);</p> <p>smsSendContent.setMobileNo(&quot;18820222220&quot;);</p> <p>smsSendContent.setParamKeys(&quot;sms_content&quot;});</p> <p>smsSendContent.setParamValues(&quot;短信发送内容&quot;);</p> <p>smsSendContent.setExtend(&quot;这是一个扩展字段&quot;);</p> <ul> <li><strong>发送短信</strong></li> </ul> <p>SmsSendResult result = msgomcpClient.sendsms(smsSendContent);</p> <p>System.out.println(JSONObject.fromObject(result));</p> </td> </tr> </tbody> </table> <ul> <li><strong>响应示例 (</strong>返回JSON格式<strong>)</strong></li> </ul> <p>{</p> <p>&quot;code&quot;: &quot;000000&quot;,</p> <p>&quot;msg&quot;: &quot;成功&quot;,</p> <p>&quot;appid&quot;: &quot;52FC69100A311528E0537CE21F0A7CE9&quot;,</p> <p>&quot;extend&quot;: &quot;这是一个扩展字段&quot;,</p> <p>&quot;expiretime&quot;: &quot;20170630164054&quot;,</p> <p>&quot;token&quot;: &quot;E0AA7BF266B9BADFF436D62A2D227A88&quot;,</p> <p>&quot;failList&quot;: [],</p> <p>&quot;successList&quot;: [</p> <p>{</p> <p>&quot;code&quot;: &quot;0&quot;,</p> <p>&quot;msg&quot;: &quot;&quot;,</p> <p>&quot;requestID&quot;: &quot;1000&quot;,</p> <p>&quot;messageID&quot;: &quot;2002790572&quot;</p> <p>}</p> <p>]</p> <p>}</p> <ul> <li><strong>异常示例 (</strong>返回JSON格式<strong>)</strong></li> </ul> <p>{</p> <p>&quot;code&quot;: &quot;000000&quot;,</p> <p>&quot;msg&quot;: &quot;成功&quot;,</p> <p>&quot;appid&quot;: &quot;52FC69100A311528E0537CE21F0A7CE9&quot;,</p> <p>&quot;extend&quot;: &quot;这是一个扩展字段&quot;,</p> <p>&quot;expiretime&quot;: &quot;20170630164054&quot;,</p> <p>&quot;token&quot;: &quot;E0AA7BF266B9BADFF436D62A2D227A88&quot;,</p> <p>&quot;failList&quot;: [</p> <p>{</p> <p>&quot;code&quot;: &quot;1022&quot;,</p> <p>&quot;msg&quot;: &quot;手机号码没有对应的运营商&quot;,</p> <p>&quot;requestID&quot;: &quot;1000&quot;,</p> <p>&quot;messageID&quot;: &quot;-1&quot;</p> <p>}</p> <p>],</p> <p>&quot;successList&quot;: []</p> <p>}</p> <p><strong>4. 短信发送结果查询</strong></p> <ul> <li><strong>场景描述</strong></li> </ul> <p>查询短信发送结果,返回未经查询过的短信发送结果。每次最多返回1000条记录。</p> <ul> <li><strong>接口消息名称</strong></li> </ul> <p>接口地址:https://api.xiaoxi.pingan.com.cn/rest/msg</p> <p>方法:querySmsResult</p> <p>发起方:关联系统</p> <p>接收方:消息云平台</p> <p>发送类型:<strong>POST</strong></p> <p><strong>4.1 请求参数</strong></p> <p>无</p> <p><strong>4.2 响应参数</strong></p> <table> <caption>&nbsp;</caption> <thead> <tr> <th>名称</th> <th>类型</th> <th>示例</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td> <p>公共响应参数</p> </td> <td>&nbsp;</td> <td>&nbsp;</td> <td> <p>详细定义参见&ldquo;公共响应参数&rdquo;部分。</p> </td> </tr> <tr> <td> <p>results</p> </td> <td> <p>List</p> </td> <td>&nbsp;</td> <td> <p>results里面每个对象都是Json对象,属性见下表。</p> </td> </tr> </tbody> </table> <p>results属性</p> <table> <caption>&nbsp;</caption> <thead> <tr> <th style="width:138px">属性</th> <th style="width:184px">类型</th> <th style="width:80px">示例</th> <th style="width:343px">说明</th> </tr> </thead> <tbody> <tr> <td style="width:138px"> <p>RequestID</p> </td> <td style="width:184px"> <p>String</p> </td> <td style="width:80px">&nbsp;</td> <td style="width:343px"> <p>业务系统请求发送的ID号。</p> </td> </tr> <tr> <td style="width:138px"> <p>MessageID</p> </td> <td style="width:184px"> <p>String</p> </td> <td style="width:80px">&nbsp;</td> <td style="width:343px"> <p>短信平台接纳后产生的唯一ID。</p> </td> </tr> <tr> <td style="width:138px"> <p>ReportTime</p> </td> <td style="width:184px"> <p>String</p> </td> <td style="width:80px">&nbsp;</td> <td style="width:343px"> <p>收到Report的时间。</p> <p>返回时短信平台已把Date类型按yyyyMMddHHmmss格式转化为String类型。</p> </td> </tr> <tr> <td style="width:138px"> <p>ReportResultID</p> </td> <td style="width:184px"> <p>String</p> </td> <td style="width:80px">&nbsp;</td> <td style="width:343px"> <p>Report的结果ID,0表示成功,非零表示失败。</p> </td> </tr> <tr> <td style="width:138px"> <p>ReportResultDescription</p> </td> <td style="width:184px"> <p>String</p> </td> <td style="width:80px">&nbsp;</td> <td style="width:343px"> <p>Report结果的描述。</p> </td> </tr> <tr> <td style="width:138px"> <p>TotalNumber</p> </td> <td style="width:184px"> <p>String</p> </td> <td style="width:80px">&nbsp;</td> <td style="width:343px"> <p>短信因内容超长而被拆分成多条短信,这个字段标明被拆分为多少条短信。返回1则表示未被拆分。</p> </td> </tr> </tbody> </table> <p><strong>4.3 请求示例</strong></p> <p>https://api.xiaoxi.pingan.com.cn/rest/msg?method=querySmsResult&amp;appid=52FC69100A311528E0537CE21F0A7CE9&times;tamp=20170420151201&amp;sign=FF15310D72A2B89AF16CB666B1838089&amp;version=1.0</p> <p><strong>用JAVA版本的SDK实现</strong></p> <table> <caption>&nbsp;</caption> <tbody> <tr> <td> <ul> <li><strong>创建短信发送客户端,输入URL, 应用编号, 密钥</strong></li> </ul> <p>MSGOMCPClient msgomcpClient = new MSGOMCPClient(&quot;https:// api.xiaoxi.pingan.com.cn/rest&quot;,&quot;52FC69100A311528E0537CE21F0A7CE9&quot;,&quot;B02A0278E6B98DEC70DFA4FC7EFE1C03&quot;);</p> <ul> <li><strong>查询短信发送状态报告,输入参数为extend</strong></li> </ul> <p>SmsQueryResult querySmsResult = msgomcpClient.querySmsResult(&quot;扩展字段&quot;);</p> <p>System.out.println(JSONObject.fromObject(querySmsResult));</p> </td> </tr> </tbody> </table> <ul> <li><strong>响应示例 (</strong>返回JSON格式<strong>)</strong></li> </ul> <p>{&quot;appid&quot;:&quot;52FC69100A311528E0537CE21F0A7CE9&quot;,&quot;code&quot;:&quot;000000&quot;,&quot;expiretime&quot;:&quot;20170420154054&quot;,&quot;extend&quot;:&quot;扩展字段&quot;,&quot;msg&quot;:&quot;成功&quot;,&quot;results&quot;:[{&quot;messageID&quot;:&quot;1005764163&quot;,&quot;reportResultDescription&quot;:&quot;正常&quot;,&quot;reportResultID&quot;:&quot;0&quot;,&quot;reportTime&quot;:&quot;20170420151155&quot;,&quot;requestID&quot;:&quot;201704201511530&quot;,&quot;totalNumber&quot;:&quot;1&quot;}],&quot;token&quot;:&quot;FF15310D72A2B89AF16CB666B1838089&quot;}</p> <ul> <li><strong>异常示例 (</strong>返回JSON格式<strong>)</strong></li> </ul> <p>{&quot;appid&quot;:&quot;52FC69100A311528E0537CE21F0A7CE9&quot;,&quot;code&quot;:&quot;000000&quot;,&quot;expiretime&quot;:&quot;20170420154054&quot;,&quot;extend&quot;:&quot;扩展字段&quot;,&quot;msg&quot;:&quot;成功&quot;,&quot;results&quot;:[{&quot;messageID&quot;:&quot;1005764163&quot;,&quot;reportResultDescription&quot;:&quot;用户原因:手机状态不正确(关机、不在服务区、停机等)&quot;,&quot;reportResultID&quot;:&quot;4&quot;,&quot;reportTime&quot;:&quot;20170420151155&quot;,&quot;requestID&quot;:&quot;201704201511530&quot;,&quot;totalNumber&quot;:&quot;1&quot;}],&quot;token&quot;:&quot;FF15310D72A2B89AF16CB666B1838089&quot;}</p> <p><strong>5. 上行回复短信结果查询</strong></p> <ul> <li><strong>场景描述</strong></li> </ul> <p>查询用户回复的上行短信发送结果,返回未经查询过的短信发送结果。每次最多返回1000条记录。</p> <ul> <li><strong>接口消息名称</strong></li> </ul> <p>接口地址:https://api.xiaoxi.pingan.com.cn/rest/msg</p> <p>方法:fetchNewSms</p> <p>发起方:关联系统</p> <p>接收方:消息云平台</p> <p>发送类型:<strong>POST</strong></p> <p><strong>5.1 请求参数</strong></p> <p>无</p> <p><strong>5.2 响应参数</strong></p> <table> <caption>&nbsp;</caption> <thead> <tr> <th>名称</th> <th>类型</th> <th>示例</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td> <p>公共响应参数</p> </td> <td>&nbsp;</td> <td>&nbsp;</td> <td> <p>详细定义参见&ldquo;公共响应参数&rdquo;部分。</p> </td> </tr> <tr> <td> <p>results</p> </td> <td> <p>List</p> </td> <td>&nbsp;</td> <td> <p>results里面每个对象都是Json对象,属性见下表。</p> </td> </tr> </tbody> </table> <p>results属性</p> <table> <caption>&nbsp;</caption> <thead> <tr> <th>属性</th> <th>类型</th> <th>示例</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td> <p>serviceID</p> </td> <td> <p>String</p> </td> <td>&nbsp;</td> <td> <p>服务子号。可根据服务子号区分不同互动业务(子号位长度不能超过3位)。</p> </td> </tr> <tr> <td> <p>mobileNo</p> </td> <td> <p>String</p> </td> <td>&nbsp;</td> <td> <p>用户的手机号。</p> </td> </tr> <tr> <td> <p>content</p> </td> <td> <p>String</p> </td> <td>&nbsp;</td> <td> <p>用户发送的短信内容。</p> </td> </tr> <tr> <td> <p>receiveDate</p> </td> <td> <p>String</p> </td> <td>&nbsp;</td> <td> <p>用户回复短信到达平台时间。</p> </td> </tr> </tbody> </table> <p><strong>5.3 请求示例</strong></p> <p>http://apitest.xiaoxi.pingan.com.cn/rest/msg?method=fetchNewSms&amp;appid=52FC69100A311528E0537CE21F0A7CE9&times;tamp=20170821110720&amp;sign=21CF5D93269209B1E011F917CBD94508</p> <p><strong>用JAVA版本的SDK实现</strong></p> <table> <caption>&nbsp;</caption> <tbody> <tr> <td> <ul> <li><strong>创建短信发送客户端,输入URL, 应用编号, 密钥</strong></li> </ul> <p>MSGOMCPClient msgomcpClient = new MSGOMCPClient(&quot;https://apitest.xiaoxi.pingan.com.cn/rest&quot;,</p> <p>&quot;52FC69100A311528E0537CE21F0A7CE9&quot;,&quot;E0AA7BF266B9BADFF436D62A2D227A88&quot;);</p> <ul> <li><strong>查询上行回复短信结果状态报告,输入参数为extend</strong></li> </ul> <p>SmsQueryResult fetchNewSms = msgomcpClient.fetchNewSms (&quot;扩展字段&quot;);</p> <p>System.out.println(JSONObject.fromObject(fetchNewSms));</p> </td> </tr> </tbody> </table> <ul> <li><strong>响应示例 (</strong>返回JSON格式<strong>)</strong></li> </ul> <p>{</p> <p>&quot;code&quot;: &quot;000000&quot;,</p> <p>&quot;msg&quot;: &quot;成功&quot;,</p> <p>&quot;appid&quot;: &quot;52FC69100A311528E0537CE21F0A7CE9&quot;,</p> <p>&quot;extend&quot;: &quot;&quot;,</p> <p>&quot;expiretime&quot;: &quot;20170821112636&quot;,</p> <p>&quot;token&quot;: &quot;8C48538D348550D6B164E5B8ECC4A372&quot;,</p> <p>&quot;results&quot;: [</p> <p>{</p> <p>&quot;serviceID&quot;: &quot;12&quot;,</p> <p>&quot;mobileNo&quot;: &quot;13900139003&quot;,</p> <p>&quot;content&quot;: &quot;TD&quot;,</p> <p>&quot;receiveDate&quot;: &quot;20170818103452&quot;</p> <p>}</p> <p>]</p> <p>}</p> <ul> <li><strong>异常示例 (</strong>返回JSON格式<strong>)</strong></li> </ul> <p>{</p> <p>&quot;appid&quot;: &quot;52FC69100A311528E0537CE21F0A7CE9&quot;,</p> <p>&quot;code&quot;: &quot;111004&quot;,</p> <p>&quot;expiretime&quot;: &quot;&quot;,</p> <p>&quot;extend&quot;: &quot;&quot;,</p> <p>&quot;msg&quot;: &quot;签名失败&quot;,</p> <p>&quot;token&quot;: &quot;&quot;</p> <p>}</p> <p><strong>附录</strong></p> <p><strong>接口返回码</strong></p> <table> <caption>&nbsp;</caption> <thead> <tr> <th>返回码</th> <th>含义</th> <th>备注</th> </tr> </thead> <tbody> <tr> <td> <p>000000</p> </td> <td> <p>成功</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>110001</p> </td> <td> <p>查询无数据返回</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>110002</p> </td> <td> <p>必填参数不能为空,或传入的参数名大小写不匹配</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>110003</p> </td> <td> <p>网络错误</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>110004</p> </td> <td> <p>系统内部错误</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>110006</p> </td> <td> <p>HTTP请求方法不支持</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>111001</p> </td> <td> <p>当前API方法名method为空或不存在</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>111002</p> </td> <td> <p>appid应用不存在或已停用</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>111003</p> </td> <td> <p>timestamp不能为空且格式必须为yyyyMMddHHmmss</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>111004</p> </td> <td> <p>签名失败</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>111005</p> </td> <td> <p>Sign不能为空</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>111006</p> </td> <td> <p>Timestamp跟当前服务器时间相差不能超过10分钟</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>111007</p> </td> <td> <p>时间格式必须为yyyyMMddHHmmss</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>111008</p> </td> <td> <p>不是有效的JSON格式</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>113001</p> </td> <td> <p>手机号码格式不正确</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>113002</p> </td> <td> <p>参数组数量必须与手机数量相同</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>113003</p> </td> <td> <p>单个请求发送的手机号码不能超过200个</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>113005</p> </td> <td> <p>业务系统ID为空,拒绝处理!</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>113006</p> </td> <td> <p>业务系统ID不存在,或已停用,拒绝处理!</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>113007</p> </td> <td> <p>客户端业务系统自定的请求号为空</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>113008</p> </td> <td> <p>客户端业务系统自定的请求号RequestID不是long类型</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>113009</p> </td> <td> <p>客户端业务系统自定的请求号RequestID长度大于19,长度最大为19</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>113010</p> </td> <td> <p>没有所需要的模版</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>113011</p> </td> <td> <p>短信过期</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>113012</p> </td> <td> <p>没有要发送的手机号码</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>113013</p> </td> <td> <p>找不到参数值paramValues</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>113014</p> </td> <td> <p>参数值个数跟key的个数不匹配</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>113015</p> </td> <td> <p>参数值列表个数跟手机号码个数不匹配</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>113016</p> </td> <td> <p>来自客户端业务系统的手机号为空</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>113017</p> </td> <td> <p>接收消息手机长度不合法</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>113018</p> </td> <td> <p>接收消息手机号码有非法字符</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>113019</p> </td> <td> <p>短信内容重复发送</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>113020</p> </td> <td> <p>客户端业务系统自定的请求号RequestID个数跟手机号码数量不匹配</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>113021</p> </td> <td> <p>模板不存在或未激活</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>113022</p> </td> <td> <p>paramKeys和paramValues必须同时有值</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>113023</p> </td> <td> <p>普通短信和国际短信发送失败</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>113024</p> </td> <td> <p>国际号码必须以00开头</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>113025</p> </td> <td> <p>没有对应的发送类型,请确定是普通短信、OTP短信还是国际短信</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>113026</p> </td> <td> <p>OTP短信templateId必须以&rdquo;otp&rdquo;作为前缀</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>113040</p> </td> <td> <p>{0}条试用短信已用完,请联系客户经理</p> </td> <td>{0}表示具体的条数</td> </tr> <tr> <td> <p>113041</p> </td> <td> <p>手机:{0}不在白名单内,请联系客户经理</p> </td> <td>{0}表示具体的手机号码</td> </tr> <tr> <td> <p>113042</p> </td> <td> <p>试用短信不够本次发送,请减少要发送的手机号码数量</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>113043</p> </td> <td> <p>短时间内发送频次太高</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>113044</p> </td> <td> <p>serviceID子号只能为数字格式且长度不能超过3位</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>1001</p> </td> <td> <p>无效的&lt;%字段名称%&gt;</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>1002</p> </td> <td> <p>短信内容超过限制</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>1003</p> </td> <td> <p>传入的tag不全</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>1004</p> </td> <td> <p>发送者为空</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>1005</p> </td> <td> <p>发送系列号为空</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>1006</p> </td> <td> <p>没有所需要的模版</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>1007</p> </td> <td> <p>模版内容为空</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>1008</p> </td> <td> <p>输入模版变量不全</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>1009</p> </td> <td> <p>输入模版变量值过长</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>1010</p> </td> <td> <p>不正确的虚拟用户&lt;%虚拟用户名称%&gt;</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>1011</p> </td> <td> <p>该虚拟用户&lt;%虚拟用户名称%&gt;无权调用模板&lt;%模板编号%&gt;:&lt;%模板名称%&gt;</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>1012</p> </td> <td> <p>该模板不可用&lt;%不可用原因%&gt;</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>1013</p> </td> <td> <p>不能发送该内容的信息</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>1014</p> </td> <td> <p>短信过期</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>1015</p> </td> <td> <p>用户拒绝该短信</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>1016</p> </td> <td> <p>短信下发超过最大重发次数</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>1017</p> </td> <td> <p>接收消息手机为空或长度不够</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>1018</p> </td> <td> <p>接收消息手机号码有非法字符</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>1019</p> </td> <td> <p>移动的手机长度为11</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>1020</p> </td> <td> <p>其它错误</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>1021</p> </td> <td> <p>联通的手机长度为11</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>1022</p> </td> <td> <p>输入的手机没有对应的运营商</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>1023</p> </td> <td> <p>信息已处理</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>1024</p> </td> <td> <p>安排发送时间过期</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>1030</p> </td> <td> <p>二次确认不通过</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>1031</p> </td> <td> <p>linkID没有下行模板</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>1033</p> </td> <td> <p>虚拟用户为空</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>1034</p> </td> <td> <p>超出最大发送条数</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>1035</p> </td> <td> <p>短信内容为空</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>118001</p> </td> <td> <p>签名因子为空或不正确</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>118002</p> </td> <td> <p>电话号码为空或不正确</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>118003</p> </td> <td> <p>电话号码格式不正确</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>118004</p> </td> <td> <p>验证码为空或不正确</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>118005</p> </td> <td> <p>验证码格式不正确</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>118006</p> </td> <td> <p>验证码发送失败</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>118007</p> </td> <td> <p>验证码校验失败或验证码已过期</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>118008</p> </td> <td> <p>签名因子有效长度为1-8</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>118009</p> </td> <td> <p>签名因子格式不正确(仅允许数字或字母,有效长度为1-100),以逗号分隔</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>118010</p> </td> <td> <p>策略有效长度为1-50</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>118011</p> </td> <td> <p>策略格式不正确(仅非中文字符,有效长度为1-50),以逗号分隔</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>210000</p> </td> <td> <p>查询短信企业下行汇总错误(三天前)</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>210001</p> </td> <td> <p>查询短信企业下行汇总错误(三天内)</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>210002</p> </td> <td> <p>查询短信下行企业汇总,出现异常</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>210003</p> </td> <td> <p>日期不能为空</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>210004</p> </td> <td> <p>日期格式不正确</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>210005</p> </td> <td> <p>开始时间不能大于结束时间</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>210006</p> </td> <td> <p>只能查询3天前的数据</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>210007</p> </td> <td> <p>只能查询3天内的数据</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>210008</p> </td> <td> <p>type值只能是true或者false</p> </td> <td>&nbsp;</td> </tr> <tr> <td> <p>210009</p> </td> <td> <p>该应用无权限查询</p> </td> <td>&nbsp;</td> </tr> </tbody> </table>
以上内容是否解决了您的问题?
请补全提交信息!
咨询·建议

电话咨询

400-151-8800

邮件咨询

cloud@pingan.com

在线客服

工单支持

解决云产品相关技术问题