Spring Cloud Alibaba-08-SMS短信服务

Spring Cloud Alibaba-08-SMS短信服务

码农世界 2024-05-24 后端 68 次浏览 0个评论

Lison , v1.0.0, 2024.5.1

Spring Cloud Alibaba-08-SMS短信服务

短信服务介绍

短信服务(Short Message Service)是阿里云为用户提供的一种通信服务的能力。

产品优势:覆盖全面、高并发处理、消息堆积处理、开发管理简单、智能监控调度

产品功能:短信通知、短信验证码、推广短信、异步通知、数据统计

应用场景:短信验证码、系统信息推送、推广短信等

Spring Cloud Alibaba-08-SMS短信服务

短信服务使用

1、入驻阿里云

Spring Cloud Alibaba-08-SMS短信服务

2、开通短信服务,按流程创建资质、申请前面,创建模版,系统设置,发送短信

Spring Cloud Alibaba-08-SMS短信服务

SMS概念

  • 短信服务(Short Message Service)

    短信服务是广大企业客户快速触达手机用户所优选使用的通信能力。调用API或用群发助手,即可发送验证码、通知类和营销类短信。

  • 短信模版(TemplateId)

    使用短信服务首先都需要创建短信模板提交审核,这样可以防止不法分子通过云服务商提供的短信服务实施短信诈骗。

  • 短信签名(SignName)

    短信末尾会附上签名以识别此条短信是由谁发送,这样可以令用户对短信来源有一个明确的印象。

  • 地域(RegionId)

    地域表示SMS的数据中心所在物理位置。可以根据费用、请求来源等选择合适的地域,一般是阿里云短信配置。

  • 访问密钥(AccessKey)

    AccessKey简称AK,指的是访问身份验证中用到的AccessKey ID和AccessKey Secret。SMS通过使用AccessKey ID和AccessKey Secret对称加密的方法来验证某个请求的发送者身份。AccessKey ID用于标识用户;AccessKey Secret是用户用于加密签名字符串和SMS用来验证签名字符串的密钥,必须保密。关于获取AccessKey的方法

    目前BladeX提供的blade-starter-sms集成了四种sms,分别为:云片sms、阿里云sms、七牛sms、腾讯sms

    功能测试

    引入依赖:

    
      
        com.alibaba.cloud
        spring-cloud-alicloud-sms
    
    
    sms:
      enabled: true
      name: aliyun
      template-id: SMS_xxxx
      sign-name: xxxxx
      access-key: xxxxxxx
      secret-key: xxxxxxx
      region-id: cn-hangzhou
    

    使用阿里云提供的Demo测试短信发送

    public class SmsUtil {
        //替换成自己申请的accessKeyId
        private static String accessKeyId = "xxx"; //替换成自己申请的accessKeySecret
        private static String accessKeySecret = "xxxxx";
        static final String product = "Dysmsapi";
        static final String domain = "dysmsapi.aliyuncs.com";
        /**
         * 发送短信
         *
         * @param phoneNumbers 要发送短信到哪个手机号
         * @param signName     短信签名[必须使用前面申请的]
         * @param templateCode 短信短信模板ID[必须使用前面申请的]
         * @param param        模板中${code}位置传递的内容
         */
        public static void sendSms(String phoneNumbers, String signName, String templateCode, String param) {
            try {
                System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
                System.setProperty("sun.net.client.defaultReadTimeout", "10000");
                //初始化acsClient,暂不支持region化
                IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
                DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
                IAcsClient acsClient = new DefaultAcsClient(profile);
                SendSmsRequest request = new SendSmsRequest();
                request.setPhoneNumbers(phoneNumbers);
                request.setSignName(signName);
                request.setTemplateCode(templateCode);
                request.setTemplateParam(param);
                request.setOutId("yourOutId");
                SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
                if (!"OK".
                        equals(sendSmsResponse.getCode())) {
                    throw new RuntimeException(sendSmsResponse.getMessage());
                }
            } catch (Exception e) {
                e.printStackTrace();
                throw new RuntimeException("发送短信失败");
            }
        }
    }
    

转载请注明来自码农世界,本文标题:《Spring Cloud Alibaba-08-SMS短信服务》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,68人围观)参与讨论

还没有评论,来说两句吧...

Top