精华内容
下载资源
问答
  • 腾讯云短信
    2021-12-31 16:37:41

    本文使用SpringBoot 框架,针对腾讯云发送短信方法做了一定程度的封装。

    准备工作

    参考:

    腾讯云发送短信验证码服务—csdn

    1. 首先需要开通腾讯云的短信服务

    首次开通会赠送100条短信的免费额度,用于个人的测试完全够了

    image-20211231144715656

    2. 申请签名和模板

    ​ 由【控制台】进入短信的管理界面,选择【快速入门】,平台将会引导创建签名和短信模板(图中已经创建完成且审核通过)

    image-20211231145254452

    注意:创建的签文和模板都属于国内短信

    创建签名

    ​ 如果选择签名类型为网站则必须要有一个已经备案的域名

    image-20211231150235124

    注意

    • 假设网站备案名称为【腾讯云】,那么签名内容需要变为【腾讯云个人网】,否者审核不会通过

    • 证明材料必须要上传网站备案的后台截图,如果是ICP备案查询的截图无法通过审核

    • 申请说明中填写自己的备案域名即可

    ​ 如果没有备案域名也可以申请一个个人公众号,然后再选择【签名类型】为公众号创建一个签名。

    创建模板

    ​ 模板的审核比签名更简单,只需要符合规范即可,不需要证明材料,直接使用标准模板审核成功率更高。

    image-20211231153047820

    最后等待审核通过。

    代码编写

    参考:

    腾讯云短信服务Java SDK

    ​ 具体使用请参考官方文档。本文使用 SpringBoot 开发,对官方文档中发送短信的方法做了一定程度的封装。

    ​ 本文使用的短信模板为:

    您正在申请手机注册,验证码为:{1},{2}分钟内有效!
    

    参数提取

    ​ 首先将腾讯云短信服务的一些相关参数提取出来,作为一个配置类,从配置类中读取相关参数

    /**
     * 腾讯短信业务配置类(sms)
     *
     * 注意:@Component 和 @ConfigurationProperties(prefix = "tencent.sms") 需要同时使用
     * @version 1.0
     * @date 2021/12/30 18:32
     */
    @Data // lombok 省略get/set方法
    @Component
    @ConfigurationProperties(prefix = "tencent.sms")  // 读取配置文件中tencent.sms 为前缀的配置信息
    public class TencentSmsProperties {
        /** 腾讯云账户密钥对secretId */
        private String secretId;
    
        /** 腾讯云账户密钥对secretKey */
        private String secretKey;
    
        /** 短信应用ID: 短信SdkAppId在 [短信控制台] 添加应用后生成的实际SdkAppId(位于[应用管理]中的[应用列表]),示例: 1400006666 (1400开头)*/
        private String sdkAppId;
    
        /** 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名,签名信息可登录 [短信控制台] 查看 */
        private String signName;
    
        /** 模板 ID 哈希表: 必须填写已审核通过的模板 ID。模板ID可登录 [短信控制台] 查看
         *  key: 模板名称(自定义);value: 模板 ID(腾讯云已通过模板)
         * */
        private Map<String, String> templateIdMap;
    
        /** 国际/港澳台短信 SenderId: 国内短信填空,默认未开通(国内短信不需要填写此项),如需开通请联系 [sms helper] */
        String senderid = "";
    
    
        /**短信号码扩展号: 默认未开通,如需开通请联系 [sms helper]   个人不需要填写*/
        private String extendCode = "";
    
    }
    
    

    配置文件 application.yml

    # 腾讯云短信服务
    tencent:
      sms:
        secret-id: "AKIXXXXXoCQO5VeW7RVJp42kBKCn7AwXXXXX"
        secret-key: "A3kAXXXXXvRgtqWv3uUnoY1EBsIXXXXX"
        sdk-app-id: 1400611234
        sign-name: "网站名称个人网"
        # 模板ID映射,key任意设置,value为审核通过模板ID
        template-id-map:
            register: "1260123"
            forget: "1260258"
        # 以下两项非必填    
    #    senderid: ""
    #    extend-code: ""
    

    ​ SpringBoot 将会自动把以上配置信息注入TencentSmsProperties类中,可以通过自动注入注解获取

    编写Service层

    @Service
    public class MsmServiceImpl implements MsmService {
    
        public static final int REGISTER_CODE_VALID_TIME = 5;
    
        @Resource
        TencentSmsProperties smsProperties;
    
        @Autowired
        private RedisTemplate<String, String> redisTemplate;
    
        /**
         * 检查验证码是否已经存在
         * @param phoneNum: 手机号
         * @return boolean
         * @date 2021/12/31 12:39
         */
        @Override
        public boolean checkVerCodeIsExist(String phoneNum) {
            String verCode = redisTemplate.opsForValue().get(phoneNum);
            return !StringUtils.isEmpty(verCode);
        }
    
        @Override
        public boolean sendVerCodeToPhone(String phoneNum,
                                                   String sessionContext,
                                                   String templateId,
                                                   String[] templateParamSet) {
            try {
                /* 必要步骤:
                 * 实例化一个认证对象,入参需要传入腾讯云账户密钥对secretId,secretKey。
                 * 这里采用的是从环境变量读取的方式,需要在环境变量中先设置这两个值。
                 * 你也可以直接在代码中写死密钥对,但是小心不要将代码复制、上传或者分享给他人,
                 * 以免泄露密钥对危及你的财产安全。
                 * CAM密匙查询: https://console.cloud.tencent.com/cam/capi*/
                Credential cred = new Credential(smsProperties.getSecretId(),
                        smsProperties.getSecretKey());
    
                // 实例化一个http选项,可选,没有特殊需求可以跳过
                HttpProfile httpProfile = new HttpProfile();
                // 设置代理
                // httpProfile.setProxyHost("真实代理ip");
                // httpProfile.setProxyPort(真实代理端口);
                /* SDK默认使用POST方法。
                 * 如果你一定要使用GET方法,可以在这里设置。GET方法无法处理一些较大的请求 */
                httpProfile.setReqMethod("POST");
                /* SDK有默认的超时时间,非必要请不要进行调整
                 * 如有需要请在代码中查阅以获取最新的默认值 */
                httpProfile.setConnTimeout(60);
                /* SDK会自动指定域名。通常是不需要特地指定域名的,但是如果你访问的是金融区的服务
                 * 则必须手动指定域名,例如sms的上海金融区域名: sms.ap-shanghai-fsi.tencentcloudapi.com */
                httpProfile.setEndpoint("sms.tencentcloudapi.com");
    
                /* 非必要步骤:
                 * 实例化一个客户端配置对象,可以指定超时时间等配置 */
                ClientProfile clientProfile = new ClientProfile();
                /* SDK默认用TC3-HMAC-SHA256进行签名
                 * 非必要请不要修改这个字段 */
                clientProfile.setSignMethod("HmacSHA256");
                clientProfile.setHttpProfile(httpProfile);
                /* 实例化要请求产品(以sms为例)的client对象
                 * 第二个参数是地域信息,可以直接填写字符串ap-guangzhou,或者引用预设的常量 */
                SmsClient client = new SmsClient(cred, "ap-guangzhou",clientProfile);
                /* 实例化一个请求对象,根据调用的接口和实际情况,可以进一步设置请求参数
                 * 你可以直接查询SDK源码确定接口有哪些属性可以设置
                 * 属性可能是基本类型,也可能引用了另一个数据结构
                 * 推荐使用IDE进行开发,可以方便的跳转查阅各个接口和数据结构的文档说明 */
                SendSmsRequest req = new SendSmsRequest();
    
                /* 填充请求参数,这里request对象的成员变量即对应接口的入参
                 * 你可以通过官网接口文档或跳转到request对象的定义处查看请求参数的定义
                 * 基本类型的设置:
                 * sms helper: https://cloud.tencent.com/document/product/382/3773 */
    
                /* 短信应用ID: 短信SdkAppId在 [短信控制台] 添加应用后生成的实际SdkAppId,示例如1400006666 */
                String sdkAppId = smsProperties.getSdkAppId();
                req.setSmsSdkAppId(sdkAppId);
    
                /* 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名,签名信息可登录 [短信控制台] 查看 */
                String signName = smsProperties.getSignName();
                req.setSignName(signName);
    
                /* 国际/港澳台短信 SenderId: 国内短信填空,默认未开通,如需开通请联系 [sms helper] */
                String senderid = smsProperties.getSenderid();
                req.setSenderId(senderid);
    
                /* 用户的 session 内容: 可以携带用户侧 ID 等上下文信息,server 会原样返回 */
    //            String sessionContext = "xxx";
                req.setSessionContext(sessionContext);
    
                /* 短信号码扩展号: 默认未开通,如需开通请联系 [sms helper] */
                String extendCode = smsProperties.getExtendCode();
                req.setExtendCode(extendCode);
    
                /* 模板 ID: 必须填写已审核通过的模板 ID。模板ID可登录 [短信控制台] 查看 */
                // String templateId = smsProperties.getTemplateIdMap().get("register");
                req.setTemplateId(templateId);
    
                /* 下发手机号码,采用 E.164 标准,+[国家或地区码][手机号]
                 * 示例如:+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号 */
                String[] phoneNumberSet = {phoneNum};
                req.setPhoneNumberSet(phoneNumberSet);
    
                /* 模板参数: 若无模板参数,则设置为空 */
                // String[] templateParamSet = {"5678", "5"};
                req.setTemplateParamSet(templateParamSet);
    
                /* 通过 client 对象调用 SendSms 方法发起请求。注意请求方法名与请求对象是对应的
                 * 返回的 res 是一个 SendSmsResponse 类的实例,与请求对象对应 */
                SendSmsResponse res = client.SendSms(req);
    
                // 输出json格式的字符串回包
                // System.out.println(SendSmsResponse.toJsonString(res));
    
                // 也可以取出单个值,你可以通过官网接口文档或跳转到response对象的定义处查看返回字段的定义
                // System.out.println(res.getRequestId());
    
            } catch (TencentCloudSDKException e) {
                e.printStackTrace();
                return false;
            }
            return true;
        }
    
    	
        /**
         * 发送注册验证码
           controller 层可以调用此方法,对于手机号的格式校验,
         * @param phoneNum: 手机号
         * @return boolean
         * @date 2021/12/31 12:39
         */
        @Override
        public boolean sendRegisterVerCode(String phoneNum) {
            // 格式校验...  ;  防止短信验证码接口被恶意调用攻击...
            
            // 使用 hutool 工具包生成6位随机数
            String verCode = RandomUtil.randomNumbers(6);
            String[] templateParamSet = new String[]{verCode, REGISTER_CODE_VALID_TIME + ""};
            // 将验证码缓存至redis中并设置过期时间
            redisTemplate.opsForValue().set(phoneNum, verCode, REGISTER_CODE_VALID_TIME, TimeUnit.MINUTES);
            return sendVerCodeToPhone(phoneNum,
                    "userId",
                    smsProperties.getTemplateIdMap().get("register"),
                    templateParamSet);
        }
    }
    
    

    以上代码中使用了redis缓存验证码,可以更具项目需求进行更换。控制层代码根据项目需求完成即可,这里不贴代码。

    注意:如果项目有上线需求一定要做好对于短信验证码接口被恶意调用的防范措施 ===> 参考

    📘 参考资料

    1. 如何防止短信验证码接口被恶意调用攻击?
    2. 腾讯云发送短信验证码服务—csdn
    3. 腾讯云短信服务Java SDK—官方文档

    个人博客地址:https://orange-code.gitee.io/

    更多相关内容
  • 腾讯云短信接口

    2020-12-22 10:57:20
    如何快速开通腾讯云短信服务:https://cloud.tencent.com/document/product/382/37745 使用python进行配置的间接:https://cloud.tencent.com/document/product/382/11672 个人使用心得(下面的例子是我个人项目中...
  • 腾讯云短信接口开发demo,,所有的配置在application.xml中,自行配置,,还有些配置需要在腾讯云平台配置,根据他的api文档配置就可以了。附腾讯云api地址https://cloud.tencent.com/document/product/382/18071
  • 主要介绍了Django之腾讯云短信的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 阿里云/腾讯云短信发送,C#,.Net 4.5
  • 添加TopSdk.dll,SMS.DLL引用 声明 using SMS; 调用 sms.send();//1成功0失败 添加配置文件 <!--短信配置--> ...--使用那种平台(ali是阿里,sh是用上海,qq是QQ)--> <add key="pingtai" value="sh"/>
  • 腾讯云短信(SMS)插件1. 插件介绍标题名称中文名称腾讯云短信(SMS)插件英文名称tencentcloud-plugin-sms最新版本v1.0.11 (2021.01.11)适用平台适用产品GitHub项目gitee项目Demo项目主创团队腾讯云中小企业产品...
  • 腾讯云短信api文档

    2018-04-26 23:16:39
    腾讯云 短信服务接口文档,超详细,可以按照文档要求直接对接腾讯云,实现自己的应用增加短信验证功能,或者短信提醒功能。
  • 阿帕云腾讯云短信插件API自动提交.zip
  • 腾讯云短信接口jar包

    2018-10-17 17:17:44
    使用腾讯云短信服务是,java开发所需要的jar包。。。。
  • Java基于腾讯云短信和阿里云短信整合的一个简单demo.zip
  • 腾讯云短信服务jar包

    2018-04-18 11:36:48
    腾讯云短信服务进行java开发所需要的jar包整合。参上。
  • fastadmin腾讯云短信插件安装了不会用?没有教程?不知道怎么调取怎么发短信?直接下载这个吧,简单的做了点改动。替换直接可用,有使用说明。
  • 腾讯云短信集成.rar

    2020-05-13 11:31:43
    在开发过程中,做个过好多个短信接入的项目,都很简单,最近集成腾讯云短信,竟然弄了好长的时间,腾讯云的接口感觉也是个坑啊!现在我展示一下集成好的短信发送,避免更多的人踩坑。
  • 主要介绍了java 实现发短信功能---腾讯云短信 ,需要的朋友可以参考下
  • 腾讯云短信

    2022-01-30 13:09:43
    前一阵子刚过,移动啊,支付宝什么的,好多都是在阳历生日给发送祝福,...一、腾讯云上需要有账号,短信可以自己买套餐,目前腾讯搞活动,赠100条/月短信,需求不大的话,可以先白嫖着。 进入短信控制台,先去创建短

    前一阵子刚过,移动啊,支付宝什么的,好多都是在阳历生日给发送祝福,但是也有一部分人过阴历生日,不过阳历生日的,所以,就想着自己写一个能在阴历生日当天发送生日祝福的功能,只是一个小功能,记录一下。

    涉及到的知识点,分3部分

    一、短信;

    二、获取当天阴历日期;

    三、定时任务;

    之前的博客有写怎么样去设置定时任务,后面再说获取当天阴历日期,先记录一下短信情况。

    一、腾讯云上需要有账号,短信可以自己买套餐,目前腾讯搞活动,赠100条/月短信,需求不大的话,可以先白嫖着。

    进入短信控制台,先去创建短信签名和短信模板。这两个是必须有的。

    建议选择自用,不过也需要有对应网站域名的备案等信息

    选择他用的话,需要上传的东西更多 

    需要把网站名称或关键字,或者全称写上去,可以试几次,还需要把网站截图发过去。

    多试几次,创建好签名,还需要创建模板

    一般是验证码什么的,按照上面选择就好,如果有自己需要的格式,需要留出{1},{2}这些符号,用来后面替换掉自己想发送的信息。

    还有一个是应用

    现在,控制台的配置好了,需要去写PHP代码了

    先去下载sdk包

    地址:GitHub - qcloudsms/qcloudsms_php: qcloudsms sdk for php

     有用的也就是src里面的十几个文件

    下载好之后,放进项目中,其中需要注意的是

     在extend(tp5框架)下,先创建一个Qcloud文件,把src改名为Sms放进去,才能用。要不一个一个改里面的namespace什么的太麻烦了。

    文件放好之后,就是调用了

     传过来的参数可多可少

    其中$params中的数据,是前面创建模板时候预留的{1},{2}的替换值,有一个就写几个$params里面的值必须为数组,可根据自己需要设置数据。

    下一步,填写appid,appkey等值

    右侧应用列表,里面找到你之前创建的应用 

    点开,里面找到SDKAppID,还有App Key。

    然后去模板id

    签名的话,不需要id,是需要填写内容

    基本OK了,然后写上地址,先调用一下

    //短信接口
        public function sendMessageToPerson($phoneNumbers,$name,$message){
            // 短信应用 SDK AppID
            $appid = 140000000; // SDK AppID 以1400开头
            // 短信应用 SDK AppKey
            $appkey = "a4e055a7d637a29c11c500000000593c";
            // 需要发送短信的手机号码
            //$phoneNumbers = input("phone");
            // 短信模板 ID,需要在短信控制台中申请
            $templateId = 111111;  // NOTE: 这里的模板 ID`7839`只是示例,真实的模板 ID 需要在短信控制台中申请
            $smsSign = "签名内容"; // NOTE: 签名参数使用的是`签名内容`,而不是`签名ID`。这里的签名"腾讯云"只是示例,真实的签名需要在短信控制台申请
            try {
                $ssender = new SmsSingleSender($appid, $appkey);
                $params = [$name,$message];//生成随机数
    
                $result = $ssender->sendWithParam("86", $phoneNumbers, $templateId, $params, $smsSign,"", "");
                $rsp = json_decode($result);
                dump($result);die;
                echo json(["result"=>$rsp->result,"code"=>$params]);
            } catch(\Exception $e) {
                dump($e);
            }
        }

    有报错的话,把$result打印一下即可 

    成功收到短信,发送短信部分OK了。后续更新获取今天阴历日期博客。 

    展开全文
  • tencentcloud_sms插件是一款腾讯云研发的,提供给DiscuzX站长使用的官方插件。使DiscuzX支持手机号登录,通过手机号+短信验证码找回密码等功能
  • 腾讯云相关的 1. SendSMS 2. 拉取状态 3. 短信签名 4. 短信模板 5. 短信统计 6. 其它
  • 我假设你已经满足了以下几个前提 + 已经开通了腾讯云短信业务 + 创建好了短信签名 + 也已经审核过了短信正文模板 + 并且已经知道自己的SDK AppID、签名ID、短信模板ID Python 相关需要安装腾讯云提供的模块或SDK ...
  • 官方提供的sdk文件缺少扩展,此接口已完整安装扩展,直接解压到项目调用即可
  • 2、"extend"字段的配置请联系腾讯云短信技术支持 3、sendisms接口,"tel"字段为国际电话号码通用格式,如:"+8613788888888" 4、"sig"字段根据公式sha256(appkey=$appkey&random=$random&time=$time&mobile=$mobile)...
  • 腾讯云相关的演示程序,不包含控件 1. SendSMS 2. 拉取状态 3. 短信签名 4. 短信模板 5. 短信统计 6. 其它
  • 腾讯云 短信 使用步骤 1、进入腾讯云搜索“短信”,进入短信控制页面 2、点击签名管理创建签名 3、点击正文模板管理,创建几个合适的短信模板 4、点击就应用管理->应用列表,创建一个应用,应用中的SDK AppID...

    腾讯云 短信

    使用步骤

    1、进入腾讯云搜索“短信”,进入短信控制页面

    2、点击签名管理创建签名

    在这里插入图片描述

    3、点击正文模板管理,创建几个合适的短信模板

    在这里插入图片描述

    4、点击就应用管理->应用列表,创建一个应用,应用中的SDK AppID和App Key都是后面需要用到的

    在这里插入图片描述
    在这里插入图片描述

    5、springboot项目中 pom.xml添加依赖项

    <dependency>
        <groupId>com.github.qcloudsms</groupId>
        <artifactId>qcloudsms</artifactId>
        <version>1.0.6</version>
    </dependency>
    

    6、创建实体Sms,存放短信服务相关的属性

    package com.shenhua.sms.test.entity;
    
    /**
     * @program: sms-test
     * @Description: 发送短信必要的实体
     * @Author: Akio
     * @Create: 2022-05-28 11:49
     **/
    public class Sms {
        private String phone; // 手机号
        private String verification_code; // 验证码
        private Integer period4validity; // 有效期
    
        public Sms() {
        }
    
        public Sms(String phone, String verification_code, Integer period4validity) {
            this.phone = phone;
            this.verification_code = verification_code;
            this.period4validity = period4validity;
        }
    
        public String getPhone() {
            return phone;
        }
    
        public void setPhone(String phone) {
            this.phone = phone;
        }
    
        public String getVerification_code() {
            return verification_code;
        }
    
        public void setVerification_code(String verification_code) {
            this.verification_code = verification_code;
        }
    
        public Integer getPeriod4validity() {
            return period4validity;
        }
    
        public void setPeriod4validity(Integer period4validity) {
            this.period4validity = period4validity;
        }
    }
    

    7、对应sms短信配置写在application.properties中

    server.port=8872
    
    tencent.sms.AppID=140******
    tencent.sms.AppKey=d567dd64d2101e****************
    # 注意,这个SmsSignName是你的签名内容,不是ID,如果你的签名内容是中文,推荐转换为unicode编码,使用这个工具转https://tools.ijkxs.com/tools/unicode
    tencent.sms.SmsSignName=\u770b\u89c1\u4f60\u4e86
    tencent.sms.template.Register=141****
    

    8、创建用于发送短信的控制器接口SmsController

    package com.shenhua.sms.test.controller;
    
    import com.github.qcloudsms.SmsSingleSender;
    import com.github.qcloudsms.SmsSingleSenderResult;
    import com.github.qcloudsms.httpclient.HTTPException;
    import com.shenhua.sms.test.entity.Sms;
    import org.json.JSONException;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.web.bind.annotation.RequestBody;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.io.IOException;
    
    /**
     * @program: sms-test
     * @Description: 发送短信控制器
     * @Author: Akio
     * @Create: 2022-05-28 12:00
     **/
    @RestController
    @RequestMapping(value = "/sms")
    public class SmsController {
        @Value("${tencent.sms.AppID}")
        private Integer AppID;
    
        @Value("${tencent.sms.AppKey}")
        private String AppKey;
    
        @Value("${tencent.sms.SmsSignName}")
        private String smsSignName;
    
        @Value("${tencent.sms.template.Register}")
        private Integer template4Register;
    
        @RequestMapping(value = "/sendRegisterCode", method = RequestMethod.POST)
        public void sendCode(@RequestBody Sms sms) {
            try {
                // 短信中的参数,使用的模板是“您的注册验证码为{1},有效期{2}分钟,如非本人操作,请忽略本短信。”,所以填入两个参数
                String[] params4sms = {sms.getVerification_code(), Integer.toString(sms.getPeriod4validity())};
                SmsSingleSender smsSingleSender = new SmsSingleSender(AppID, AppKey);
                SmsSingleSenderResult result = smsSingleSender.sendWithParam("86", sms.getPhone(), template4Register,
                        params4sms, smsSignName, "", "");
                System.out.println(result);
            } catch (HTTPException e) {
                e.printStackTrace();
            } catch (JSONException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    

    9、测试

    在这里插入图片描述
    错误码查看:https://cloud.tencent.com/document/product/382/59177

    10、然后调用此接口,传入对应参数即可发送消息,也可以将其包装为服务工具类,结合nosql来实现平台的注册登录等

    展开全文
  • 傻瓜式调取腾讯云短信sdk,发送短信服务

    第一步:登陆腾讯云

    进入短信服务

    链接地址:登录 - 腾讯云

    第二步:先设置签名

    进入国内短信->签名管理

    创建签名时图片要保证清晰可见,名称不能有违禁字眼

    第三步:在设置模板

    进入国内短信->正文模板管理

    审核通过后就可以正常使用 

    第四步:如果群发在去设置群发信息

    第五步:下载对应的sdk

    去下载对应语言的sdk,有composer安装和github安装方式 推荐composer

    链接:短信 PHP SDK-SDK 文档-文档中心-腾讯云-腾讯云

     

    第六步:实现短信发送功能

     注意事项:

    require 'ROOT_PATH'.'/addons/flj_shop/core/vendor/autoload.php';

    这个引入文件根据自己项目实际地址配置

    /* 模板参数: 模板参数的个数需要与 TemplateId 对应模板的变量个数保持一致,若无模板参数,则设置为空*/
    $req->TemplateParamSet = $data['template_code'];//数组多个参数
                /* 下发手机号码,采用 E.164 标准,+[国家或地区码][手机号]
                 * 示例如:+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号*/
     $req->PhoneNumberSet = $data['phone_all'];//数组可以发多个
    

    上面二个参数都是数组格式的

    下面是代码示范: 

    <?php
    /**
     * 腾讯云短信管理接口api
     *
     *
     **/
    namespace app\admin\controller;
    require 'ROOT_PATH'.'/addons/flj_shop/core/vendor/autoload.php';
    // 导入对应产品模块的client
    use TencentCloud\Sms\V20210111\SmsClient;
    // 导入要请求接口对应的Request类
    use TencentCloud\Sms\V20210111\Models\SendSmsRequest;
    use TencentCloud\Common\Exception\TencentCloudSDKException;
    use TencentCloud\Common\Credential;
    // 导入可选配置类
    use TencentCloud\Common\Profile\ClientProfile;
    use TencentCloud\Common\Profile\HttpProfile;
    
    class TencentMessage
    {
        //发送短信
        public function SendSms($data=array()){
            try {
                /* 必要步骤:
                 * 实例化一个认证对象,入参需要传入腾讯云账户密钥对secretId,secretKey。
                 * 这里采用的是从环境变量读取的方式,需要在环境变量中先设置这两个值。
                 * 以免泄露密钥对危及你的财产安全。
                 * SecretId、SecretKey 查询: https://console.cloud.tencent.com/cam/capi */
                $cred = new Credential("SecretId", "SecretKey");
                //$cred = new Credential(getenv("TENCENTCLOUD_SECRET_ID"), getenv("TENCENTCLOUD_SECRET_KEY"));
    
                // 实例化一个http选项,可选的,没有特殊需求可以跳过
                $httpProfile = new HttpProfile();
                // 配置代理(无需要直接忽略)
                // $httpProfile->setProxy("https://ip:port");
                $httpProfile->setReqMethod("GET");  // post请求(默认为post请求)
                $httpProfile->setReqTimeout(30);    // 请求超时时间,单位为秒(默认60秒)
                $httpProfile->setEndpoint("sms.tencentcloudapi.com");  // 指定接入地域域名(默认就近接入)
    
                // 实例化一个client选项,可选的,没有特殊需求可以跳过
                $clientProfile = new ClientProfile();
                $clientProfile->setSignMethod("TC3-HMAC-SHA256");  // 指定签名算法(默认为HmacSHA256)
                $clientProfile->setHttpProfile($httpProfile);
    
                // 实例化要请求产品(以sms为例)的client对象,clientProfile是可选的
                // 第二个参数是地域信息,可以直接填写字符串ap-guangzhou,支持的地域列表参考 https://cloud.tencent.com/document/api/382/52071#.E5.9C.B0.E5.9F.9F.E5.88.97.E8.A1.A8
                $client = new SmsClient($cred, "ap-guangzhou", $clientProfile);
    
                // 实例化一个 sms 发送短信请求对象,每个接口都会对应一个request对象。
                $req = new SendSmsRequest();
    
    
    
                /* 短信应用ID: 短信SdkAppId在 [短信控制台] 添加应用后生成的实际SdkAppId,示例如1400006666 */
                $req->SmsSdkAppId = $data['appid'];
                /* 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名 */
                $req->SignName = $data['qm_name'];
                /* 模板 ID: 必须填写已审核通过的模板 ID */
                $req->TemplateId = $data['template_id'];
                /* 模板参数: 模板参数的个数需要与 TemplateId 对应模板的变量个数保持一致,若无模板参数,则设置为空*/
                $req->TemplateParamSet = $data['template_code'];//数组多个参数
                /* 下发手机号码,采用 E.164 标准,+[国家或地区码][手机号]
                 * 示例如:+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号*/
                $req->PhoneNumberSet = $data['phone_all'];//数组可以发多个
                /* 用户的 session 内容(无需要可忽略): 可以携带用户侧 ID 等上下文信息,server 会原样返回 */
                $req->SessionContext = "";
                /* 短信码号扩展号(无需要可忽略): 默认未开通,如需开通请联系 [腾讯云短信小助手] */
                $req->ExtendCode = "";
                /* 国际/港澳台短信 SenderId(无需要可忽略): 国内短信填空,默认未开通,如需开通请联系 [腾讯云短信小助手] */
                $req->SenderId = "";
    
                // 通过client对象调用SendSms方法发起请求。注意请求方法名与请求对象是对应的
                // 返回的resp是一个SendSmsResponse类的实例,与请求对象对应
                $resp = $client->SendSms($req);
    
                // 输出json格式的字符串回包
                print_r($resp->toJsonString());
    
                // print_r($resp->TotalCount);
    
    
            }
            catch(TencentCloudSDKException $e) {
                echo $e;
            }
        }
    
    }

    展开全文
  • 腾讯云短信PHP

    2018-03-10 11:24:23
    亲测PHP腾讯云短信项目,只需要简单的修改APPID、key和手机号码就可以发送了。特别友情提示:一定要发送和腾讯云审核通过的模板一样内容。
  • 阿里云及腾讯云短信封装,php语言开发, 适合各种开源框架模版
  • Springboot整合腾讯云短信发送
  • 使用腾讯云短信API所使用的工具类,jar包。由于官网下载较慢且不完整,所以整理了一下全部上传。下载后可以直接导入编译器使用。
  • 打开,你会看到免费试用。点进去进入短信服务的控制台......
  • PHP腾讯云短信接口

    2022-09-05 13:59:16
    腾讯云短信接口

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,177
精华内容 3,670
关键字:

腾讯云短信