发送下单成功短信案例|学习笔记

简介: 快速学习发送下单成功短信案例

开发者学堂课程【全面讲解 Spring Cloud Alibaba 技术栈(知识精讲+项目实战)第四阶段发送下单成功短信案例】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/686/detail/11916


发送下单成功短信案例


下单之后发送短信

1、短信通知

使用的场景是短信通知,在申请签名的时候如果是短信通知,应该选通用,如果选择通用会让提供签名来源,签名来源是需要上传各种各样资质,资质没有所以只能选择发送一条验证码跟实际场景不符。如果到企业中资质都能拿到可以选择通用,然后发送一个短信通知

image.png

短信通知模板可以修改,里面有模板名称、模板内容、申请说明。

image.png

image.png

跟验证码的模板很相似

image.png

订单已经成功但是不能用,因为有场景的限制,所以模拟的是一旦发现有订单下单成功,就发送一个验证码到用户的手机上去。

image.png

2、 shop-user 模块中加入 sms 依赖

<!--短信发送-->

<dependency>

<groupId>com.alibaba.c1oud</groupId>

<artifactId>spring-c1oud-alicloud-sms</artifactid>

</dependency>

3、将阿里短信给出的 demo 封装成工具类

public class Smsutil {

//替换成自己申请的accessKeyId

private static string accessKeyId="LTAIML1f8NKYXn1M"

//替换成自己申请的accessKeySecret

private static String accessKeySecret

="hqyW0zTNzeSIFnZhM EkOaZXVVcr 3Gj";

static final string product = "Dysmsapi";

static final string domain ="dysmsapi.aliyuncs.com";

4、代码

(1)代码

import lombok.extern.slf4i.Slf4i;

import

org.apache.rocketmg.spring.annotation.ConsumeMod e;

import

org.apache.rocketmg.spring.annotation.MessageMo del;

import

org.apache.rocketmg.spring.annotation.RocketMOMe ssageListener;

import org.apache.rocketmg.spring.coreRocketMQlistener

import

org.springframework.beans.factory.annotation.Autowi

red;

import org.springframework.stereotype.Service;

@slf4j

@service(“shopsSmsservice”)

//consumerGroup- 消费者组名 topic- 要消费的主题

@RocketMOMessageListener(

consumerGroup="shop-user",//消费者组名

topic="order-topic",//消费主题

consumeMode =ConsumeMode.CONCURRENTLY//消费模式,指定是否顺序消费

CONCURRENTLY(同步,默认)ORDERLY顺序) messageModel=MessageMode1.CLUSTERING//消息模式BROADCASTING(广播)CLUSTERING(集群默认)

publia class SmsService implements RocketMQListener<or

der>{

@Autowired

private UserDao userDao;

//消费逻辑

@Override

public void onMessage(Order message){

log.info("接收到了一个订单信息,接下来就可以发送短信通知了",message);

//根据 uid 获取手机号

User user=userDao.findById(message.getuid()).get();

//生成验证码 1-9 6

stringBuilder builder=newstringBuilder();

for (int i = o; i < 6; i++) {

builder.append(new Random().nextInt( bound: 9)+1)

}

string smseode = builder.tostring();

Param param=new Param(smsCode)

try{

//发送短信("code":"123456"}

SmsUtil.sendSms(user.getTelephone(),signName:"黑马旅游网",templateCode:"SMS 170836451",JSON。

toJSONString(pa ram));

Iog.info("短信发送成功");}

catch (Exception e){

e.printstackTrace();

}

}

@Data

@AllArgsConstructor

@NoArgsConstructor

class Param{

private string code;

}

}

启动一下 user:

User 启动报错,修改 @service(“shopsSmsservice”)

image.png

再运行一次:

发送成功,没有报异常。

image.png

(2)过程

SmsUtiLjava:

/**

*发送短信

*

*@param phoneNumbers要发送短信到哪个手机号

*@param signName 短信签名[必须使用前面申请的]

*@param templateCode 短信短信模板ID[必须使用前面申请的]

*@param param 模板中s{code)位置传递的内容

需要四个参数手机号短信签名短信模板 code 以及 code 模板中需要的参数,中间两个只需要把申请好的名称和代码拿过来就行。

image.png

手机号跟用户相关,现在只能拿到订单,订单里面时候有用户。

package com. itheima.domain

import ...

//订单

@Entity(name = "shop order")

@data

public class Order {

@Id

@GeneratedValue(strategy=GenerationTypeIDENTITY)

private Long oid;//订单id

//用户

private Integer uid;//用户id

private string username;//用户名

//商品

private Integer pid;//商品id private string pname;//商品名称

private Double pprice;//商品单价

//数量

private Integernumber;//购买数量

)

订单里面有 UID,根据 UID 能查询到用户,已经拥有手机号,最后是 parm 目前传的是一个验证码,验证码自己生成就可以。

缺少的参数为 code

(3)打断

User user=userDao.findById(message.getuid()).get();

执行下单 localhost:8091/order/prod/2:

{

"oid”: 67.

"uid”: 1.

"usernane":“测试用户”,

"pid”: 2,

"pnane”: "华为”,

"pprice":2000

"number": 1

}

image.png

消息已经过来。

首先查用户:

image.png

组装六位数验证码:

打断 for (int i = o; i < 6; i++) {

image.png

image.png

已经拥有六位数验证码。

进行拼接:

image.png

image.pngJSON.toJSONString(param)转出的格式执行一下:

Expression:

JSON.tosonstring(param

Result:

oo result = "{"code":"979349"}"

value ={char[17]@14542)

hash=0

为所要的格式,接下来放一下断点。

学习如何用阿里云短信发送短消息,具体的场景根据企业中来决定,比如发送验证码可以直接用,但是短信通知类型要用场景需要跟公司去沟通,要相关的签名来源、资质上传,审核通过以后就可以使用。

目录
打赏
0
0
0
0
55
分享
相关文章
支付系统24---支付宝扫码,利用支付宝完成扫码付款成功,我们只能发起同一个订单,来发起支付请求
支付系统24---支付宝扫码,利用支付宝完成扫码付款成功,我们只能发起同一个订单,来发起支付请求
|
7月前
|
API
企业微信api接口调用-企业微信好友收发消息
企业微信api接口调用-企业微信好友收发消息
阿里云通知短信价格
阿里云通知短信价格,阿里云短信服务价格表,阿里云短信0.032元一条,阿里云短信价格?阿里云短信怎么收费?阿里云短信多少钱一条,阿里云短信价格0.032元一条
JAVA实现《阿里云发送短信验证码以及短信通知》
JAVA实现《阿里云发送短信验证码以及短信通知》
977 0
整合阿里云短信进行短信发送(2) | 学习笔记
快速学习 整合阿里云短信进行短信发送(2)
253 0
整合阿里云短信进行短信发送(2) | 学习笔记
手把手教你接入抖音小程序发送模板消息通知
模板消息是指:按照一定的模板样式发送给用户的消息,顾名思义,它的内容必须限制在某一个模板框框内,只能做填空题,做不了主观题。
389 0
手把手教你接入抖音小程序发送模板消息通知
可在线接收验证短信的网站
现代社会中大多数人容易忘记密码,因此,为了方便,各大网站或者APP就相继出现以手机号码进行短信验证来注册和登录等操作。但此时,大多个人手机号码都已经是实名认证的,就非常怕存在个人信息泄露的情况。近几年网络平台用户数据泄露事件层出不穷,勿论一般平台,甚至一些全球知名企业也曾被曝出用户数据泄露问题,那基于此我们用户又能做点什么呢? 那么临时的在线免费短信接收验证码的网站就应运而生。
938 0
可在线接收验证短信的网站
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等