javaweb如何使用华为云短信通知公共类调用

下面我就详细讲解一下如何在Java Web项目中使用华为云短信服务,包括如何调用华为云短信服务SDK以及如何使用短信通知公共类发送短信。

1. 下载并导入SDK依赖

首先,需要下载并导入华为云短信服务的Java SDK依赖。我们可以在华为云短信服务官网下载Java SDK的zip压缩包,解压后得到以下文件:

├── README.md
├── bin
│   ├── smn
│   ├── smn.bat
│   ├── smn.ps1
│   ├── smnpy
│   ├── smnpy.bat
│   └── smnpy.ps1
├── docs
│   ├── SMN-Function-Invocation-Reference.md
│   ├── SMN-SDK-for-Java-User-Guide.md
│   └── examples.md
└── lib
    ├── SMN-SDK-for-Java-1.0.11.jar
    ├── gson-2.3.1.jar
    ├── httpclient-4.5.2.jar
    ├── httpcore-4.4.4.jar
    ├── httpmime-4.5.2.jar
    ├── log4j-1.2.17.jar
    ├── slf4j-api-1.7.18.jar
    └── slf4j-log4j12-1.7.18.jar

其中,lib目录下的SMN-SDK-for-Java-1.0.11.jar就是SDK的核心代码,我们需要将其导入我们的Java Web项目中。

2. 创建短信通知公共类

短信通知公共类是一个封装了短信发送逻辑的Java类,方便我们在项目中使用。我们可以创建一个名为SmsUtil的类,代码如下:

package com.example.utils;

import cn.hutool.core.util.RandomUtil;
import com.huawei.smn.model.request.sms.SmsPublishRequest;
import com.huawei.smn.model.request.sms.SmsPublishReqDto;
import com.huawei.smn.model.response.sms.SmsPublishResponse;
import com.huawei.smn.service.SendSmsService;
import com.huawei.smn.service.SmnServiceFactory;

public class SmsUtil {

    private static final String DOMAIN_NAME = "eu-de-messaging.example.com";//短信服务的用户域名,请根据实际情况修改
    private static final String PROJECT_ID = "your-project-id";//短信服务所在的项目ID,请根据实际情况修改
    private static final String REGION = "eu-de";//短信服务所在的区域,请根据实际情况修改
    private static final String ACCESS_KEY_ID = "your-access-key-id";//账号的Access Key,请根据实际情况修改
    private static final String SECRET_ACCESS_KEY = "your-secret-access-key";//账号的Secret Access Key,请根据实际情况修改

    private static final String SIGN_ID = "your-sign-id";//短信签名的ID,请根据实际情况修改
    private static final String TEMPLATE_ID = "your-template-id";//短信模板的ID,请根据实际情况修改

    public static SmsPublishResponse sendSms(String phoneNumber) {

        //生成随机验证码
        String verifyCode = RandomUtil.randomNumbers(6);

        //创建短信发送请求对象
        SmsPublishReqDto requestDto = new SmsPublishReqDto(SIGN_ID, TEMPLATE_ID, verifyCode, phoneNumber);

        SmsPublishRequest request = new SmsPublishRequest();
        request.setSmsPublishReqDto(requestDto);
        request.setProjectId(PROJECT_ID);

        //初始化短信服务Factory
        SmnServiceFactory factory = new SmnServiceFactory();
        factory.setAccessKeyId(ACCESS_KEY_ID);
        factory.setSecretAccessKey(SECRET_ACCESS_KEY);
        factory.setDomainName(DOMAIN_NAME);
        factory.setRegion(REGION);
        factory.setProjectId(PROJECT_ID);

        //创建短信服务
        SendSmsService smsService = factory.createSmsService();

        //发送短信
        SmsPublishResponse response = smsService.sendSms(request);

        return response;
    }
}

上述代码中,我们先定义了一些常量,如短信服务的用户域名、Access Key、短信签名ID、短信模板ID等。然后定义了一个sendSms方法,该方法接受一个手机号码作为参数,生成一个6位数的随机验证码,然后使用短信发布请求对象和短信服务Factory创建短信服务,最后调用短信服务的sendSms方法发送短信。

3. 调用短信通知公共类发送短信

在我们需要发送短信的地方,可以直接调用SmsUtil.sendSms方法即可发送短信。例如,在用户注册时需要发送短信验证码,可以在注册的控制器中添加如下代码:

package com.example.controller;

import com.example.utils.SmsUtil;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {

    @PostMapping("/register")
    public String register(@RequestParam String phoneNumber) {

        //发送短信验证码
        SmsUtil.sendSms(phoneNumber);

        return "success";
    }
}

上述代码中,我们在用户注册控制器中添加了一个register方法,该方法接受一个手机号码作为参数,在注册时调用SmsUtil.sendSms方法发送短信验证码。这样,用户在注册时就可以收到短信验证码了。

另一个示例是在用户找回密码时需要发送短信验证码,可以在找回密码的控制器中添加如下代码:

package com.example.controller;

import com.example.utils.SmsUtil;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class PasswordController {

    @PostMapping("/forgot_password")
    public String forgotPassword(@RequestParam String phoneNumber) {

        //发送短信验证码
        SmsUtil.sendSms(phoneNumber);

        return "success";
    }
}

类似地,在找回密码控制器中也调用了SmsUtil.sendSms方法发送短信验证码。

总结

通过上述步骤,我们可以很方便地在Java Web项目中使用华为云短信服务发送短信通知。我们创建了一个短信通知公共类SmsUtil,并在需要发送短信的地方直接调用该类的sendSms方法即可发送短信。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javaweb如何使用华为云短信通知公共类调用 - Python技术站

(0)
上一篇 2023年5月25日
下一篇 2023年5月25日

相关文章

  • 详解django.contirb.auth-认证

    关于Django认证模块django.contrib.auth的详细讲解,可以分为以下几个部分进行阐述: 1. 概述 Django中的认证模块django.contrib.auth提供了一系列的身份验证和授权功能,它通常用于管理用户和组,以及用户认证、注册、登录和注销等过程。其中,认证API提供了基于用户名和密码、E-mail和密码、OAuth等多种认证方式…

    人工智能概览 2023年5月25日
    00
  • 基于Django集成CAS实现流程详解

    我将为您详细讲解“基于Django集成CAS实现流程详解”的完整攻略。 前言 在许多Web应用中,单点登录(SSO)已成为一种必备功能。一种实现SSO的方式是使用CAS(Central Authentication Service)协议。在这里,我们将详细介绍如何使用CAS集成Django,实现多个Web应用之间的单点登录。 环境准备 在开始之前,您需要确保…

    人工智能概览 2023年5月25日
    00
  • Nginx部署vue项目和配置代理的问题解析

    下面就是Nginx部署Vue项目的完整攻略,包括如何配置代理。 1. 准备工作 在开始部署Vue项目之前,首先需要安装和配置好Nginx,以及确保Vue项目的构建已经完成,生成了静态文件。 2. 部署Vue项目 2.1 将Vue项目的静态文件放入Nginx的服务目录中 假设Vue项目的静态文件都在dist目录下,将此目录拷贝到Nginx的服务目录下,比如在U…

    人工智能概览 2023年5月25日
    00
  • Python Opencv中获取卷积核的实现代码

    获取卷积核可以通过在Python Opencv中使用getStructuringElement函数来实现。该函数用于获取不同形状和大小的结构元素或卷积核。 具体实现如下: 1. 获取矩形卷积核 如下为实现获取3*3矩形卷积核的代码示例: import cv2 kernel_rect = cv2.getStructuringElement(cv2.MORPH_…

    人工智能概论 2023年5月24日
    00
  • 一个基于flask的web应用诞生 用户注册功能开发(5)

    本文将详细讲解“一个基于flask的web应用诞生 用户注册功能开发(5)”的完整攻略,主要以代码示例的方式展示开发过程。 一、更新注册表单的模板 首先我们需要更新注册表单的模板,使其能够显示用户名和密码的错误信息。在templates/register.html中,添加以下代码: {% extends ‘base.html’ %} {% block con…

    人工智能概论 2023年5月25日
    00
  • 惠普星14Pro值得入手吗 惠普星14 Pro详细评测

    惠普星14Pro值得入手吗 硬件配置 惠普星14Pro采用了AMD锐龙5 5600U处理器,集成了AMD Radeon集成显卡,同时拥有16GB DDR4 3200MHz内存以及512GB NVMe SSD硬盘,这样的配置为正常的工作或者日常娱乐已经足够。 外观设计 惠普星14Pro整体采用黑色金属材质打造,简约而大气,整机体重为约1.35Kg,笔记本采用1…

    人工智能概览 2023年5月25日
    00
  • C# Winform调用百度接口实现人脸识别教程(附源码)

    针对题目所提供的内容,我会给出一些详细讲解和示例说明。具体内容如下: C# Winform调用百度接口实现人脸识别教程(附源码) 1. 概述 本文主要介绍通过C# Winform调用百度接口实现人脸识别的过程。其中,人脸识别是目前比较热门的技术之一,在该方向进行探索和研究,有利于我们深入了解人脸识别技术的应用和实际运用。 2. 准备工作 在进行人脸识别前,需…

    人工智能概论 2023年5月25日
    00
  • Django 实现购物车功能的示例代码

    Django是一种基于Python的web框架,用于快速编写高效的web应用程序。在web应用程序中,购物车功能是一项非常重要的功能。本文将详细讲述如何使用Django框架实现购物车功能的示例代码。 步骤一:创建Django项目 首先,需要创建一个Django项目。可以使用以下命令在终端中创建一个名为cart_project的Django项目: django…

    人工智能概论 2023年5月25日
    00
合作推广
合作推广
分享本页
返回顶部