創瑞通訊平臺(老):用戶登錄
售前咨詢:400-006-0086轉1 客服QQ:400-006-0086 投訴電話:400-006-0086轉3
創瑞云通訊(新):用戶注冊 | 用戶登錄 | 常見問題 | 客服中心
  • 1
  • 2
  • 3
1. 短信接口文檔

1.1 短信接口分類

1、用戶自寫短信內容發送短信,適合:會員群發通知、會員營銷群發等,有人工審核 ;

2、通過綁定短信模板發送短信,適合:驗證碼、訂單短信等觸發類短信,可以免審下發 ;

3、獲取手機用戶的短信上行。

1.2 短信接口主要功能

短信接口支持中國移動、中國聯通、中國電信以及國內虛擬運營商所屬的全國手機號碼。國外手機可轉至國際短信查看詳情。

1.3 短信接口支持手機號碼情況

√ 用戶自寫短信內容,適合:會員群發通知、 會員營銷群發 等;

√ 單發或群發;

√ 支持行業及廣告營銷類內容;

√ 支持定時發送短信;

√ 小規模數量免審自動下發。

√ 無人工審核 。

1.4 短信接口請求方式

用戶通過HTTP的POST方式提交短信發送請求。編碼采用UTF-8編碼。

1.5 短信提交地址

環境 HTTP請求地址
正式環境 聯系客服獲取接口請求地址

1.6 參數定義

序號 參數 說明
1 name 必填參數。用戶賬號
2 pwd 必填參數。(登陸web平臺:基本資料中的接口密碼)
3 content 必填參數。發送內容(1-500 個漢字,建議300字符內)UTF-8編碼
4 mobile 必填參數。手機號碼。多個以英文逗號隔開
5 stime 可選參數。(發送時間,填寫時已填寫的時間發送,不填時為當前時間發送,秒到)
6 sign 必填參數。用戶簽名。(建議聯系銷售進行后臺綁定)
7 type 必填參數。固定值 pt
8 extno 可選參數,(擴展碼,用戶定義擴展碼,只能為數字,如需要擴展不同簽名,需要幫擴展的號碼和對應的簽名報給客服)

1.7 短信提交響應

用戶短信通過http請求提交到服務器后,服務器返回響應碼,響應碼的格式如下:code,sendid,invalidcount,successcount,blackcount,msg

1.7.1格式說明

短信提交響應為英文逗號隔開的一行數據,狀態,發送編號,無效號碼數,成功提交數,黑名單數和消息,無論發送的號碼是多少,一個發送請求只返回一個sendid,如果響應的狀態不是"0",則只有狀態和消息。

1.7.2示例

提交成功

0, 20140821110353234137876543,0,500,0,提交成功

20140821110353234137876543為返回的sendid,這個狀態供報告匹配時使用。

1.7.3 響應狀態值說明

代碼 說明
0 提交成功
1 含有敏感詞匯
2 含有敏感詞匯
3 沒有號碼
4 包含sql語句
10 賬號不存在
11 賬號注銷
12 賬號停用
13 IP鑒權失敗
14 格式錯誤
-1 系統異常

1.8短信發送例子

http://聯系客服獲取接口請求地址?name=test&pwd=112345&content=testmsg&mobile=18266878877,18655555555&stime=2012-08-01 8:20:23&sign=testsign&type=pt&extno=

2. 賬戶余額接口

2.1 接口地址

聯系客服獲取接口請求地址

2.2 參數定義

序號 參數 說明
1 name 必填參數。用戶賬號
2 pwd 必填參數。用戶密碼
3 type 必填參數。固定值 balance

2.3 提交響應

code為獲取狀態,balance是用戶余額。

2.4 提交響應值

代碼 說明
0 提交成功
10 賬戶不存在
11 賬號注銷
12 賬號停用
13 IP鑒權失敗

2.5 示例

http://聯系客服獲取接口請求地址?name=test&pwd=testpwd&type=balance

3. 狀態報告推送
如果管理員設置用戶賬戶需要狀態報告,并且也配置了賬戶的狀態報告接收地址,則用戶可以接收到其發送短信的狀態報告。用戶側啟動一個HTTP服務用于接收狀態報告,POST方式推送。

3.1 參數定義

序號 參數 說明
1 name MD5(AccessSecret+ random + timestamp)通過MD5消息摘要算法計算的結果,AccessSecret是平臺分配給用戶的開發秘鑰,random是本次請求攜帶的隨機串,timestamp是本次請求攜帶的當前時間戳
2 pwd 接收狀態報告驗證的密碼,可以為空
3 sendid 提交短信時平臺返回的sendid,參見1.2
4 time 報告時間(多個號碼時,是第一個號碼的時間)
5 mobile 當多個號碼狀態相同時 手機號以英文逗號隔開;不同時 為單個手機號碼
6 state 狀態報告數值

3.2 短信提交地址

狀態值(字符串) 說明
DELIVRD 短消息轉發成功
EXPIRED 短消息超過有效期
UNDELIV 短消息是不可達的
UNKNOWN 未知短消息狀態
REJECTD 短消息被短信中心拒絕
DTBLACK 目的號碼是黑名單號碼
ERR:104 系統忙
REJECT 審核駁回
其他 網關內部狀態

3.3 示例

http://聯系客服獲取接口請求地址?name=admin&pwd=12345&sendid=12345&time=2013-08-20 20:11:34&mobile=13900210021&state=DELIVRD

其中,pushUrl為用戶啟動的服務地址。

4. 接收上行短信

4.1 參數定義

序號 參數 說明
1 name 接收信息驗證的用戶名(不是賬戶名),是按照用戶要求配置的名稱,可以為空
2 pwd 接收信息服務需驗證的密碼,可以為空
3 args 手機號、內容、時間、系統擴展碼+自定義擴展碼;以 #@# 分割。(擴展碼可能為空) ,多個上行以#@@# 分割

3.3 示例

http://pushMoUrl?name=admin&pwd=12345&args=13800210021#@#content1#@#2013-08-21 21:20:11#@#008123#@@#13978767656#@#content2#@#2013-08-21 21:20:30#@#008456

本例中 008為系統為該用戶設置的擴展碼,123和另外一個456是提交短信時用戶自己加的自定義擴展碼;即發送時extno=123

系統擴展碼可能變化,如果變化一般長度不變,建議通過長度來截取得到自定義擴展碼

其中,pushUrl為用戶啟動的服務地址。

5. Php短信接口

5.1 請求示例

  
                        	 
                          
<?PHP 
 
    header("Content-Type: text/html; charset=UTF-8");
 
    $flag = 0; 
    $params='';//要post的數據 
    $verify = rand(123456, 999999);//獲取隨機驗證碼     
 
    //以下信息自己填以下
    $mobile='';//手機號
    $argv = array( 
        'name'=>'',     //必填參數。用戶賬號
        'pwd'=>'',     //必填參數。(web平臺:基本資料中的接口密碼)
        'content'=>'短信驗證碼為:'.$verify.',請勿將驗證碼提供給他人。',   //必填參數。發送內容(1-500 個漢字)UTF-8編碼
        'mobile'=>$mobile,   //必填參數。手機號碼。多個以英文逗號隔開
        'stime'=>'',   //可選參數。發送時間,填寫時已填寫的時間發送,不填時為當前時間發送
        'sign'=>'',    //必填參數。用戶簽名。
        'type'=>'pt',  //必填參數。固定值 pt
        'extno'=>''    //可選參數,擴展碼,用戶定義擴展碼,只能為數字
    ); 
    //print_r($argv);exit;
    //構造要post的字符串 
    //echo $argv['content'];
    foreach ($argv as $key=>$value) { 
        if ($flag!=0) { 
            $params .= "&"; 
            $flag = 1; 
        } 
        $params.= $key."="; $params.= urlencode($value);// urlencode($value); 
        $flag = 1; 
    } 
    $url = "聯系客服獲取接口請求地址".$params; //提交的url地址
    $con= substr( file_get_contents($url), 0, 1 );  //獲取信息發送后的狀態
     
    if($con == '0'){
        echo "<script>alert('發送成功!');</script>";
    }else{
        echo "<script>alert('發送失敗!');history.back();</script>";
    }
     
?>




                   	
6. Java短信接口

6.1 請求示例

  
                        	 
                          
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;

/*
功能:		HTTP接口 發送短信

說明:		聯系客服獲取接口請求地址  name=登錄名&pwd=接口密碼&mobile=手機號碼&content=內容&sign=簽名&stime=發送時間&type=pt&extno=自定義擴展碼
*/
public class xioo {
	
	public static void main(String[] args) throws Exception {
		
		// 用戶名
		String name="wbxxx"; 
		// 密碼
		String pwd="0C759A360WWBD5F5E0F5FF9F0597"; 
		// 電話號碼字符串,中間用英文逗號間隔
		StringBuffer mobileString=new StringBuffer("");
		// 內容字符串
		StringBuffer contextString=new StringBuffer("短信內容");
		// 簽名
		String sign="簽名";
		// 追加發送時間,可為空,為空為及時發送
		String stime="";
		// 擴展碼,必須為數字 可為空
		StringBuffer extno=new StringBuffer();
		
        System.out.println(doPost(name, pwd, mobileString, contextString, sign, stime, extno));
    }
	
	/**
	 * 發送短信
	 * 
	 * @param name			用戶名
	 * @param pwd			密碼
	 * @param mobileString	電話號碼字符串,中間用英文逗號間隔
	 * @param contextString	內容字符串
	 * @param sign			簽名
	 * @param stime			追加發送時間,可為空,為空為及時發送
	 * @param extno			擴展碼,必須為數字 可為空
	 * @return				
	 * @throws Exception
	 */
    public static String doPost(String name, String pwd, 
    	StringBuffer mobileString, StringBuffer contextString,
    	String sign, String stime, StringBuffer extno) throws Exception {
    	StringBuffer param = new StringBuffer();
    	param.append("name="+name);
    	param.append("&pwd="+pwd);
    	param.append("&mobile=").append(mobileString);
    	param.append("&content=").append(URLEncoder.encode(contextString.toString(),"UTF-8"));
    	param.append("&stime="+stime);
    	param.append("&sign=").append(URLEncoder.encode(sign,"UTF-8"));
    	param.append("&type=pt");
    	param.append("&extno=").append(extno);
        
        URL localURL = new URL("聯系客服獲取接口請求地址");
        URLConnection connection = localURL.openConnection();
        HttpURLConnection httpURLConnection = (HttpURLConnection)connection;
        
        httpURLConnection.setDoOutput(true);
        httpURLConnection.setRequestMethod("POST");
        httpURLConnection.setRequestProperty("Accept-Charset", "utf-8");
        httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
        httpURLConnection.setRequestProperty("Content-Length", String.valueOf(param.length()));
        
        OutputStream outputStream = null;
        OutputStreamWriter outputStreamWriter = null;
        InputStream inputStream = null;
        InputStreamReader inputStreamReader = null;
        BufferedReader reader = null;
        String resultBuffer = "";
        
        try {
            outputStream = httpURLConnection.getOutputStream();
            outputStreamWriter = new OutputStreamWriter(outputStream);
            
            outputStreamWriter.write(param.toString());
            outputStreamWriter.flush();
            
            if (httpURLConnection.getResponseCode() >= 300) {
                throw new Exception("HTTP Request is not success, Response code is " + httpURLConnection.getResponseCode());
            }
            
            inputStream = httpURLConnection.getInputStream();
            resultBuffer = convertStreamToString(inputStream);
            
        } finally {
            
            if (outputStreamWriter != null) {
                outputStreamWriter.close();
            }
            
            if (outputStream != null) {
                outputStream.close();
            }
            
            if (reader != null) {
                reader.close();
            }
            
            if (inputStreamReader != null) {
                inputStreamReader.close();
            }
            
            if (inputStream != null) {
                inputStream.close();
            }
            
        }

        return resultBuffer;
    }
	
	
	/**
	 * 轉換返回值類型為UTF-8格式.
	 * @param is
	 * @return
	 */
	public static String convertStreamToString(InputStream is) {    
        StringBuilder sb1 = new StringBuilder();    
        byte[] bytes = new byte[4096];  
        int size = 0;  
        
        try {    
        	while ((size = is.read(bytes)) > 0) {  
                String str = new String(bytes, 0, size, "UTF-8");  
                sb1.append(str);  
            }  
        } catch (IOException e) {    
            e.printStackTrace();    
        } finally {    
            try {    
                is.close();    
            } catch (IOException e) {    
               e.printStackTrace();    
            }    
        }    
        return sb1.toString();    
    }

}



                   	
7. C#短信接口

7.1 請求示例

  
                        	 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using System.Net;
using System.IO;
 
/// 
/// 短信發送
/// 
public partial class send : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
StringBuilder sms = new StringBuilder();
sms.AppendFormat("name={0}", "填賬號的登錄名");
sms.AppendFormat("&pwd={0}", "填接口密碼");//登陸平臺,管理中心--基本資料--接口密碼(28位密文);復制使用即可。
sms.AppendFormat("&content={0}", this.TextBox2.Text);
sms.AppendFormat("&mobile={0}", this.TextBox1.Text);
sms.AppendFormat("&sign={0}", "企業簽名");// 公司的簡稱或產品的簡稱都可以
sms.Append("&type=pt");
string resp = PushToWeb("聯系客服獲取接口請求地址", sms.ToString(), Encoding.UTF8);
string[] msg = resp.Split(',');
if (msg[0] == "0")
{
this.Label1.Text = "提交成功:SendID=" + msg[1];
}
else
{
this.Label1.Text = "提交失敗:錯誤信息=" + msg[1];
}
}
private string PushToWeb(string weburl, string data, Encoding encode)
{
byte[] byteArray = encode.GetBytes(data);
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(new Uri(weburl));
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.ContentLength = byteArray.Length;
Stream newStream = webRequest.GetRequestStream();
newStream.Write(byteArray, 0, byteArray.Length);
newStream.Close();
 
//接收返回信息:
HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
StreamReader aspx = new StreamReader(response.GetResponseStream(), encode);
return aspx.ReadToEnd();
}
}




                   	
 
 
汉唐国际苹果