如何发送系统类通知、群发活动信息
通过本功能您可以批量发送短信。实现订单状态通知、物流通知、活动通知等。云片后台有手动群发功能,支持发送变量短信(免技术开发,仅对高级用户开放)。
一、注册、报备及设置
- 报备可以让产品经理、运营等业务人员完成。
- 开发阶段,建议先关闭IP白名单,或将服务器IP及本地IP均设置在IP白名单内。
- 为了避免开发调试中,您的手机号被系统防骚扰机制拦截,可以在测试白名单填写您的手机号。
二、调通短信接口
阅读文档了解API,下载SDK快速使用。
选择合适的发送接口
API列表 | 请求地址 | 特性 |
---|---|---|
批量发送 | https://sms.yunpian.com/v2/sms/batch_send.json | 批量发送相同内容 |
批量发送接口
方法一:直接使用API
附注: 因为运营商政策,请先在后台完成报备签名、模板及做相关设置(详见接入引导),再开发API。
HTTP头信息:
Accept:application/json;charset=utf-8;
Content-Type:application/x-www-form-urlencoded;charset=utf-8;
请求
URL:https://sms.yunpian.com/v2/sms/batch_send.json
注意:海外服务器地址 us.yunpian.com
访问方式:POST
http支持:支持https 与 http 两种访问,建议使用https
请求参数
参数名 | 类型 | 是否必传 | 是否默认开放 | 描述 | 示例 |
---|---|---|---|---|---|
apikey | string | 是 | 是 | 用户唯一标识,在管理控制台获取 | 9b11127a9701975c734b8aee81ee3526 |
mobile | string | 是 | 是 | 接收的手机号;发送多个手机号请以逗号分隔,一次不要超过1000个; | 单号码:15205201314 多号码:15205201314,15205201315 |
text | string | 是 | 是 | 已审核短信模板 | 【云片网】您的订单已经发货,请注意查收 |
extend | string | 否 | 否 | 下发号码扩展号,纯数字 | 001 |
callback_url | string | 否 | 是 | 短信发送后将向这个地址推送(运营商返回的)发送报告。 如推送地址固定,建议在"数据推送与获取”做批量设置。 如后台已设置地址,且请求内也包含此参数,将以请求内地址为准 | http://your_receive_url_address |
附注:如需使用"extend"参数,可免费向客服申请。
请求示例
/**
* 批量发送短信,相同内容多个号码,智能匹配短信模板
*
* @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
}
响应
名称 | 类型 | 描述 |
---|---|---|
total_count | integer | 扣费条数,70个字一条,超出70个字时按每67字一条计 |
total_fee | double | 扣费金额,单位:元,类型:双精度浮点型/double |
unit | string | 计费单位;例如:“RMB” |
data | json数组 | 参考单个短信发送返回的数据 |
Json响应示例
{
"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
}
]
}
方法二:下载、导入SDK,并配置。
目前云片提供JAVA/PHP/Python/C#/Golang 5种语言SDK、如果您的编程语言云片未提供SDK,您可以根据文档自行对接。
SDK下载地址(JAVA/PHP/Python/C#/GOLANG):去下载
SDK示例
/**
* 使用JDK发送批量短信,智能匹配短信模板
*
* @param apikey 成功注册后登录云片官网,进入后台可查看
* @param text 需要使用已审核通过的模板或者默认模板
* @param mobile 接收的手机号,多个用英文逗号隔开
*/
public static void testSendSms(String apikey, String mobile, String text) {
//初始化client,apikey作为所有请求的默认值(可以为空)
YunpianClient clnt = new YunpianClient("apikey").init();
Map<String, String> param = clnt.newParam(2);
param.put(YunpianClient.MOBILE, mobile);
param.put(YunpianClient.TEXT, "【云片网】您的验证码是1234");
Result<SmsBatchSend> r = clnt.sms().batch_send(param);
//获取返回结果,返回码:r.getCode(),返回码描述:r.getMsg(),API结果:r.getData(),其他说明:r.getDetail(),调用异常:r.getThrowable()
r.getData();
//账户:clnt.user().* 签名:clnt.sign().* 模版:clnt.tpl().* 短信:clnt.sms().* 语音:clnt.voice().* 流量:clnt.flow().* 隐私通话:clnt.call().*
//最后释放client
clnt.close()
}
三、实现业务逻辑
调用接口发送短信
- 短信内容需和通过审核的模板匹配上才能发送,如不匹配接口会返回报错信息,报错记录在后台失败请求页可以看到。
- 模板审核时间一般半小时内,如果需群发活动通知等。建议提前审核好模板。
四、按需开发功能
- 对短信发送状态做实时监控如果您需要通过程序对短信的发送状态做实时监控,可以开发“推送/获取状态报告”接口。如果只是想了解短信发送状态,无实时监控需求,"云片管理控制台-国内短信-数据统计" 可以看到实时及历史的到达率、发送量、接口失败原因等报表。
- 短信平台/代理类客户如果您是短信平台/代理,需要管理众多客户的签名及模板。您可能需要 “签名提交API”、 “模板管理API”、 “账户API”。 从而通过API接口轻松管理签名、模板、账户。
- 获取上行短信如果您的业务中,需获取用户回复的上行短信,可以开发“推送回复短信API”。通过这个接口,如果用户回复了您的短信,云片会第一时间推送给您。
- 国外地区使用海外服务器如海外用户可以调用海外服务器地址us.yunpian.com,获得更快的请求和处理速度。例如使用短信接口时,将sms.yunpian.com替换为us.yunpian.com即可。