推送回復短信
功能說明:
開通此接口后,我們將為您實時推送最新的回復短信。您需要提供一個 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
推送參數(shù)
參數(shù)名 | 類型 | 是否必須 | 描述 |
sms_reply | string | 是 | 經(jīng)過 urlencode 編碼的數(shù)據(jù)形式如:sms_reply=urlencode(json) |
推送的數(shù)據(jù)格式:
參數(shù)名=經(jīng)過 urlencode 編碼的數(shù)據(jù)
形式如:
sms_reply=urlencode(json)
服務端推送數(shù)據(jù)形式如下:
curl --data "sms_reply=url_encode_json" http://your_receive_url_address
備注:
接收到數(shù)據(jù)后,請從參數(shù) sms_reply 中取值,取到值使用 urldecode 解碼后為實際 json 格式數(shù)據(jù)處理成功請返回字符串"SUCCESS"或"0",其他返回值將被認為是失敗。該接口失敗重試次數(shù)為 5 次,每次間隔 1 分鐘。
添加簽名字段是為了防止惡意推送,簽名校驗方式如下:把接收到的 json 字段以 key 的字母順序,將值組合起來(簽名字段除外),以英文逗號隔開,形成的字符串和用戶的 apikey 連接,同樣在之間插入英文逗號,得到最終字符串,然后使用 md5 加密轉(zhuǎn)換成 32 位小寫字符,即為簽名字段,簽名字段和接收到的簽名對比,如果一致,說明數(shù)據(jù)來自我們推送,否則可能來自惡意推送。
如以上數(shù)據(jù),把 key 按序排列為,base_extend、extend、id、mobile、reply_time、text,假設用戶的 apikey 為 0000,那么按照以上規(guī)則拼接得到的字符串為:“8888,01,2a70c6bb4f2845da816ea1bfe5732747,15205201314,2014-03-17 22:55:21,收到了,謝謝!,0000”,經(jīng)過md5轉(zhuǎn)換得到32位小寫字符為“393d079e0a00912335adfe46f4a2e10f”
,接收端計算出來的簽名字段和接收到的簽名應當一致,不一致,則數(shù)據(jù)存在問題。
推送 json 參數(shù)
名稱 | 類型 | 描述 |
id | string | 唯一序列號,無特別含義及用途 |
mobile | string | 回復短信的手機號 |
reply_time | string | 回復短信的時間 |
text | text | 回復的短信內(nèi)容 |
extend | string | 您發(fā)送時傳入的擴展子號,未申請擴展功能或者未傳入時為空串 |
base_extend | string | 系統(tǒng)分配的擴展子號 |
_sign | string | 簽名字段 |
其中 json 示例為:
{ "id": "2a70c6bb4f2845da816ea1bfe5732747", "mobile": "15205201314", "reply_time": "2014-03-17 22:55:21", "text": "收到了,謝謝!", "extend": "01", "base_extend": "8888", "_sign": "393d079e0a00912335adfe46f4a2e10f" }