要求:
如果需要使用短信业务,请先满足以下要求:
1、腾讯云账号一只
2、个人及个人以上实名认证
3、网站域名一只(备案:个人备案上传后台备案信息截图、企业备案需要上传营业执照)
ps:第3非必要,视签名类型而定。腾讯云默认赠送100条免费短信。
操作流程:
1、进入腾讯云短信添加应用
2、创建短信签名
这项需要上传一些特定的资料,视签名类型而定。坐等审核(几分钟就能出结果),审核完毕继续下一步
3、创建正文模版
按照划线填写即可,当然你也可以填自己的模版
4、等以上两项都审核完毕之后就可以进行短信发信了。
php发信demo
<?php /** * 腾讯云接口指定模板单发短信demo * @author Youngxj <blog@youngxj.cn> * @var 1.0 * @time 2018年9月14日 00:03:49 */ $r = rand('100000','999999');//官方要求的随机数 $t = time();//官方要求的时间戳 $sdkAppid = '1400151023'; //填写自己的Appid即可 $strAppKey = "5f03a35d00ee52a21327ab048186a2c4"; //sdkappid 对应的 appkey,需要业务方高度保密 $strMobile = "13800138000"; //收件人手机号 $strRand = $r; //url 中的 random 字段的值 $strTime = $t; //UNIX 时间戳 $sig = hash('sha256','appkey='.$strAppKey.'&random='.$r.'&time='.$t.'&mobile='.$strMobile);//官方要求sig算法 $MsgContent = '12345';//这里应该填写短信正文模版中{1}的内容 $MsgTime = '5';//这里应该填写短信正文模版中{2}的内容 //如果还有更多参数请在$post_data['params']中添加 $MsgTpl = '19';//填写短信正文模版id $post_data = array( "ext"=>"",//用户的 session 内容,腾讯 server 回包中会原样返回,可选字段,不需要就填空 "extend"=>"", "params"=>array( $MsgContent,$MsgTime ), "sig"=>$sig, "sign"=>"", "tel"=>array( "mobile"=>$strMobile, "nationcode"=>"86"//86为国内手机号前缀 ), "time"=>$t, "tpl_id"=>$MsgTpl ); $parameters = json_encode($post_data);//官方要求数据json之后post $url = 'https://yun.tim.qq.com/v5/tlssmssvr/sendsms?sdkappid='.$sdkAppid.'&random='.$r; $response = get_curl($url,$parameters); $responseData=json_decode($response,true);//发序列化为数组 $EchoMsgResult = $responseData['result'];//错误码,0 表示成功(计费依据),非 0 表示失败 $EchoMsgErrmsg = $responseData['errmsg'];//错误消息,result 非 0 时的具体错误信息 $EchoMsgExt = $responseData['ext'];//用户的 session 内容,腾讯 server 回包中会原样返回 $EchoMsgSid = $responseData['sid'];//本次发送标识 id,标识一次短信下发记录 $EchoMsgFee = $responseData['fee'];//短信计费的条数 if($EchoMsgResult==0){ echo '发送成功'.$EchoMsgErrmsg; }else{ echo '发送失败'.$EchoMsgErrmsg; } /** * curl函数 * @param [type] $url [description] * @param integer $post [description] * @param integer $referer [description] * @param integer $cookie [description] * @param integer $header [description] * @param integer $ua [description] * @param integer $nobaody [description] * @return [type] [description] */ function get_curl($url, $post=0, $referer=0, $cookie=0, $header=0, $ua=0, $nobaody=0){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $httpheader[] = "Accept:application/json"; $httpheader[] = "Accept-Encoding:gzip,deflate,sdch"; $httpheader[] = "Accept-Language:zh-CN,zh;q=0.8"; $httpheader[] = "Connection:close"; curl_setopt($ch, CURLOPT_HTTPHEADER, $httpheader); if ($post) { curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); } if ($header) { curl_setopt($ch, CURLOPT_HEADER, true); } if ($cookie) { curl_setopt($ch, CURLOPT_COOKIE, $cookie); } if($referer){ if($referer==1){ curl_setopt($ch, CURLOPT_REFERER, 'http://m.qzone.com/infocenter?g_f='); }else{ curl_setopt($ch, CURLOPT_REFERER, $referer); } } if ($ua) { curl_setopt($ch, CURLOPT_USERAGENT, $ua); } else { curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Linux; U; Android 4.0.4; es-mx; HTC_One_X Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0"); } if ($nobaody) { curl_setopt($ch, CURLOPT_NOBODY, 1); } curl_setopt($ch, CURLOPT_TIMEOUT, 3); curl_setopt($ch, CURLOPT_ENCODING, "gzip"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $ret = curl_exec($ch); curl_close($ch); return $ret; } ?>
请求参数
参数 | 必选 | 类型 | 描述 |
---|---|---|---|
ext | 否 | string | 用户的 session 内容,腾讯 server 回包中会原样返回,可选字段,不需要就填空 |
extend | 否 | string | 短信码号扩展号,格式为纯数字串,其他格式无效。默认没有开通,开通请联系 腾讯云短信技术支持 |
params | 是 | array | 模板参数,若模板没有参数,请提供为空数组 |
sig | 是 | string | App 凭证,具体计算方式见下注 |
sign | 否 | string | 短信签名,如果使用默认签名,该字段可缺省 |
tel | 是 | object |
国际电话号码,格式依据 e.164 标准为: +[国家码][手机号] ,示例如:+8613711112222 , 其中前面有一个 + 符号 ,86 为国家码,13711112222 为手机号
|
time | 是 | number | 请求发起时间,UNIX 时间戳(单位:秒),如果和系统时间相差超过 10 分钟则会返回失败 |
tpl_id | 是 | number | 模板 ID,在控制台审核通过的模板 ID |
响应参数
参数 | 必选 | 类型 | 描述 |
---|---|---|---|
result | 是 | number | 错误码,0 表示成功(计费依据),非 0 表示失败,参考 错误码 |
errmsg | 是 | string | 错误消息,result 非 0 时的具体错误信息 |
ext | 否 | string | 用户的 session 内容,腾讯 server 回包中会原样返回 |
fee | 否 | number | 短信计费的条数,"fee" 字段计费说明 |
sid | 否 | string | 本次发送标识 id,标识一次短信下发记录 |
发表评论: