如何发送系统类通知、群发活动信息

通过本功能您可以批量发送短信。实现订单状态通知、物流通知、活动通知等。
云片后台有手动群发功能,支持发送变量短信(免技术开发,仅对 高级用户开放 )。

一、注册、报备及设置

1、注册云片,完成 资质报备签名报备模板报备
tips:
1)报备可以让产品经理、运营等业务人员完成。
2)开发阶段,建议先关闭 IP白名单,或将服务器IP及本地IP均设置在IP白名单内。
3)为了避免开发调试中,您的手机号被系统防骚扰机制拦截,可以在 测试白名单 填写您的手机号。

二、调通短信接口

阅读文档了解API,下载SDK快速使用。

选择合适的发送接口

API列表
请求地址
特性
批量发送 https://sms.yunpian.com/v2/sms/batch_send.json 批量发送相同内容
批量个性化发送 https://sms.yunpian.com/v2/sms/multi_send.json 批量发送不同内容

批量发送接口

URL:https://sms.yunpian.com/v2/sms/batch_send.json

访问方式:POST,接口支持https及http

参数:

参数名 类型 是否必传 是否默认开放 描述 示例
apikey String 用户唯一标识,在管理控制台获取 9b11127a9701975c734b8aee81ee3526
mobile String 接收的手机号;发送多个手机号请以逗号分隔,一次不要超过1000个; 单号码:15205201314
多号码:15205201314,15205201315
text String 短信内容 您的订单已经发货,请注意查收
extend String 下发号码扩展号,纯数字 001
uid String 该条短信在您业务系统内的ID,如订单号或者短信发送记录流水号 10001
callback_url String 短信发送后将向这个地址推送(运营商返回的)发送报告。
如推送地址固定,建议在"数据推送与获取”做批量设置。
如后台已设置地址,且请求内也包含此参数,将以请求内地址为准
http://yourreceiveurl_address

如需使用"extend"、"uid"参数,可免费向客服申请。

请求示例

  • Java
  • php
  • python
  • C#

/**
 * 批量发送短信,相同内容多个号码,智能匹配短信模板
 *
 * @param apikey 成功注册后登录云片官网,进入后台可查看
 * @param text   需要使用已审核通过的模板或者默认模板
 * @param mobile 接收的手机号,多个手机号用英文逗号隔开
 * @return json格式字符串
 */
public static String batchSend(String apikey, String text, String mobile) {
    Map<String, String> params = new HashMap<String, String>();//请求参数集合
    params.put("apikey", apikey);
    params.put("text", text);
    params.put("mobile", mobile);
    return post("https://sms.yunpian.com/v2/sms/batch_send.json", params);//请自行使用post方式请求,可使用Apache HttpClient
}

// 以下为核心代码部分
$ch = curl_init();
// 必要参数
$apikey = "xxxxxxxxxxx"; //修改为您的apikey(https://www.yunpian.com)登录官网后获取
$mobile = "xxxxxxxxxxx"; //接收的手机号,多个手机号用英文逗号隔开
$text="【云片网】您的验证码是1234";
// 批量发送短信
$data=array('text'=>$text,'apikey'=>$apikey,'mobile'=>$mobile);
curl_setopt ($ch, CURLOPT_URL, 'https://sms.yunpian.com/v2/sms/batch_send.json');
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$json_data = curl_exec($ch);
//解析返回结果(json格式字符串)
$array = json_decode($json_data,true);
echo '<pre>';print_r($array);

# apikey:成功注册后登录云片官网,进入后台可查看
# text:需要使用已审核通过的模板或者默认模板
# mobile:接收的手机号,多个手机号用英文逗号隔开
def send_sms(apikey, text, mobile):
#服务地址
sms_host = "sms.yunpian.com"
#端口号
port = 443
#版本号
version = "v2"
#智能匹配模板短信接口的URI
sms_send_uri = "/" + version + "/sms/batch_send.json"
params = urllib.urlencode({'apikey': apikey, 'text': text, 'mobile':mobile})
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
conn = httplib.HTTPSConnection(sms_host, port=port, timeout=30)
conn.request("POST", sms_send_uri, params, headers)
response = conn.getresponse()
response_str = response.read()
conn.close()
return response_str

static string BatchSend()
{
    // 设置为您的apikey(https://www.yunpian.com可查)
    string apikey = "xxxxxxxxxxxxxxxxxxxxxxx";
    // 发送的手机号,多个用英文逗号隔开
    string mobile = "13812345678,13812345679";
    // 发送内容
    string text = "【云片网】您的验证码是1234";
    // 群发短信请求url
    string url_batch_send_sms = "https://sms.yunpian.com/v2/sms/batch_send.json";
    string data_send_sms = "apikey=" + apikey + "&mobile=" + mobile + "&text=" + text;
    // 请自行使用post方式请求
    return HttpPost(url_batch_send_sms, data_send_sms);
}

部分返回参数

返回参数名 类型 描述
count Integer 成功发送的短信个数
fee Integer 扣费条数,70个字一条,超出70个字时按每67字一条计
fee(国际短信) Double 扣费金额,单位:元,类型:双精度浮点型/double
sid Long(64位) 短信id,多个号码时以该id+各手机号尾号后8位作为短信id。64位整型, 对应Java和C#的Long,不可用int解析

调用成功的返回值示例

{
"total_count": 2,
"total_fee": "0.2000",
"unit": "RMB",
"data": [
    {
        "code": 0,
        "msg": "发送成功",
        "count": 1,
        "fee": 0.05,
        "unit": "RMB",
        "mobile": "13000000000",
        "sid": 3310228964
    },
    {
        "code": 0,
        "msg": "发送成功",
        "count": 1,
        "fee": 0.05,
        "unit": "RMB",
        "mobile": "13000000001",
        "sid": 3310228968
        }
    ]
}

2、下载、导入SDK,并配置。

目前云片提供JAVA/PHP/Python/C# 4种语言SDK、如果您的编程语言云片未提供SDK,您可以根据文档自行对接。

SDK下载地址(JAVA/PHP/Python/C#):去下载

SDK示例

  • Java
  • php
  • python
  • C#

jar包
yunpian-java-sdk.jar
log4j.jar
gson.jar
commons-logging-1.1.3.jar
httpclient.jar (必须4.4以上)
httpcore.jar (必须4.4以上)

代码示例

/**
 * 使用JDK发送批量短信,智能匹配短信模板
 *
 * @param apikey 成功注册后登录云片官网,进入后台可查看
 * @param text   需要使用已审核通过的模板或者默认模板
 * @param mobile 接收的手机号,多个用英文逗号隔开
 */
public static void testSendSms(String apikey, String mobile, String text) {
    YunpianRestClient client = new YunpianRestClient(apikey);//用apikey生成client,可作为全局静态变量
    SmsOperator smsOperator = client.getSmsOperator();//获取所需操作类
    ResultDO<SendBatchSmsInfo> result = smsOperator.batchSend(mobile, text);//batchSend还有个重载函数接受List<String>号码集合,可按需灵活使用
    System.out.println(result);
}

1、下载依赖包:https://www.yunpian.com/api2.0/document-downloadSdk.html
2、在config.php 文件内填写你的 APIKEY
3、在使用处添加以下引用: require_once('path/to/YunpianAutoload.php')
4、获取相应操作类调用api

require_once '../YunpianAutoload.php';
//发送批量短信,批量发送的接口耗时比单号码发送长,如果需要更高并发速度,推荐使用single_send/tpl_single_send
$smsOperator = new SmsOperator();
$data['mobile'] = '13812345678,13812345679';
$data['text'] = '【云片网】您的验证码是1234';
$result = $smsOperator->batch_send($data);
print_r($result);

本SDK适用于Python2,Python3版本在开发中,敬请期待。
使用pip安装依赖:pip install yunpian-sdk-python
或者下载包进行安装:pip install yunpian-sdk-python-1.0.0.tar.gz

from yunpian.SmsOperator import SmsOperator
import sys
import json
reload(sys)
sys.setdefaultencoding('utf-8')
APIKEY = 'your apikey'
smsOperator = SmsOperator(APIKEY)
# 批量短信发送(批量发送的接口耗时比单号码发送长,如果需要更高并发速度,推荐使用single_send/tpl_single_send)
print json.dumps(smsOperator.batch_send({'mobile': '13000000001,13000000002', 'text': '【云片网】您的验证码是0000'}).content,ensure_ascii=False)

依赖包
Newtonsoft.Json.dll
Yunpian.dll

static void Main(string[] args)
{
    //设置apikey
    Config config = new Config("your apikey");
    Dictionary<string, string> data = new Dictionary<string, string>();
    Result result = null;
    //批量发送的接口耗时比单号码发送长,如果需要更高并发速度,推荐使用single_send/tpl_single_send
    SmsOperator sms = new SmsOperator(config);
    data.Clear();
    data.Add("mobile", "13812345678,13812345679");
    data.Add("text", "【云片网】您的验证码是1234");
    result = sms.batchSend(data);
    Console.WriteLine(result);
}

批量个性化发送接口

https://sms.yunpian.com/v2/sms/multi_send.json

访问方式:POST,接口支持https及http

参数:

参数名 类型 是否必传 是否默认开放 描述 示例
apikey String 用户唯一标识,在管理控制台获取 9b11127a9701975c734b8aee81ee3526
mobile String 接收的手机号;发送多个手机号请以逗号分隔,一次不要超过1000个; 单号码:15205201314
多号码:15205201314,15205201315
text String 短信内容,多个短信内容请使用UTF-8做urlencode;使用逗号分隔,一次不要超过1000条且短信内容条数必须与手机号个数相等 UrlEncode("【签名】#username#您好,您的订单已经发货,请注意查收", "UTF-8") + "," + UrlEncode("【签名】#username#您好,您的订单已经发货,请注意查收", "UTF-8")
extend String 下发号码扩展号 001
uid String 该条短信在您业务系统内的ID,如订单号或者短信发送记录流水号 10001
callback_url String 短信发送后将向这个地址推送(运营商返回的)发送报告。
如推送地址固定,建议在"数据推送与获取”做批量设置。
如后台已设置地址,且请求内也包含此参数,将以请求内地址为准
http://yourreceiveurl_address

如需使用"extend"、"uid"参数,可免费向客服申请。

请求示例

  • Java
  • php
  • python
  • C#

/**
 * 批量个性化发送
 */
public static String multiSend() throws UnsupportedEncodingException {
    Map<String, String> params = new HashMap<String, String>();//请求参数集合
    params.put("apikey", "your apikey");
    params.put("text", java.net.URLEncoder.encode("【云片网】您的验证码是1234", "UTF-8") + ","
            + java.net.URLEncoder.encode("【云片网】您的验证码是4321", "UTF-8"));
    params.put("mobile", "13812345678,13812345679");
    return post("https://sms.yunpian.com/v2/sms/multi_send.json", params);//请自行使用post方式请求,可使用Apache HttpClient
}

暂无

暂无

static string MultiSend()
{
    // 设置为您的apikey(https://www.yunpian.com可查)
    string apikey = "xxxxxxxxxxxxxxxxxxxxxxx";
    // 发送的手机号,多个用英文逗号隔开
    string mobile = "13812345678,13812345679";
    // 发送内容
    string text =
    System.Web.HttpUtility.UrlEncode(System.Web.HttpUtility.HtmlEncode("【云片网】您的验证码是1234"), Encoding.GetEncoding("utf-8")) + ","
    System.Web.HttpUtility.UrlEncode(System.Web.HttpUtility.HtmlEncode("【云片网】您的验证码是4321"), Encoding.GetEncoding("utf-8"))
    // 群发短信请求url
    string url_multi_send_sms = "https://sms.yunpian.com/v2/sms/multi_send.json";
    string data_send_sms = "apikey=" + apikey + "&mobile=" + mobile + "&text=" + text;
    // 请自行使用post方式请求
    return HttpPost(url_multi_send_sms, data_send_sms);
}

调用成功的返回值示例

{
"total_count": 2,
"total_fee": "0.2000",
"unit": "RMB",
"data": [
    {
        "code": 0,
        "msg": "发送成功",
        "count": 1,
        "fee": 0.05,
        "unit": "RMB",
        "mobile": "13000000000",
        "sid": 3310228964
    },
    {
        "code": 0,
        "msg": "发送成功",
        "count": 1,
        "fee": 0.05,
        "unit": "RMB",
        "mobile": "13000000001",
        "sid": 3310228968
    }
]
}

2、下载、导入SDK,并配置。

目前云片提供JAVA/PHP/Python/C# 4种语言SDK、如果您的编程语言云片未提供SDK,您可以根据文档自行对接。

SDK下载地址(JAVA/PHP/Python/C#):去下载

SDK示例

  • Java
  • php
  • python
  • C#

jar包
yunpian-java-sdk.jar
log4j.jar
gson.jar
commons-logging-1.1.3.jar
httpclient.jar (必须4.4以上)
httpcore.jar (必须4.4以上)

代码示例

/**
 * 使用JDK发送批量短信,智能匹配短信模板
 *
 * @param apikey 成功注册后登录云片官网,进入后台可查看
 * @param text   短信内容集合,需要使用已审核通过的模板或者默认模板
 * @param mobile 手机号集合
 */
public static void testSendSms(String apikey, List<String> mobile, List<String> text) {
    YunpianRestClient client = new YunpianRestClient(apikey);//用apikey生成client,可作为全局静态变量
    SmsOperator smsOperator = client.getSmsOperator();//获取所需操作类
    ResultDO<SendBatchSmsInfo> result = smsOperator.multiSend(mobile, text);//此重载函数支持list,无需自己encode
    System.out.println(result);
}

1、下载依赖包:https://www.yunpian.com/api2.0/document-downloadSdk.html
2、在config.php 文件内填写你的 APIKEY
3、在使用处添加以下引用: require_once('path/to/YunpianAutoload.php')
4、获取相应操作类调用api

require_once '../YunpianAutoload.php';
//发送个性化批量短信,批量发送的接口耗时比单号码发送长,如果需要更高并发速度,推荐使用single_send/tpl_single_send
$smsOperator = new SmsOperator();
$data['mobile'] = '13812345678,13812345679';
$data['text'] = '【云片网】您的验证码是1234,【云片网】您的验证码是4321';
$result = $smsOperator->multi_send($data);
print_r($result);

本SDK适用于Python2,Python3版本在开发中,敬请期待。
使用pip安装依赖:pip install yunpian-sdk-python
或者下载包进行安装:pip install yunpian-sdk-python-1.0.0.tar.gz

from yunpian.SmsOperator import SmsOperator
import sys
import json
reload(sys)
sys.setdefaultencoding('utf-8')
APIKEY = 'your apikey'
smsOperator = SmsOperator(APIKEY)
#这个是个性化接口发送,批量发送的接口耗时比单号码发送长,
#如果需要更高并发速度,推荐使用single_send/tpl_single_send
print json.dumps(smsOperator.multi_send(
{'mobile': '13000000003,13000000004', 'text': '【云片网】您的验证码是1234,【云片网】您的验证码是4321'}).content,ensure_ascii=False)

依赖包
Newtonsoft.Json.dll
Yunpian.dll

static void Main(string[] args)
{
    //设置apikey
    Config config = new Config("your apikey");
    Dictionary<string, string> data = new Dictionary<string, string>();
    Result result = null;
    //批量发送的接口耗时比单号码发送长,如果需要更高并发速度,推荐使用single_send/tpl_single_send
    SmsOperator sms = new SmsOperator(config);
    data.Clear();
    data.Add("mobile", "13812345678,13812345679");
    data.Add("text", "【云片网】您的验证码是1234,【云片网】您的验证码是4321");
    result = sms.multiSend(data);
    Console.WriteLine(result);
}

三、实现业务逻辑

1、调用接口发送短信
短信内容需和通过审核的模板匹配上才能发送,如不匹配接口会返回报错信息,报错记录在 后台失败请求页可以看到。
模板审核时间一般半小时内,如果需群发活动通知等。建议提前审核好模板。

四、按需开发功能

1.对短信发送状态做实时监控
如果您需要通过程序对短信的发送状态做实时监控,可以开发“推送/获取状态报告”接口。
如果只是想了解短信发送状态,无实时监控需求,"云片管理控制台-国内短信- 数据统计" 可以看到实时及历史的到达率、发送量、接口失败原因等报表。
2.短信平台/代理类客户
如果您是短信平台/代理,需要管理众多客户的签名及模板。您可能需要 “签名提交API”、 “模板管理API”、 “账户API”。 从而通过API接口轻松管理签名、模板、账户。
3.获取上行短信
如果您的业务中,需获取用户回复的上行短信,可以开发“推送回复短信API”。通过这个接口,如果用户回复了您的短信,云片会第一时间推送给您。