推送状态报告

语音验证码的状态报告推送分为压缩加密推送和普通推送,其中压缩加密推送可以提高传输安全性以及减轻网络压力,客户选择哪一种推送方式请咨询亿美客服人员。

注意:推送全部采用UTF-8字符集编码。

注意:通过HTTP头传输appId,用户根据APPID进行匹配;

压缩加密推送

数据结构:状态报告的json数据,结构如下表

参数 类型 获取方式 描述
appIdStringHttp头传输用户Appid(必填)
mobileString传输过来的数据是加密后的byte数组手机号(必填)
smsIdString 消息ID(选填)
customSmsIdString 自定义消息ID(选填)
stateString 状态(必填) ,详见本文档《状态报告状态码表》
descString 状态描述(选填)
receiveTimeString 状态报告返回时间(必填)
格式:yyyy-MM-dd HH:mm:ss
submitTimeString 信息提交时间(必填)
格式:yyyy-MM-dd HH:mm:ss
extendedCodeString 扩展码(选填)
表3-4-1

由于客户接受数据为压缩加密后的byte数组,所以客户需要对数据进行解密以及解压缩操作,获取到请求的字节数组之后,进行以下操作:

1、获取appId

  • appId = HTTP.getHeader("appId");
    

2、解密[根据APPID从本地获取密钥secretKey](其中secretKey为特服号秘钥)

  • bytes = bytes = AES.decrypt(bytes, secretKey.getBytes(), 算法);
    

3、解压缩

  • bytes = GZIPUtils.decompress(bytes);
    

4、获取json传数据

  • String  json = new String(bytes, "UTF-8");
    

获取到json数据后,json传为状态报告集合,之后进行业务处理(json数据详细见表3-4-1)

状态报告解密解压后json串示例:

  • [{
         "mobile":"15538850000",
         "smsId":"20170392833833891100",
         "customSmsId":"1553885000011111",
         "state":"DELIVERED",
         "desc":"成功",
         "receiveTime ":"2017-03-15 12:00:00",
         "submitTime":"2017-03-15 12:00:00",
         "extendedCode":"123"
    },{
         "mobile":"15538850001",
         "smsId":"20170392833833891101",
         "customSmsId":"1553885000011112",
         "state":"DELIVERED",
         "desc":"成功",
         "receiveTime ":"2017-03-15 12:00:00",
         "submitTime":"2017-03-15 12:00:00",
         "extendedCode":"123"
    }]
    

普通推送

获取参数名为reports
值为状态报告数据集合的json串

参数 类型 描述
appIdString用户APPID【在Http头中获取】
mobileString手机号(必填)
smsIdString消息ID(选填)
customSmsIdString自定义消息ID(选填)
stateString状态(必填) ,详见本文档《状态报告状态码表》
descString状态描述(选填)
receiveTimeString状态报告返回时间(必填)
格式:yyyy-MM-dd HH:mm:ss
submitTimeString信息提交时间(必填)
格式:yyyy-MM-dd HH:mm:ss
extendedCodeString扩展码(选填)
表3-4-2

状态报告json串示例:

  • [{
          "mobile":"15538850000",
          "smsId":"20170392833833891100",
          "customSmsId":"1553885000011111",
          "state":"DELIVERED",
          "desc":"成功",
          "receiveTime ":"2017-03-15 12:00:00",
          "submitTime":"2017-03-15 12:00:00",
          "extendedCode":"123"
    },{
          "mobile":"15538850001",
          "smsId":"20170392833833891101",
          "customSmsId":"1553885000011112",
          "state":"DELIVERED",
          "desc":"成功",
          "receiveTime ":"2017-03-15 12:00:00",
          "submitTime":"2017-03-15 12:00:00",
          "extendedCode":"123"
    }]
    
    

客户响应信息

      上述推送状态报告信息,包括压缩加密推送和普通推送,客户接收到状态报告和上行之后应给推送方响应,响应规定为英文字符串:success

      如果响应有误或者推送发生异常,视为失败,推送方将重新进行推送,推送频率为10秒后,1分钟后,10分钟后,推送成功即停止,如果仍然推送失败,推送方将放弃推送。

TOP