1 首先注册账号 可以使用企业信息认证 采用授权书方式
2 充值50 +
3 如果要开通国际短信的话 可以先进行模板报备
特别说明:2022-7-21
';print_r($array);
// 发送短信
$data=array('text'=>$text,'apikey'=>$apikey,'mobile'=>$mobile);
$json_data = send($ch,$data);
$array = json_decode($json_data,true);
echo '
';print_r($array);
// 发送模板短信 需要注意多个变量拼接的方式
// 需要对value进行编码
$data = array('tpl_id' => '1', 'tpl_value' => ('#code#').
'='.urlencode('1234').
'&'.urlencode('#company#').
'='.urlencode('欢乐行'), 'apikey' => $apikey, 'mobile' => $mobile);
print_r ($data);
$json_data = tpl_send($ch,$data);
$array = json_decode($json_data,true);
echo '
';print_r($array);
// 发送语音验证码
$data=array('code'=>'9876','apikey'=>$apikey,'mobile'=>$mobile);
$json_data =voice_send($ch,$data);
$array = json_decode($json_data,true);
echo '
';print_r($array);
curl_close($ch);
/************************************************************************************/
//获得账户
function get_user($ch,$apikey){
curl_setopt($ch, CURLOPT_URL, 'https://sms.yunpian.com/v2/user/get.json');
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array('apikey' => $apikey)));
$result = curl_exec($ch);
$error = curl_error($ch);
checkErr($result,$error);
return $result;
}
function send($ch,$data){
curl_setopt($ch, CURLOPT_URL, 'https://sms.yunpian.com/v2/sms/single_send.json');
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$result = curl_exec($ch);
$error = curl_error($ch);
checkErr($result,$error);
return $result;
}
function tpl_send($ch,$data){
curl_setopt($ch, CURLOPT_URL,
'https://sms.yunpian.com/v2/sms/tpl_single_send.json');
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$result = curl_exec($ch);
$error = curl_error($ch);
checkErr($result,$error);
return $result;
}
function voice_send($ch,$data){
curl_setopt($ch, CURLOPT_URL, 'http://voice.yunpian.com/v2/voice/send.json');
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$result = curl_exec($ch);
$error = curl_error($ch);
checkErr($result,$error);
return $result;
}
function checkErr($result,$error) {
if($result === false)
{
echo 'Curl error: ' . $error;
}
else
{
//echo '操作完成没有任何错误';
}
}
?>
下面我给出的是发送短信整理出来的方法 可以借鉴
public function sms($code,$mobile,$template_id){
header("Content-Type:text/html;charset=utf-8");
$apikey = $this->config['sms_api_key']; //修改为您的apikey(https://www.yunpian.com)登录官网后获取
$mobile = $mobile; //请用自己的手机号代替
$ch = curl_init();
/* 设置验证方式 */
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept:text/plain;charset=utf-8',
'Content-Type:application/x-www-form-urlencoded', 'charset=utf-8'));
/* 设置返回结果为流 */
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
/* 设置超时时间*/
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
/* 设置通信方式 */
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
// 取得用户信息
$json_data = $this->get_user($ch,$apikey);
$array = json_decode($json_data,true);
echo '
';
// 发送模板短信
// 需要对value进行编码
$data = array('tpl_id' => $template_id, 'tpl_value' => ('#code#').
'='.urlencode($code), 'apikey' => $apikey, 'mobile' => $mobile);
// $data = array('tpl_id' => '1', 'tpl_value' => ('#code#').
// '='.urlencode('1234').
// '&'.urlencode('#company#').
// '='.urlencode('欢乐行'), 'apikey' => $apikey, 'mobile' => $mobile);
print_r ($data);die;
$json_data = $this->tpl_send($ch,$data);
$array = json_decode($json_data,true);
echo '
';print_r($array);
}
//获得账户
private function get_user($ch,$apikey){
curl_setopt($ch, CURLOPT_URL, 'https://sms.yunpian.com/v2/user/get.json');
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array('apikey' => $apikey)));
$result = curl_exec($ch);
$error = curl_error($ch);
$this->checkErr($result,$error);
return $result;
}
private function tpl_send($ch,$data){
curl_setopt($ch, CURLOPT_URL,
'https://sms.yunpian.com/v2/sms/tpl_single_send.json');
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$result = curl_exec($ch);
$error = curl_error($ch);
$this->checkErr($result,$error);
return $result;
}
private function checkErr($result,$error) {
if($result === false)
{
echo 'Curl error: ' . $error;
}
else
{
//echo '操作完成没有任何错误';
}
}
调用
$smsCloud = new SmsCloud();
- 1
$code = '125487';
$mobile = 152271****;
$template_id = 529***;
$sms_result = $smsCloud->sms($code,$mobile,$template_id);
dd($sms_result);
返回结果
Array
(
[code] => 0
[msg] => 发送成功
[count] => 1
[fee] => 0.05
[unit] => RMB
[mobile] => 1522*****
[sid] => 72543977502
)
返回码总体说明
code = 0: 正确返回。可以从 api 返回的对应字段中取数据。
code > 0: 调用 API 时发生错误,需要开发者进行相应的处理。
-50 < code < 0: 权限验证失败,需要开发者进行相应的处理。
code = -50: 客户端或服务器内部异常,可参考-50未知异常文档排查问题原因并获得解决方案,如仍有问题,请联系技术支持。
5 另外其他事项
防骚扰限制(无论什么级别的客户都有):
同1个手机发相同内容,30秒内最多发送1次,5分钟内最多发送3次。
防轰炸规则
1,同一手机号同一个验证码模板,每30秒只能获取一条。
2,同一个手机号验证码类内容,每小时最多能获取3条。
3,同一个手机号验证码类内容,24小时最多能获取到10条。
防轰炸规则取消:您可以在 设置-系统设置-防轰炸规则-自行开启或关闭
运营商对于单号码单日接收短信也会有一定的限制,但是由于每家运营商的限制不一致,且不是一直不变,目前我们也无法提前得知。
您只要是大陆号码,都是 按照(5分/条)扣除短信费用
国内运营商计费统一标准:
短信字数(含短信签名一起)
包括标点,符号,空格,中文,英文,都算1个字符。
整条字数长度:
1-70字 1条计费
71-134字 2条计费
135-201字 3条计费
202字-268字 4条计费
以此类推,整条短信正常情况下不超过500字
即≤70字时,算1条,大于70字时,整条短信每67字算1条。
具体使用哪个域名主要是看您的服务器在哪,如您的服务器是在大陆地区,那您就请求sms.yunpian.com,如是在非大陆地区也可以请求这个域名,但是请求 us.yunpian.com这地址会更加的稳定一些,因为这是我们的海外服务器
发送国际手机号 需要加区号例如 +1100000000
https://www.yunpian.com/official/document/sms/zh_CN/introduction_demos_php
https://www.yunpian.com/official/document/sms/zh_CN/returnvalue_common
以上就是关于返回码的相关介绍
API 调用失败,返回错误结果示例:
{
“http_status_code”: 400, //调用结束后的http_status_code值
“code”: 3, //错误码
“msg”: “账户余额不足”, //错误描述
“detail”: “账户需要充值,请充值后重试” //具体错误描述或解决方法
}
以下是成功实例
Array
(
[code] => 0
[msg] => 发送成功
[count] => 1
[fee] => 0.05
[unit] => RMB
[mobile] => 152271***
[sid] => 72543977**
)