推送回复短信
功能说明:
开通此接口后,我们将为您实时推送最新的回复短信。您需要提供一个 url 地址,接受 http post 请求。
备注:
该接口为高级接口,默认不开放,可以在云片用户后台开启并配置。
HTTP 头信息:
Accept:application/json;charset=utf-8; Content-Type:application/x-www-form-urlencoded;charset=utf-8;
请求
URL:`http://your_receive_url_address` 注意:海外服务器地址 us.yunpian.com 访问方式:POST
推送参数
参数名 | 类型 | 是否必须 | 描述 |
sms_reply | string | 是 | 经过 urlencode 编码的数据形式如:sms_reply=urlencode(json) |
推送的数据格式:
参数名=经过 urlencode 编码的数据
形式如:
sms_reply=urlencode(json)
服务端推送数据形式如下:
curl --data "sms_reply=url_encode_json" http://your_receive_url_address
备注:
接收到数据后,请从参数 sms_reply 中取值,取到值使用 urldecode 解码后为实际 json 格式数据处理成功请返回字符串"SUCCESS"或"0",其他返回值将被认为是失败。该接口失败重试次数为 5 次,每次间隔 1 分钟。
添加签名字段是为了防止恶意推送,签名校验方式如下:把接收到的 json 字段以 key 的字母顺序,将值组合起来(签名字段除外),以英文逗号隔开,形成的字符串和用户的 apikey 连接,同样在之间插入英文逗号,得到最终字符串,然后使用 md5 加密转换成 32 位小写字符,即为签名字段,签名字段和接收到的签名对比,如果一致,说明数据来自我们推送,否则可能来自恶意推送。
如以上数据,把 key 按序排列为,base_extend、extend、id、mobile、reply_time、text,假设用户的 apikey 为 0000,那么按照以上规则拼接得到的字符串为:“8888,01,2a70c6bb4f2845da816ea1bfe5732747,15205201314,2014-03-17 22:55:21,收到了,谢谢!,0000”,经过md5转换得到32位小写字符为“393d079e0a00912335adfe46f4a2e10f”
,接收端计算出来的签名字段和接收到的签名应当一致,不一致,则数据存在问题。
推送 json 参数
名称 | 类型 | 描述 |
id | string | 唯一序列号,无特别含义及用途 |
mobile | string | 回复短信的手机号 |
reply_time | string | 回复短信的时间 |
text | text | 回复的短信内容 |
extend | string | 您发送时传入的扩展子号,未申请扩展功能或者未传入时为空串 |
base_extend | string | 系统分配的扩展子号 |
_sign | string | 签名字段 |
其中 json 示例为:
{ "id": "2a70c6bb4f2845da816ea1bfe5732747", "mobile": "15205201314", "reply_time": "2014-03-17 22:55:21", "text": "收到了,谢谢!", "extend": "01", "base_extend": "8888", "_sign": "393d079e0a00912335adfe46f4a2e10f" }