推送狀態與上行
1.1綁定推送地址
客戶需要提供一個可以在公網訪問的http接口地址,由管理員配置到賬戶中。
在返回狀態或上行時,系統會調用該地址,將狀態或上行以xml形式,推送給客戶方,客戶應該獲取整個post內容(而并非某個參數值),來取得xml內容。
c#取得xml內容示例:
StreamReader reader = new StreamReader(Request.InputStream, Encoding.UTF8);
String xmlContent = reader.ReadToEnd();
java取得xml內容示例:
DocumentBuilderFactory buildFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder build=buildFactory.newDocumentBuilder();
Document document=build.parse(request.getInputStream());
php取得xml內容示例:
$raw_post_data = file_get_contents('php://input', 'r');
$doc = new DOMDocument();
$doc->loadXML($raw_post_data);
1.2狀態報告請求參數值
<?xml version="1.0" encoding="utf-8" ?>
<returnsms>
<statusbox>
<mobile>15023239810</mobile>-------------對應的手機號碼
<taskid>1212</taskid>-------------同一批任務ID
<status>10</status>---------狀態報告----10:發送成功,20:發送失敗
<receivetime>2011-12-02 22:12:11</receivetime>-------------接收時間
<errorcode>DELIVRD</errorcode>-上級網關返回值,不同網關返回值不同,僅作為參考
<extno>01</extno>--子號,即自定義擴展號
</statusbox>
<statusbox>
<mobile>15023239811</mobile>
<taskid>1212</taskid>
<status>20</status>
<receivetime>2011-12-02 22:12:11</receivetime>
<errorcode>2</errorcode>
<extno></extno>
</statusbox>
</returnsms>
1.3上行請求參數值
<?xml version="1.0" encoding="utf-8" ?>
<returnsms>
<callbox>
<mobile>15023239810</mobile>-------------對應的手機號碼
<taskid>1212</taskid>-------------同一批任務ID
<content>你好,我不需要</content>---------上行內容
<receivetime>2011-12-02 22:12:11</receivetime>-------------接收時間
<extno>01</extno>----子號,即自定義擴展號
</callbox>
<callbox>
<mobile>15023239811</mobile>
<taskid>1212</taskid>
<content>你好,本次活動路線是怎么的</content>
<receivetime>2011-12-02 22:12:11</receivetime>
<extno>01</extno>
</callbox>
</returnsms>
1.4推送返回說明
如果客戶成功接收狀態或上行,請返回”1”字符串。
如果客戶處理失敗,請返回“error”字符串,系統將會嘗試再次推送。最多嘗試3次。
如果客戶未返回值或返回其它值,當作成功處理。
如果調用時出現網絡異常,則當作失敗,繼續重試。