做药物分析网站,门户网站是用户上网的第一入口,网站建设用哪的图片不侵权,做网站尺寸引言 在当今数字化时代#xff0c;短信服务在各种项目中扮演着重要角色#xff0c;如用户注册验证、订单通知、营销推广等。阿里云短信服务凭借其稳定、高效和丰富的功能#xff0c;成为众多开发者和企业的首选。本文将详细介绍如何在项目中集成阿里云短信服务#xff0c;帮… 引言 在当今数字化时代短信服务在各种项目中扮演着重要角色如用户注册验证、订单通知、营销推广等。阿里云短信服务凭借其稳定、高效和丰富的功能成为众多开发者和企业的首选。本文将详细介绍如何在项目中集成阿里云短信服务帮助开发者快速上手并实现相关功能。 阿里云短信服务简介 服务特点 高送达率依托阿里云强大的通信网络和优化算法确保短信能够快速、准确地送达用户手机。 高并发处理能力能够支持大规模的短信发送请求满足企业级应用的需求。 丰富的功能提供多种短信模板类型支持变量替换方便个性化定制短信内容。 安全可靠采用多重安全防护机制保障用户数据和隐私安全。 应用场景 用户注册与登录发送验证码短信实现用户身份验证。 订单通知及时通知用户订单状态更新如发货、配送、完成等。 营销推广向用户发送促销活动、新品推荐等短信提升用户活跃度和转化率。 其他通知如账户余额提醒、系统公告等。 集成步骤 1、注册阿里云账号开通短信服务 2、创建AccessKey ID和AccessKey Secret 3、创建模板、签名(可直接使用测试模板) 4、在项目中引入依赖 dependencygroupIdcom.aliyun/groupIdartifactIdalibabacloud-dysmsapi20170525/artifactIdversion3.0.1/version/dependencydependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactIdversion1.2.47/version/dependency
5、创建工具类
import com.alibaba.fastjson.JSONObject;
import com.aliyun.auth.credentials.Credential;
import com.aliyun.auth.credentials.provider.StaticCredentialProvider;
import com.aliyun.sdk.service.dysmsapi20170525.AsyncClient;
import com.aliyun.sdk.service.dysmsapi20170525.models.SendSmsRequest;
import com.aliyun.sdk.service.dysmsapi20170525.models.SendSmsResponse;
import com.google.gson.Gson;
import darabonba.core.client.ClientOverrideConfiguration;
import org.springframework.stereotype.Component;
import java.util.Map;
import java.util.concurrent.CompletableFuture;Component
public class ALIMessageUtil {public static final String ALIBABA_CLOUD_ACCESS_KEY_ID ;public static final String ALIBABA_CLOUD_ACCESS_KEY_SECRET ;public static final String ALIBABA_CLOUD_REGION_ID cn-qingdao;public static final String ALIBABA_CLOUD_ENDPOINT dysmsapi.aliyuncs.com;public static final String ALIBABA_CLOUD_SIGNNAME 阿里云短信测试;public static final String ALIBABA_CLOUD_TEMPLATE_CODE SMS_154950909;public static boolean sendMessage(String phone, MapString, Object params) {// 阿里云账号凭证配置StaticCredentialProvider provider StaticCredentialProvider.create(Credential.builder().accessKeyId(ALIBABA_CLOUD_ACCESS_KEY_ID).accessKeySecret(ALIBABA_CLOUD_ACCESS_KEY_SECRET).build());// 异步客户端AsyncClient client AsyncClient.builder().region(ALIBABA_CLOUD_REGION_ID) // Region ID.credentialsProvider(provider).overrideConfiguration(ClientOverrideConfiguration.create().setEndpointOverride(ALIBABA_CLOUD_ENDPOINT)).build();// 发送API参数配置SendSmsRequest sendSmsRequest SendSmsRequest.builder().signName(ALIBABA_CLOUD_SIGNNAME) //签名.templateCode(ALIBABA_CLOUD_TEMPLATE_CODE) //模板CODE.phoneNumbers(phone) //接收短信的手机号码.templateParam(JSONObject.toJSONString(params)) //短信内容.build();// 发送短信并且获得返回结果CompletableFutureSendSmsResponse response client.sendSms(sendSmsRequest);try {SendSmsResponse resp response.get();System.out.println(new Gson().toJson(resp.getBody()));return OK.equals(resp.getBody().getCode());} catch (Exception e) {e.printStackTrace();} finally {//关闭客户端client.close();}return false;}
}6、项目中使用即可(发送验证码)
GetMapping(/getCode)Operation(summary 获取验证码)public void getCode(RequestParam String Phone) {//随机生成六位数字验证码String code String.valueOf((int) ((Math.random() * 9 1) * 100000));MapString, Object params new HashMap();params.put(code, code);ALIMessageUtil.sendMessage(Phone, params);log.info(Phone-已发送短信 验证码为 code);//将验证码存在Redis中并且5分钟内有效}
7、验证测试