1.首先获取华为云APP_Key和APP_Secret。(国内短信 > 应用管理 )
php华为云短信验证码下载
2.获取签名管理的通道号和签名名称。
3.获取短信的模板ID
<?php //必填,请参考"开发准备"获取如下数据,替换为实际值 $url = 'https://rtcsms.cn-north-1.myhuaweicloud.com:10743/sms/batchSendDiffSms/v1'; //APP接入地址+接口访问URI $APP_KEY = 'APP_Key'; //APP_Key========================================================需要修改 $APP_SECRET = 'APP_Secret'; //APP_Secret========================================================需要修改 $sender = '短信通道'; //国内短信签名通道号或国际/港澳台短信通道号 $TEMPLATE_ID_1 = '短息模板ID'; //模板ID1========================================================需要修改 //$TEMPLATE_ID_2 = '8ff55eac1d0b478ab3c06c3c6a492300'; //模板ID2 //条件必填,国内短信关注,当templateId指定的模板类型为通用模板时生效且必填,必须是已审核通过的,与模板类型一致的签名名称 //国际/港澳台短信不用关注该参数 $signature_1 = "华为云短信测试"; //签名名称1========================================================需要修改(一定和申请的签名保持一致) //$signature_2 = "华为云短信测试"; //签名名称2 //必填,全局号码格式(包含国家码),示例:+8615123456789,多个号码之间用英文逗号分隔 //$receiver_1 = ['+8613681470539']; //模板1的接收号码 $totel="+86136814711111";//========================================================接收者的手机号 $receiver_1=array(); $receiver_1[]=$totel; //$receiver_2 = ['+8615123456789', '+8615234567890']; //模板2的接收号码 //选填,短信状态报告接收地址,推荐使用域名,为空或者不填表示不接收状态报告 $statusCallback = ''; /** * 选填,使用无变量模板时请赋空值 $TEMPLATE_PARAS = []; * 单变量模板示例:模板内容为"您的验证码是${1}"时,$TEMPLATE_PARAS可填写为['369751'] * 双变量模板示例:模板内容为"您有${1}件快递请到${2}领取"时,$TEMPLATE_PARAS可填写为['3','人民公园正门'] * 模板中的每个变量都必须赋值,且取值不能为空 * 查看更多模板和变量规范:产品介绍>模板和变量规范 */ $TEMPLATE_PARAS_1 = ['110112']; //========================================================验证码6为数字,不能0开头() //模板1变量,此处以单变量验证码短信为例,请客户自行生成6位验证码,并定义为字符串类型,以杜绝首位0丢失的问题(例如:002569变成了2569)。 //$TEMPLATE_PARAS_2 = ['234567']; //模板2变量,此处以单变量验证码短信为例,请客户自行生成6位验证码,并定义为字符串类型,以杜绝首位0丢失的问题(例如:002569变成了2569)。 //请求Headers $headers = [ 'Content-Type: application/json', 'Authorization: WSSE realm="SDP",profile="UsernameToken",type="Appkey"', 'X-WSSE: ' . buildWsseHeader($APP_KEY, $APP_SECRET) ]; //请求Body $data = json_encode([ 'from' => $sender, 'statusCallback' => $statusCallback, 'smsContent' => [ //必填,请根据模板ID数量灵活增减 //smsContent,不携带签名名称时,signature请填'' initDiffSms($receiver_1, $TEMPLATE_ID_1, $TEMPLATE_PARAS_1, $signature_1), //initDiffSms($receiver_2, $TEMPLATE_ID_2, $TEMPLATE_PARAS_2, $signature_2) ] ]); $context_options = [ 'http' => ['method' => 'POST', 'header'=> $headers, 'content' => $data, 'ignore_errors' => true], 'ssl' => ['verify_peer' => false, 'verify_peer_name' => false] //为防止因HTTPS证书认证失败造成API调用失败,需要先忽略证书信任问题 ]; //print_r($context_options) . PHP_EOL; //打印请求信息 $response = file_get_contents($url, false, stream_context_create($context_options)); //echo '<pre>'; $r=json_decode($response, true); //var_dump(json_decode($response, true)); //{"result":[{"originTo":"+8615512345678","createTime":"2018-05-25T16:34:34Z","from":"1069031221280012","smsMsgId":"d6e3cdd0-522b-4692-8304-a07553cdf591_8539659","status":"000000"}],"code":"000000","description":"Success"} if($r["code"]=="000000"){ echo '短信发送成功'; }else{ echo '短信发送失败!'; } /** * 构造smsContent参数值 * @param array $receiver * @param string $templateId * @param array $templateParas * @param string $signature | 签名名称,使用国内短信通用模板时填写 * @return string[] */ function initDiffSms(array $receiver, string $templateId, array $templateParas, string $signature) { if (null != $signature && strlen($signature) > 0) { return ['to' => $receiver, 'templateId' => $templateId, 'templateParas' => $templateParas, 'signature' => $signature]; } return ['to' => $receiver, 'templateId' => $templateId, 'templateParas' => $templateParas]; } /** * 构造X-WSSE参数值 * @param string $appKey * @param string $appSecret * @return string */ function buildWsseHeader(string $appKey, string $appSecret){ date_default_timezone_set('Asia/Shanghai'); $now = date('Y-m-d\TH:i:s\Z'); //Created $nonce = uniqid(); //Nonce $base64 = base64_encode(hash('sha256', ($nonce . $now . $appSecret))); //PasswordDigest return sprintf("UsernameToken Username=\"%s\",PasswordDigest=\"%s\",Nonce=\"%s\",Created=\"%s\"", $appKey, $base64, $nonce, $now); } ?>
php华为云短信验证码下载
继续阅读与本文标签相同的文章
下一篇 :
宝塔面板Linux服务器挂载新的磁盘
-
阿里云Linux服务器动态扩容(阿里云服务器扩容后磁盘空间无变化解决方法)
2020-11-30栏目: 建站教程
-
6个SEM实战技巧,大神手把手教你做推广!
2020-07-20栏目: SEM
-
苏州美食推荐,持续更新
2020-06-17栏目: 生活笔记
-
企业如何玩转视频号
2020-05-12栏目: 运营杂谈
-
SEO关键词排名该掌握的核心优化技巧
2020-05-12栏目: SEO
打印
分享
发表评论 已发布 0 条