国际短信API

PaaSoo国际云通讯平台的REST API可以通过HTTPS及HTTP方式请求。为了保证数据的隐私安全,我们强烈建议您使用HTTPS方式请求

调用方式

HTTP GET 请求
请求地址
https://api.paasoo.cn/json
请求示例
https://api.paasoo.cn/json?key=API_KEY&secret=API_SECRET&from=PaaSoo&to=8615884401340&text=Hello+world

请求参数说明

参数 类型 是否必填 描述 示例
key string API账号,用户唯一标识,可在客户端后台获取,妥善保管。 Abcdefgh
secret string API密码,用户唯一密码,可在客户端后台获取,妥善保管。 Abc123EFG123
from string 部分国家支持自定义发件人,也称之为Sender id.字母或数字的字符串,最多11个字符。 PAASOOSMS
to string 发送目标号码,格式为国家区号直接接手机号码,区号和手机号码均不能以0开头。 如马来西亚号码为:01234567891;
国家区号位60;
发送的格式则为: 601234567891。
区号与号码之间去0。
text string 发送内容,需通过URLEncode方式进行UTF-8编码转换。如需简单测试可通过 http://www.url-encode-decode.com/ 进行文本编码转换。 This is test sms from PaaSoo。

响应参数说明

响应示例
成功 : {"status":"0","messageid":"015bd4-d6dfa7-58w"}
失败 : {"status_code":"Missing params.","status":"2"}
参数 描述 示例
messageid 消息ID,每条短信记录的唯一标识。 015bd4-d6dfa7-58w
status 响应状态。提交至PaaSoo云通讯平台的响应状态码。 0 - success:成功
2 - Missing params:缺少必要参数
4 - Invalid credentials:Key或Secret错误
5 - Unauthorized IP:IP限制
6 - Invalid phone number:号码格式错误
7 - Invalid sender id:from参数格式错误
8 - Message bombing detected: 3秒内重复请求
9 - Quota exceeded:欠费或信用额度不足
10 - Throttling error:超过限速
11 - System error
status_code 失败原因描述 Missing params

全球语音验证API

语音服务需要联系客服或是您的账户经理为您定制开通

调用方式

HTTP GET 请求
请求地址
https://api.paasoo.cn/voice
请求示例
https://api.paasoo.cn/voice?key=API_KEY&secret=API_SECRET&from=85299998888&to=8615884401340&lang=zh-cn&text=Hello+world&repeat=1

请求参数说明

参数 类型 是否必填 描述 示例
key string API账号,用户唯一标识,可在客户端后台获取,妥善保管。 Abcdefgh
secret string API密码,用户唯一密码,可在客户端后台获取,妥善保管。 Abc123EFG123
from string 主叫号码,如需自定义请联系技术支持或者您的客户经理。 85299998888
to string 发送目标号码,格式为国家区号直接接手机号码,区号和手机号码均不能以0开头。 如马来西亚号码为:01234567891;
国家区号位60;
发送的格式则为: 601234567891。
区号与号码之间去0。
lang string 接收方接收语音消息的语言 nl-nl, de-de, en-gb, en-us, es-es, fr-fr, ru-ru, zh-cn, en-au, es-mx, es-us, fr-ca, is-is, it-it, ja-jp, ko-kr, pl-pl, pt-br, ro-ro
text string 发送内容,需通过URLEncode方式进行UTF-8编码转换。如需简单测试可通过 http://www.url-encode-decode.com/ 进行文本编码转换。 Your code 1,2,3,4,5
repeat string 消息重复播报,默认一次。 1

响应参数说明

响应示例
成功:{"status":"0","messageid":"4b7368321"}
失败:{"status_code":"Missing params.","status":"2"}
参数 描述
messageid 消息ID,用于对应查找消息的发送状态
status 状态码
0 - success:成功
2 - Missing params:缺少必要参数
4 - Invalid credentials:Key或Secret错误
5 - Unauthorized IP:IP限制
6 - Invalid phone number:号码格式错误
7 - Invalid sender id:from参数格式错误
8 - Message bombing detected: 3秒内重复请求
9 - Quota exceeded:欠费或信用额度不足
10 - Throttling error:超过限速
11 - System error
status_code 失败原因描述

语音内容参数说明

语音的内容可以设置其播报速度和停顿时间。
你可用','分隔符来表示短暂停顿;也可用';'标签来表示短暂停顿;你也可用;标签来改变部分消息内容的语速。
break标签拥有time属性,单位可以是秒(s)和毫秒(ms)。
prosody标签拥有rate属性,值为百分比数值,如:-10%25。
参数 属性 描述 示例
break time 可以根据您个人的需求设置间隔的秒数或是毫秒数。 设置间隔以一秒为:break time="1s"
prosody rate 可以设置语音播放速度的百分比。 例如语速慢10%,那就是-10%25。
以下是使用示例:
1.用','分割:
Hello,your login token is 1, 8, 3, 4, 0.
2.用break标签分割:
hello,your login token is <break time="1s"/>1<break time="500ms"/>8 <break time="500ms"/>3<break time="500ms"/>4<break time="500ms"/>0.
3.用prosody控制语速:
Your login token is <prosody rate="-10%25">1,8,3,4,0<prosody/>.

发送记录查询API

根据消息ID查询发送记录的状态报告

调用方式

HTTP GET 请求
请求地址
https://api.paasoo.cn/dlr
请求示例
https://api.paasoo.cn/dlr?key=API_KEY&secret=API_SECRET&messageid=MESSAGE_ID

请求参数说明

参数 类型 是否必填 描述 示例
key string API账号,用户唯一标识,可在客户端后台获取,妥善保管。 Abcdefgh
secret string API密码,用户唯一密码,可在客户端后台获取,妥善保管。 Abc123EFG123
messageid string 需要查询的消息ID 015bd4-d6dfa7-58w

响应参数说明

响应示例(JSON数组格式)
[{ "type":"dlr",
"messageid":"015bd4-d6dfa7-58w",
"to":"8613527568886",
"status":0,
"drStatus":0,
"drStatuscode":"delivered",
"drErrcode":"0",
"price":0.03
"counts":1
"network":46000
}]
参数 描述
type 结果数据类型为DLR
messageid 需要查询的消息ID
to 发送目标的手机号码
status 发送状态码
0 - success:成功
2 - Missing params:缺少必要参数
4 - Invalid credentials:Key或Secret错误
5 - Unauthorized IP:IP限制
9 - Quota exceeded:欠费或信用额度不足
11 - System error
drStatus 状态报告状态值
0 - 正常状态
400 - 异常状态
drStatuscode 状态报告状态代码
delivered - 短信送达,对应状态值0
accepted - 运营商接收,对应状态值0
rejected - 运营商拒绝,对应状态值400
failed - 发送失败,对应状态值400
unknown - 未知类型错误,对应状态值400
drErrcode 状态报告异常状态错误代码
1 - Uknown-未知错误
2 - 消息无法送达(停机、关机、无信号等)
3 - 号码已停止使用或无效号码
4 - 用户拒收短信
5 - 信息被运营商拒绝
99 - 其他运营商错误(可咨询客服进一步查询了解具体原因)
network 发送号码运营商网络
price 单条计费价格
counts 计费条数

状态报告接收

平台推送状态报告信息到用户指定的回调地址上

回调方式

HTTP GET 请求
回调地址
用户提供回调的接收地址
回调示例
http://USER_CALLBACK_URL?type=dlr&messageid=MESSAGE_ID&to=6588888888&status=0&statuscode=delivered&errcode=1&network=52099

参数说明

参数 描述
type 回调消息类型,状态报告为dlr
messageid 消息ID
to 发送目标的手机号码
status 状态报告状态值
0 - 正常状态
400 - 异常状态
statuscode 状态报告状态代码
delivered - 短信送达,对应状态值0
accepted - 运营商接收,对应状态值0
rejected - 运营商拒绝,对应状态值400
failed - 发送失败,对应状态值400
unknown - 未知类型错误,对应状态值400
errcode 状态报告异常状态错误代码
1 - Uknown-未知错误
2 - 消息无法送达(停机、关机、无信号等)
3 - 号码已停止使用或无效号码
4 - 用户拒收短信
5 - 信息被运营商拒绝
99 - 其他运营商错误(可咨询客服进一步查询了解具体原因)
network 发送号码运营商网络
price 单价计费价格
counts 计费条数

账号余额查询API

查询API帐号所属用户的账户余额

调用方式

HTTP GET 请求
请求地址
https://api.paasoo.cn/balance
请求示例
https://api.paasoo.cn/balance?key=API_KEY&secret=API_SECRET

请求参数说明

参数 类型 是否必填 描述 示例
key string API账号,用户唯一标识,可在客户端后台获取,妥善保管。 Abcdefgh
secret string API密码,用户唯一密码,可在客户端后台获取,妥善保管。 Abc123EFG123

响应参数说明

响应示例
{"balance":"9.77","currency":"EUR"}
参数 描述
balance 当前账户余额
currency 计费货币单位

全球号码格式验证API

查询全球号码有效性及所属运营商等相关信息

调用方式

HTTP GET 请求
请求地址
https://api.paasoo.cn/lookup
请求示例
https://api.paasoo.cn/lookup?key=API_KEY&secret=API_SECRET&number=8615900000000

请求参数说明

参数 类型 是否必填 描述 示例
key string API账号,用户唯一标识,可在客户端后台获取,妥善保管 Abcdefgh
secret string API密码,用户唯一密码,可在客户端后台获取,妥善保管 Abc123EFG123
number string 待验证码手机号国家或区域的国际区号和待验证手机号码 8615900000000

响应参数说明

响应示例
{
"requestId":"20008a-371837-e000",
"number":"8615900000000",
"format":1,
"errorCode":"00",
"cc":"86",
"countryIso":"CN",
"mccmnc":"46000",
"operator":"China Mobile"
}
参数 描述
requestId 消息ID
number 待验证手机号码
format 格式是否正确
0 - 无效号码
1 - 格式正确
errorCode 错误编码
00-调用成功
01-欠费
02-用户名或密码错误
03-号码不存在
04-未知错误
05-号码不能辨别
06-缺少参数
07-白名单限制
cc 待验证码手机号国家或区域的国际区号
countryIso 国家名称缩写(例如 CN)
mccmnc 待验证号码的运营商网络编码
operator 待验证号码的运营商网络名称
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 短信http接口的java代码调用示例
 * 基于Apache HttpClient 4.X
 */
public class JavaSmsApi {
    //编码格式。发送编码格式统一用UTF-8
    private static String ENCODING = "UTF-8";
    //短信发送url
    private static String URI_GET_SEND_SMS = "https://api.paasoo.cn/json";
    //发送记录查询url
    private static String URI_GET_SEND_RECORD = "https://api.paasoo.cn/dlr";
    //余额查询url
    private static String URI_GET_USER_BALANCE = "https://api.paasoo.cn/balance";
    //号码格式验证url
    private static String URI_GET_VALID_NUMBER = "https://api.paasoo.cn/lookup";

    public static void main(String[] args) throws Exception {
        //参数
        String key = "********";
        String secret = "********";
        String from = "********";
        String to = "********";
        String text = "********";;
        String messageid = "********";
	 	String countryCode = "********";
        String nationalNumber = "********";

        /**************** 查短信发送信息调用示例 *****************/
        System.out.println(JavaSmsApi.getSendSms(key, secret, from, to, text));

        /**************** 查发送记录信息调用示例 *****************/
        System.out.println(JavaSmsApi.getSendRecord(key, secret, messageid));

        /**************** 查余额信息调用示例 *****************/
        System.out.println(JavaSmsApi.getUserBalance(key, secret));

        /**************** 号码格式验证调用示例 *****************/
        System.out.println(JavaSmsApi.getValidNumber(key, secret, countryCode, nationalNumber));
    }

    /**
     *短信发送
     *
     * @param key    API帐号
     * @param secret API密码
     * @param from   SenderID
     * @param to     发送目标号码
     * @param text   发送内容
     * @return json  格式字符串
     * @throws Exception
     */

    public static String getSendSms(String key, String secret, String from, String to, String text) throws Exception {
        Map<String, String> params = new HashMap<String, String>();
        params.put("key", key);
        params.put("secret", secret);
        params.put("from", from);
        params.put("to", to);
        params.put("text", text);
        return get(URI_GET_SEND_SMS, params);
    }

    /**
     * 发送记录查询
     *
     * @param key       API帐号
     * @param secret    API密码
     * @param messageid 发送记录消息ID
     * @return
     * @throws Exception
     */
    public static String getSendRecord(String key, String secret, String messageid) throws Exception {
        Map<String, String> params = new HashMap<String, String>();
        params.put("key", key);
        params.put("secret", secret);
        params.put("messageid", messageid);
        return get(URI_GET_SEND_RECORD, params);
    }

    /**
     * 余额查询
     *
     * @param key    API帐号
     * @param secret API密码
     * @return
     * @throws Exception
     */
    public static String getUserBalance(String key, String secret) throws Exception {
        Map<String, String> params = new HashMap<String, String>();
        params.put("key", key);
        params.put("secret", secret);
        return get(URI_GET_USER_BALANCE, params);
    }

    /**
     *号码格式验证
     *
     * @param key            API帐号
     * @param secret         API密码
     * @param countryCode    待验证手机号码所在国家区号
     * @param nationalNumber 待验证的手机号码,不含国家区号
     * @return
     * @throws Exception
     */
    public static String getValidNumber(String key, String secret, String countryCode, String nationalNumber) throws Exception {
        Map<String, String> params = new HashMap<String, String>();
        params.put("key", key);
        params.put("secret", secret);
        params.put("countryCode", countryCode);
        params.put("nationalNumber", nationalNumber);
        return get(URI_GET_VALID_NUMBER, params);
    }


    /**
     * 基于HttpClient 4.X的通用GET方法
     *
     * @param url       提交的URL
     * @param paramsMap 提交<参数,值>Map
     * @return          提交响应
     */
    public static String get(String url, Map<String, String> paramsMap) throws Exception {
        CloseableHttpClient httpClient = HttpClients.createDefault();
        CloseableHttpResponse response = null;
        InputStream is = null;
        try {
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            for (Map.Entry<String, String> param : paramsMap.entrySet()) {
                NameValuePair pair = new BasicNameValuePair(param.getKey(), param.getValue());
                params.add(pair);
            }
            String str = EntityUtils.toString(new UrlEncodedFormEntity(params, ENCODING));
            HttpGet httpGet = new HttpGet(url + "?" + str);
            response = httpClient.execute(httpGet);
            HttpEntity entity = response.getEntity();
            String result = EntityUtils.toString(entity);
            return result;
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (is != null) {
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (response != null) {
                try {
                    response.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (httpClient != null) {
                try {
                    httpClient.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return null;
    }
}
<?php
	header("Content-Type:text/html;charset=utf-8");

	$key = "xxxxxxxxxxx"; 
	$secret = "xxxxxxxxxxx"; 
	$from = "xxxxxxxxxxx"; 
	$to = "xxxxxxxxxxx"; 
	$text = "xxxxxxxxxxx";
	$messageid = "xxxxxxxxxxx"; 
	$nationalNumber = "xxxxxxxxxxx";
	$countryCode = "xxxxxxxxxxx";
	
	$curl = curl_init();

	/* 设置验证方式 */
	curl_setopt($curl, CURLOPT_HTTPHEADER, array('Accept:text/plain;charset=utf-8', 'Content-Type:application/x-www-form-urlencoded','charset=utf-8'));

	/* 设置返回结果为流 */
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

	/* 设置超时时间 */
	curl_setopt($curl, CURLOPT_TIMEOUT, 10);

	/* 设置通信方式 */
	curl_setopt($curl, CURLOPT_GET, 1);
	curl_setopt($curl, CURLOPT_GETFIELDS);
	curl_setopt($curl, CURLOPT_HEADER, 0); 
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

	// 查短信发送信息调用示例
	$data = array('key'=>$key,'secret'=>$secret,'from'=>$from,'to'=>$to,'text'=>$text);
	$json_data = get_send_sms($curl,$data);
	$array = json_decode($json_data,true);
	echo '<pre>';print_r($array);

	// 查发送记录信息调用示例
	$data = array('key'=>$key,'secret'=>$secret,'messageid'=>$messageid);
	$json_data = get_send_record($curl,$data);
	$array = json_decode($json_data,true);
	echo '<pre>';print_r($array);

	// 查余额信息调用示例
	$data = array('key'=>$key,'secret'=>$secret);
	$json_data = get_user_balance($curl,$data);
	$array = json_decode($json_data,true);
	echo '<pre>';print_r($array);

	// 查余额信息调用示例
	$data = array('key'=>$key,'secret'=>$secret,'countryCode'=>$countryCode,'nationalNumber'=>$nationalNumber);
	$json_data = get_user_balance($curl,$data);
	$array = json_decode($json_data,true);
	echo '<pre>';print_r($array);

	curl_close($curl);
	/***************************************************************************************/

	// 查短信发送信息
	function get_send_sms($curl,$data){
    		curl_setopt($curl, CURLOPT_URL, 'http://api.paasoo.cn/json?’);
    		curl_setopt($curl, CURLOPT_GETFIELDS, http_build_query($data));
    		return curl_exec($ch);
	}

	// 查发送记录信息
	function get_send_record($curl,$data){
    		curl_setopt($curl, CURLOPT_URL, 'http://client.paasoo.cn/api/dlr?’);
    		curl_setopt($curl, CURLOPT_GETFIELDS, http_build_query($data));
    		return curl_exec($ch);
	}

	// 余额查询信息
	function get_user_balance($curl,$data){
    		curl_setopt($curl, CURLOPT_URL, 'http://client.paasoo.cn/api/balance?’);
    		curl_setopt($curl, CURLOPT_GETFIELDS, http_build_query($data));
    		return curl_exec($ch);
	}

	// 号码格式验证
	function get_user_balance($curl,$data){
    		curl_setopt($curl, CURLOPT_URL, 'http://client.paasoo.cn/api/validnumber?’);
    		curl_setopt($curl, CURLOPT_GETFIELDS, http_build_query($data));
    		return curl_exec($ch);
	}
?>
var http = require('http');
var qs = require('querystring');

// 参数
var key = "xxxxxxxxxxx"; 
var secret = "xxxxxxxxxxx"; 
var from = "xxxxxxxxxxx"; 
var to = "xxxxxxxxxxx"; 
var text = "xxxxxxxxxxx";
var messageid = "xxxxxxxxxxx"; 
var countryCode = "xxxxxxxxxxx";
var nationalNumber = "xxxxxxxxxxx";

var api_host = "api.paasoo.cn";
var client_host = "client.paasoo.cn";

// 短信发送url
var uri_get_send_sms = "/json";
// 发送记录查询url
var uri_get_send_sms_record = "/api/dlr";
// 余额查询url
var uri_get_user_balance = "/api/balance";
// 余额查询url
var uri_get_valid_number = "/api/validnumber";

// ****************************** 调用接口示例 ******************************************

// 短信发送调用示例
get_send_sms(uri_get_send_sms, key, secret, from, to, text);
// 发送记录查询调用示例
get_send_sms_record(uri_get_send_sms_record, key, secret, messageid);
// 余额查询调用示例
get_user_balance(uri_get_user_balance, key, secret);
// 号码格式验证调用示例
get_valid_number(uri_get_valid_number, key, secret, countryCode, nationalNumber);

// ****************************** 调用函数 *********************************************

function get_send_sms(uri, key, secret, from, to, text) {
    var get_data = {  
    	'key': key,  
	'secret': secret,
	'from': from,
	'to': to,
	'text': text,
    };
    var content = qs.stringify(get_data);  
    get(uri,content,api_host);
}

function get_send_sms_record(uri, key, secret, messageid){
    var get_data = {  
    	'key': key,  
	'secret': secret,
	'messageid': messageid,
    };  
    var content = qs.stringify(get_data);  
    get(uri,content,client_host);
}

function get_user_balance(uri, key, secret){
    var get_data = {  
    	'key': key,  
	'secret': secret,
    };  
    var content = qs.stringify(get_data);  
    get(uri,content,client_host);
}

function get_valid_number(uri, key, secret, countryCode, nationalNumber){
    var get_data = {  
    	'key': key,  
	'secret': secret,
	'countryCode': countryCode,
	'nationalNumber': nationalNumber,
    };  
    var content = qs.stringify(get_data);  
    get(uri,content,client_host);
}

function get(uri,content,host){
    var options = {  
        host: host,
        port: 80,  
        path: uri,  
        method: 'GET',  
        headers: {  
            'Content-Type': 'application/json'  
        }  
    };
    var req = http.request(options, function(res) {   
               res.setEncoding('utf8'); 
		var resData = "";
               res.on("data",function(data){
                 resData += data;
               });
               res.on("end", function() {
                 callback(null,JSON.parse(resData));
               });  
    });   
}
//项目需要添加System.web引用
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Web;

namespace paasooSmsClient {
    class Program {
        static void Main(string[] args) {
            string key = "********";
            string secret = "********";
            string from = "********";
            string to = "********";
            string text = "********";;
            string messageid = "********";
	     string countryCode = "********";
            string nationalNumber = "********";

	    //短信发送url 
      	     string uri_get_send_sms = "http://api.paasoo.cn/json";
    	    //发送记录查询url
            string uri_get_send_record = "http://client.paasoo.cn/api/dlr";
            //余额查询url 
            string uri_get_user_balance = "http://client.paasoo.cn/api/balance";
    	    //号码格式验证url
            string uri_get_valid_number = "http://client.paasoo.cn/api/validnumber";

            // 参数字符串拼接
            string get_send_sms = "?key=" + key + "&secret=" + secret + "&from=" + from + "&to=" + to + "&text =" + text;
            string get_send_sms_record = "?key=" + key + "&secret=" + secret + "&messageid=" + messageid;
            string get_user_balance = "?key=" + key + "&secret=" + secret;
            string get_valid_number = "?key=" + key + "&secret=" + secret + "&countryCode =" + countryCode + "&nationalNumber =" + nationalNumber;

            // 接口调用示例
            HttpGet(uri_get_send_sms, get_send_sms);
            HttpGet(uri_get_send_record, get_send_sms_record);
            HttpGet(uri_get_user_balance, get_user_balance);
            HttpGet(uri_get_valid_number, get_valid_number);
        }

        public static void HttpGet(string url, string postDataStr) {
            byte[] dataArray = Encoding.UTF8.GetBytes(postDataStr);
            // Console.Write(Encoding.UTF8.GetString(dataArray));
            
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Method = "GET";
            request.ContentType = "application/json";
            request.ContentLength = dataArray.Length;
            //request.CookieContainer = cookie;
            Stream dataStream = request.GetRequestStream();
            dataStream.Write(dataArray, 0, dataArray.Length);
            dataStream.Close();
            try {
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
                String res = reader.ReadToEnd();
	         response.Close();
                reader.Close();
		 Console.Write("\nResponse Content:\n" + res + "\n");
            } catch(Exception e) {
                Console.Write(e.Message + e.ToString());
            }
        }
    }
}
import httplib
import urllib
import json

#服务地址
api_host = "api.paasoo.cn";
client_host = "client.paasoo.cn";
port = 80

// 短信发送url
uri_get_send_sms = "/json";
// 发送记录查询url
uri_get_send_sms_record = "/api/dlr";
// 余额查询url
uri_get_user_balance = "/api/balance";
// 号码格式验证url
uri_get_valid_number = "/api/validnumber";

#调用示例
def get_send_sms(key, secret, from, to, text):
    params = urllib.urlencode({'key': key, 'secret': secret, 'from': from, 'to': to, 'text': text})
    headers = {"Content-type": "application/json", "Accept": "text/plain"}
    conn = httplib.HTTPConnection(api_host, port=port, timeout=30)
    conn.request("GET", uri_get_send_sms, params, headers)
    response = conn.getresponse()
    response_str = response.read()
    conn.close()
    return response_str

def get_send_sms_record(key, secret, messageid):
    params = urllib.urlencode({'key': key, 'secret': secret, 'messageid': messageid})
    headers = {"Content-type": "application/json", "Accept": "text/plain"}
    conn = httplib.HTTPConnection(client_host, port=port, timeout=30)
    conn.request("GET", uri_get_send_sms_record, params, headers)
    response = conn.getresponse()
    response_str = response.read()
    conn.close()
    return response_str

def get_send_sms_record(key, secret):
    params = urllib.urlencode({'key': key, 'secret': secret})
    headers = {"Content-type": "application/json", "Accept": "text/plain"}
    conn = httplib.HTTPConnection(client_host, port=port, timeout=30)
    conn.request("GET", uri_get_user_balance, params, headers)
    response = conn.getresponse()
    response_str = response.read()
    conn.close()
    return response_str

def get_send_sms_record(key, secret, countryCode, nationalNumber):
    params = urllib.urlencode({'key': key, 'secret': secret, 'countryCode': countryCode, 'nationalNumber': nationalNumber})
    headers = {"Content-type": "application/json", "Accept": "text/plain"}
    conn = httplib.HTTPConnection(client_host, port=port, timeout=30)
    conn.request("GET", uri_get_valid_number, params, headers)
    response = conn.getresponse()
    response_str = response.read()
    conn.close()
    return response_str


if __name__ == '__main__':
    
    key = "xxxxxxxxxxx"; 
    secret = "xxxxxxxxxxx"; 
    from = "xxxxxxxxxxx"; 
    to = "xxxxxxxxxxx"; 
    text = "xxxxxxxxxxx";
    messageid = "xxxxxxxxxxx"; 
    countryCode = "xxxxxxxxxxx";
    nationalNumber = "xxxxxxxxxxx";

    #短信发送信息调用示例
    print get_send_sms(key, secret, from, to, text)
    #发送记录信息调用示例
    print get_send_sms_record(key, secret, messageid)
    #余额信息调用示例
    print get_send_sms_record(key, secret)
    #号码格式验证调用示例
    print get_send_sms_record(key, secret, countryCode, nationalNumber)
QQ客服