阿里云好像短信服务要营业执照

短信服务地址:

https://www.aliyun.com/product/sms?spm=5176.19720258.J_2686872250.9.775276f4077PYC&scm=20140722.M_5933522.P_197.MO_401-ID_5933522-MID_5933522-CID_20739-ST_3903-V_1

快速学习

1.绑定测试手机号码
(只能测试在这里面添加过的号码)

2.使用专用的测试模板(下面就有默认测试用例的内容)

3.点击 调用API发送短信

然后进入api测试页面

点击沙箱运行,开始用云服务器测试代码

等他编译,打包好之后按下回车

就会发送短信:

之后就收到短信

在这里复制依赖,然后代码复制到xml里


我这里的依赖是:

 <dependency><groupId>com.aliyun</groupId><artifactId>dysmsapi20170525</artifactId><version>2.0.23</version></dependency>

按照自己的风格来加到service里或者直接用我的

MsmService

package com.lkw.msmservice.service;import java.util.Map;public interface MsmService {boolean send(Map<String, Object> param, String phone) ;
}

MsmServiceImpl

package com.lkw.msmservice.service.impl;import com.alibaba.fastjson.JSONObject;
import com.aliyun.dysmsapi20170525.Client;
import com.aliyun.dysmsapi20170525.models.SendSmsRequest;
import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
import com.aliyun.teaopenapi.models.Config;
import com.lkw.msmservice.Utils.ConstantMsmUtil;
import com.lkw.msmservice.service.MsmService;
import com.lkw.servicebase.exceptionhandler.GuliException;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;import java.util.Map;@Transactional
@Service
public class MsmServiceImpl implements MsmService {@Overridepublic boolean send(Map<String, Object> param, String phone){try {//创建客户端Client client = new Client(new Config().setEndpoint("dysmsapi.aliyuncs.com").setAccessKeyId(ConstantMsmUtil.ACCESS_KEY_ID).setAccessKeySecret(ConstantMsmUtil.ACCESS_KEY_SECRET));//创建请求SendSmsRequest sendSmsRequest = new SendSmsRequest().setSignName("阿里云短信测试").setTemplateCode("SMS_154950909").setPhoneNumbers(phone).setTemplateParam(JSONObject.toJSONString(param));//查看客户端SendSmsResponse sendSmsResponse = client.sendSms(sendSmsRequest);//输出打印信息//System.out.println(sendSmsResponse.getBody().getMessage());} catch (Exception e) {throw new GuliException();}return true;}
}

获取yml里的阿里云配置用的
ConstantMsmUtil

package com.lkw.msmservice.Utils;import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;@Component
public class ConstantMsmUtil implements InitializingBean {@Value("${aliyun.sms.keyid}")private String keyid;@Value("${aliyun.sms.keysecret}")private String keysecret;public static String ACCESS_KEY_SECRET;public static String ACCESS_KEY_ID;@Overridepublic void afterPropertiesSet() throws Exception {ACCESS_KEY_ID = keyid;ACCESS_KEY_SECRET = keysecret;}
}

//控制层
MsmController

package com.lkw.msmservice.controller;import com.lkw.cmsservice.commonutils.R;
import com.lkw.cmsservice.commonutils.RandomUtil;
import com.lkw.msmservice.service.MsmService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.HashMap;
import java.util.Map;@CrossOrigin
@RestController
@RequestMapping("/edumsm/msm")
public class MsmController {@Autowiredprivate MsmService msmService;@GetMapping("send/{phone}")public R sendMsm(@PathVariable String phone){String code ;//2、如果redis获取不到,进行阿里云发送//生成随机数,传递阿里云进行发送code = RandomUtil.getFourBitRandom();Map<String, Object> param = new HashMap<>();param.put("code",code);//调用service的方法,发送boolean isSend = msmService.send(param,phone);if (isSend) {//阿里云发送成功,把发送成功的验证码放入redis缓存中//设置有效时间//redisTemplate.opsForValue().set(phone,code,5, TimeUnit.MINUTES);return R.ok();}elsereturn R.error().message("短信发送失败");}
}

yml
只展示本文有用配置的在

aliyun:sms:keyid: LTAI5tS6amFwgFinXXU9KMstkeysecret: 9lJ2OsiEvYBeIXLQErVMNQMhDQQKgA

获取随机验证码的工具类

RandomUtil

package com.lkw.cmsservice.commonutils;import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Random;/*** 获取随机数* * @author qianyi**/
public class RandomUtil {private static final Random random = new Random();private static final DecimalFormat fourdf = new DecimalFormat("0000");private static final DecimalFormat sixdf = new DecimalFormat("000000");public static String getFourBitRandom() {return fourdf.format(random.nextInt(10000));}public static String getSixBitRandom() {return sixdf.format(random.nextInt(1000000));}/*** 给定数组,抽取n个数据* @param list* @param n* @return*/public static ArrayList getRandom(List list, int n) {Random random = new Random();HashMap<Object, Object> hashMap = new HashMap<Object, Object>();// 生成随机数字并存入HashMapfor (int i = 0; i < list.size(); i++) {int number = random.nextInt(100) + 1;hashMap.put(number, i);}// 从HashMap导入数组Object[] robjs = hashMap.values().toArray();ArrayList r = new ArrayList();// 遍历数组并打印数据for (int i = 0; i < n; i++) {r.add(list.get((int) robjs[i]));System.out.print(list.get((int) robjs[i]) + "\t");}System.out.print("\n");return r;}
}

阿里云短信服务(无需营业执照)快速上手相关推荐

  1. SpringBoot-短信验证码-快速入门Demo(含redis)(手把手教你开通阿里云短信服务到写出个最终代码来)

    B站小狂神-此博客的内容就是看了这个视频的总结(博主自己写的哦~并非转载) 视频链接-[狂神说]通俗易懂的阿里云短信业务实战教程(露脸) 您是否还在为别人的项目有短信功能自己的却没有? 您是否还在为自 ...

  2. vue+springboot+阿里云短信服务(集成redis实现验证码登录业务)

    阿里云短信服务-介绍 阿里云短信服务(Short Message Service)是广大企业客户快速触达手机用户所优选使用的通信能力.调用API或用群发助手,即可发送验证码.通知类和营销类短信:国内验 ...

  3. 阿里云短信服务——短信发送验证码

    引言 短信服务现在在很多地方都用的到,我们最多接触到的可能就是验证码的发送了:现在很多大厂都提供由短信服务对应的api,直接调用就可以轻松实现短信发送:下面我以阿里云为例,演示一下如何短信发送验证码: ...

  4. 阿里云短信服务上手测试

    官方文档介绍非常详细(阿里云短信服务官方网址),只需要按照快速入门-使用指引中的步骤逐步操作即可,其中比较关键的步骤是创建AccessKey和获取Access Key ID和Access Key Se ...

  5. 阿里云短信服务Java实现

    文章目录 1.阿里云用户权限 2.开通阿里云短信服务 3.帮助文档 4.编写测试代码 真实项目应用 1.阿里云用户权限 阿里云平台有很多业务,用户登录阿里云之后,要想使用业务,必须开通该业务的权限 登 ...

  6. 阿里云短信服务(申请与代码)

    目前阿里云短信签名审核更加严格了,如果不通过请转至<腾讯云短信申请与代码>,腾讯云简单易通过 记录申请短信服务签名的坑 短信服务签名申请注意事项: 自2020年12月17日开始,阿里云短信 ...

  7. 阿里云短信服务-个人账户测试短信服务

    前言 阿里的短信服务分为三块,一是阿里云短信服务,二是云通讯,三是阿里大于,不过后期都会统一到阿里云短信服务平台的,所以这里只需要学习如何使用阿里云短信服务就可以了. 如果是个人开发者,项目呢还没上线 ...

  8. SpringBoot整合阿里云短信服务详细过程(保证初学者也能实现)

    前言 网上关于实操性的文章普遍大部分都记录不全,要么只记录重点部分,对于刚学习的小伙伴来说看起来是比较困难的 所以,基于这一点. 该文章会详细介绍使用SpringBoot整合阿里云短信服务的每一步过程 ...

  9. SpringBoot实现阿里云短信服务

    阿里云短信服务 了解阿里云用户权限 准备工作 开启子用户 新建一个用户组 创建用户并添加进用户组 开启阿里云短信服务 添加模板 添加签名 编写代码测试 新建项目 导入依赖 编写测试代码 开启redis ...

  10. Java实现短信验证码(阿里云短信服务)

    前言: 很多时候我们做的项目都需要上图这样的验证码来帮助我们完成更好的功能,比如:什么登录注册,忘记密码需要发送手机验证码之类的啊...下面分享我今天通过阿里云短信服务实现的短信验证码,操作都很简单, ...

最新文章

  1. 生猛!PDF 版本 万赞 Java 手册开放下载!
  2. dex文件结构(二):dex文件加载基本原理
  3. android h5 禁止缩放,vue h5移动端禁止缩放代码
  4. Java基础 println 输出常量的示例
  5. 使用ubuntu的tasksel安装LAMP全家桶
  6. 【Splay】波动值之和(金牌导航 Splay-1)
  7. CodeSmith Professional 5与VS2010有冲突
  8. [经典控件]按钮和菜单
  9. Android Sqite数据库 9
  10. Windows操作系统的发展历程
  11. 【Unity开发小技巧】Unity中文转拼音
  12. 浙江大学黄杨思博计算机学院,浙江大学节能减排社会实践与科技竞赛成功-浙江大学本科生院.DOC...
  13. 《东周列国志》第四十六回 楚商臣宫中弑父 秦穆公崤谷封尸
  14. 哪怕我变成一个庸俗女子
  15. 交换机 路由器 DNS服务器基础实验
  16. 论如何通过真值表来求逻辑函数
  17. 2DPCA、(2D)2PCA公式推导
  18. python语言是什么语言
  19. Yocto系列讲解[理论篇] 3 - meta layer recipe class概念介绍
  20. UKF滤波的简单理解与仿真

热门文章

  1. Python爬取文章和小说内容
  2. Python 输出对齐
  3. Java 将控制台输出打印 输出到本地文件
  4. 2021 HW —— 简单过程-致远OA
  5. 年薪200万是怎样的一种体验?
  6. 英语单词在计算机中怎么存放,电脑怎么学英语单词
  7. python爬贴吧回复_Python爬虫实践,获取百度贴吧内容
  8. 【Java】异步回调转为同步返回
  9. 达梦数据库的表空间管理
  10. 浅谈基于过程与基于对象