From 2ff297dbe6e482f37059157510dea91d484cdc60 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 22 Dec 2025 14:05:56 +0800
Subject: [PATCH] feat(sms): 集成阿里云短信服务并替换原有短信发送逻辑
---
src/main/java/cc/mrbird/febs/mall/controller/CommonController.java | 4 +-
src/main/java/cc/mrbird/febs/common/utils/ZzSmsSend.java | 72 +++++++++++++++++++++++++++++-------
pom.xml | 8 ++++
3 files changed, 68 insertions(+), 16 deletions(-)
diff --git a/pom.xml b/pom.xml
index 2b6819d..4c04ec0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -34,6 +34,14 @@
<version>3.0</version>
</dependency>
+
+
+ <dependency>
+ <groupId>com.aliyun</groupId>
+ <artifactId>dysmsapi20170525</artifactId>
+ <version>2.0.18</version>
+ </dependency>
+
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
diff --git a/src/main/java/cc/mrbird/febs/common/utils/ZzSmsSend.java b/src/main/java/cc/mrbird/febs/common/utils/ZzSmsSend.java
index 92ced9e..bcaa30a 100644
--- a/src/main/java/cc/mrbird/febs/common/utils/ZzSmsSend.java
+++ b/src/main/java/cc/mrbird/febs/common/utils/ZzSmsSend.java
@@ -6,6 +6,10 @@
import cn.hutool.core.util.XmlUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.http.HttpUtil;
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
+import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
+import com.aliyun.tea.TeaException;
import lombok.extern.slf4j.Slf4j;
import java.util.Date;
@@ -18,6 +22,60 @@
**/
@Slf4j
public class ZzSmsSend {
+
+ public static com.aliyun.dysmsapi20170525.Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
+ com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
+ // 您的 AccessKey ID
+ .setAccessKeyId(accessKeyId)
+ // 您的 AccessKey Secret
+ .setAccessKeySecret(accessKeySecret);
+ // 访问的域名
+ config.endpoint = "dysmsapi.aliyuncs.com";
+ return new com.aliyun.dysmsapi20170525.Client(config);
+ }
+
+ private static final String SIGNNAME = "美澳";
+ private static final String TEMPLATECODE = "SMS_499150559";
+ public static boolean sendALiYun(String phone,String TemplateParam){
+ com.aliyun.dysmsapi20170525.Client client = null;
+ try {
+ client = createClient("LTAI5t7XPsehXDaFoiuU4ihK", "2t2cVtUlO4Cfx6ODHm0JHgZObfEqkW");
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest = new com.aliyun.dysmsapi20170525.models.SendSmsRequest()
+// .setSignName("阿里云短信测试")
+ .setSignName(SIGNNAME)
+// .setTemplateCode("SMS_154950909")
+ .setTemplateCode(TEMPLATECODE)
+// .setPhoneNumbers("15274802129")
+ .setPhoneNumbers(phone)
+// .setTemplateParam("{\"code\":\"1234\"}");
+ .setTemplateParam("{\"code\":\""+TemplateParam+"\"}");
+ com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
+ try {
+ // 复制代码运行请自行打印 API 的返回值
+ SendSmsResponse sendSmsResponse = client.sendSmsWithOptions(sendSmsRequest, runtime);
+ log.info("短信发送:{}", sendSmsResponse);
+ JSONObject jsonObject = JSONUtil.parseObj(sendSmsResponse);
+ System.out.print(jsonObject);
+ if(200 == sendSmsResponse.getStatusCode()) {
+ return true;
+ }else{
+ return false;
+ }
+ } catch (TeaException error) {
+ // 如有需要,请打印 error
+ com.aliyun.teautil.Common.assertAsString(error.message);
+ } catch (Exception _error) {
+ TeaException error = new TeaException(_error.getMessage(), _error);
+ // 如有需要,请打印 error
+ com.aliyun.teautil.Common.assertAsString(error.message);
+ }
+ return false;
+
+ }
private static final String URL = "http://zzsms365.com/v2sms.aspx?action=send";
@@ -51,18 +109,4 @@
}
}
- public static void main(String[] args) {
- Map<String, Object> data = new HashMap<>();
- Long time = System.currentTimeMillis();
- data.put("userid", USER_ID);
- data.put("timestamp", time);
- data.put("mobile", "15773002834");
- String signStr = ACCOUNT + PWD + time;
- String sign = SecureUtil.md5(signStr);
- data.put("sign", sign);
- data.put("content", "【HiBit】尊敬的用户,恭喜您于2010-03-25有一笔充值已成功到账,充值数量为10。");
-
- String post = HttpUtil.post(URL, data);
- System.out.println(post);
- }
}
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/CommonController.java b/src/main/java/cc/mrbird/febs/mall/controller/CommonController.java
index 67b86a1..3beb4ed 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/CommonController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/CommonController.java
@@ -53,8 +53,8 @@
// 发送手机验证码
if (AppContants.ACCOUNT_TYPE_MOBILE.equals(type)) {
-// boolean result = ZzSmsSend.sendVerifyCode(account, code.toString(), 2);
- boolean result = Sms106Send.sendVerifyCode(account, code.toString(), 2);
+ boolean result = ZzSmsSend.sendALiYun(account, code.toString());
+// boolean result = Sms106Send.sendVerifyCode(account, code.toString(), 2);
if (result) {
Map<String, Object> map = new HashMap<>();
boolean flag = redisUtils.set(AppContants.VERIFY_CODE_PREFIX + account, code, 120);
--
Gitblit v1.9.1