企业做网站要注意些什么,市场营销策划案例经典大全,深圳动力网站设计公司,招聘网站评估怎么做目录
SMS
环境调试
从阿里云云市场中购买第三方短信服务
调试短信验证码功能
实战开发
封装组件
对外接口
调用演示 SMS 环境调试
从阿里云云市场中购买第三方短信服务
a#xff09;进入阿里云首页#xff0c;然后从云市场中找到 “短信” #xff08;一定要从 云…目录
SMS
环境调试
从阿里云云市场中购买第三方短信服务
调试短信验证码功能
实战开发
封装组件
对外接口
调用演示 SMS 环境调试
从阿里云云市场中购买第三方短信服务
a进入阿里云首页然后从云市场中找到 “短信” 一定要从 云市场 去找短信服务否则需要企业证明备案 阿里云-计算为了无法计算的价值阿里云——阿里巴巴集团旗下公司是全球领先的云计算及人工智能科技公司之一。提供免费试用、云服务器、云数据库、云安全、云企业应用等云计算服务以及大数据、人工智能服务、精准定制基于场景的行业解决方案。免费备案7x24小时售后支持助企业无忧上云。https://www.aliyun.com/ b然后任意挑选一个合适的短信服务这里以一个为例 c点击购买更多 d然后按照自己的需求购买还是有很多可以白嫖的 这样就购买成功了.
e之后你就可以在控制台里搜索 “云市场”找到你购买的服务 Ps将来使用短信服务给手机发送验证码时就需要指定上面个的 AppCode千万不可泄漏防止别人乱刷 调试短信验证码功能
a进入你购买的服务后找到 API 接口点击 “去调试” b 如下界面用到的参数都可以参照 “商品介绍” 中的描述 c调整参数点击发送请求随后返回响应显示 ok说明调试成功此时你就可以看到发送到你手机上的验证码了. 实战开发
封装组件
a复制请求示例中的所有代码粘贴到你的项目中 b按照注释中的内容去引入对应的依赖和工具类 c建议将短信服务专门到一个微服务中专门用例处理调用第三方服务的接口将来其他服务需要使用时进行远程调用接口解耦合不要跟我张口闭口性能优化....
import org.apache.http.HttpResponse;
import org.cyk.gulimall.third.infra.HttpUtils;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;Component
public class SmsComponent {/*** 这里的 host、pat、method、appcode 可以配置到配置文件中但是没必要* 因为将来如果真要换另一个企业的短信服务接口的需要的参数变化都还是挺大的所以基本没有复用的必要* code: 验证码* phone: 手机号*/public void sendMsg(String code, String phone) {String host https://dfsns.market.alicloudapi.com;String path /data/send_sms;String method POST;String appcode 91dasjhfk75e0574afdajsf82g3r3bf923r;MapString, String headers new HashMap();//最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105headers.put(Authorization, APPCODE appcode);//根据API的要求定义相对应的Content-Typeheaders.put(Content-Type, application/x-www-form-urlencoded; charsetUTF-8);MapString, String querys new HashMap();MapString, String bodys new HashMap();bodys.put(content, code: code);bodys.put(template_id, CST_ptdie100); //注意CST_ptdie100该模板ID仅为调试使用调试结果为status: OK 即表示接口调用成功然后联系客服报备自己的专属签名模板ID以保证短信稳定下发bodys.put(phone_number, phone);try {HttpResponse response HttpUtils.doPost(host, path, method, headers, querys, bodys);System.out.println(response.toString());} catch (Exception e) {e.printStackTrace();}}}对外接口
RestController
RequestMapping(/auth/sms)
class SmsApi(val thirdSmsRpcService: ThirdSmsRpcService,val redisTemplate: StringRedisTemplate,
) {GetMapping(/send_code/{phone})fun sendCode(PathVariable(phone) phone: String, //此处省略格式校验): ApiRespInt {//1.验证码防刷val rCode redisTemplate.opsForValue().get(SmsRedisKey.getSMSKey(phone))rCode?.let { throw AppException(ApiStatus.CODE_GET_FAST, 验证码获取过于频繁) }//2.生成验证码//1) 生成 6 位随机数字val code (1..6).joinToString() { Random().nextInt(0, 10).toString() }//2) 保存到 Redis 上redisTemplate.opsForValue().set(SmsRedisKey.getSMSKey(phone), code, 1, TimeUnit.MINUTES)//3.向手机发送验证码thirdSmsRpcService.sendMsg(code, phone)return ApiResp.ok(1)}}Ps对于验证码接口防刷这里可以根据不同需求做得很复杂 调用演示
调用后手就可以收到以下短信. 关于短信的模板可以去联系客服进行申请.