diff --git a/pom.xml b/pom.xml
index da7f27e5..1951b6c5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -224,6 +224,13 @@
system
${pom.basedir}/src/main/resources/lib/aspose-words-22.10-jdk16.jar
+
+ com.zmzm
+ sms-http
+ sms-http
+ system
+ ${pom.basedir}/src/main/resources/lib/http.jar
+
net.sourceforge.lame
lame
diff --git a/src/main/java/com/baidu/ueditor/upload/Base64Uploader.java b/src/main/java/com/baidu/ueditor/upload/Base64Uploader.java
index 2f81076a..92788326 100644
--- a/src/main/java/com/baidu/ueditor/upload/Base64Uploader.java
+++ b/src/main/java/com/baidu/ueditor/upload/Base64Uploader.java
@@ -42,7 +42,7 @@ public final class Base64Uploader {
}
private static byte[] decode(String content) {
- return Base64.decodeBase64(content);
+ return Base64.decodeBase64(content.getBytes());
}
private static boolean validSize(byte[] data, long length) {
diff --git a/src/main/java/com/peanut/common/service/HlsDecryptService.java b/src/main/java/com/peanut/common/service/HlsDecryptService.java
index 0fcb0642..98ec2caf 100644
--- a/src/main/java/com/peanut/common/service/HlsDecryptService.java
+++ b/src/main/java/com/peanut/common/service/HlsDecryptService.java
@@ -111,7 +111,7 @@ public class HlsDecryptService {
*/
private byte[] decrypt(String ciphertext) {
DecryptKMSDataKeyResponseBody decryptKMSDataKeyResponseBody = SpdbUtil.enKMS(ciphertext);
- return Base64.decodeBase64(decryptKMSDataKeyResponseBody.getPlaintext());
+ return Base64.decodeBase64(decryptKMSDataKeyResponseBody.getPlaintext().getBytes());
// DecryptKMSDataKeyRequest request = new DecryptKMSDataKeyRequest();
// request.setCipherText(ciphertext);
// request.setProtocol(ProtocolType.HTTPS);
diff --git a/src/main/java/com/peanut/common/utils/SmsUtil.java b/src/main/java/com/peanut/common/utils/SmsUtil.java
new file mode 100644
index 00000000..7644aec5
--- /dev/null
+++ b/src/main/java/com/peanut/common/utils/SmsUtil.java
@@ -0,0 +1,91 @@
+package com.peanut.common.utils;
+
+import com.alibaba.fastjson.JSONObject;
+import com.bcloud.msg.http.HttpSender;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.util.EntityUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class SmsUtil {
+
+ @Value("${sms.domestic.account}")
+ private String account;
+ @Value("${sms.domestic.pswd}")
+ private String pswd;
+ @Value("${sms.domestic.content}")
+ private String content;
+ @Value("${sms.abroad.account}")
+ private String abroadAccount;
+ @Value("${sms.abroad.pswd}")
+ private String abroadPswd;
+ @Value("${sms.abroad.content}")
+ private String abroadContent;
+
+ public R sendSmsCode(String phone, String code) {
+ String uri = "http://116.62.212.142/msg/HttpBatchSendSM";//应用地址
+ String mobiles = phone;//手机号码,多个号码使用","分割
+ boolean needstatus = true;//是否需要状态报告,需要true,不需要false
+ String product = "";//产品ID
+ String extno = "";//扩展码
+ String respType = "json";//返回json格式响应
+ boolean encrypt = true;// 密码使用时间戳加密
+ try {
+ String returnString = HttpSender.send(uri, account, pswd, mobiles, content.replace("XXXXXX",code), needstatus, product, extno, respType, encrypt);
+ //{"result":108,"ts":"20250416115415"}
+ //{"result":0,"msgid":"2150416115442493200","ts":"20250416115442"}
+ JSONObject object = JSONObject.parseObject(returnString);
+ if ("0".equals(object.get("result").toString())){
+ return R.ok();
+ }else if ("104".equals(object.get("result").toString())){
+ return R.error("短信平台系统忙,请稍后重试。");
+ }else if ("107".equals(object.get("result").toString())){
+ return R.error("错误的手机号码。");
+ }else {
+ return R.error("系统错误,请联系管理员");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ return R.error("系统错误,请联系管理员");
+ }
+ }
+
+ public R sendSmsAbroad(String phone, String code){
+ try {
+ CloseableHttpClient client = HttpClients.createDefault();
+ HttpPost httpPost = new HttpPost("http://www.onesnok.net:9511/api/send-sms-single");
+ StringEntity entity = new StringEntity("" +
+ "sp_id="+abroadAccount+
+ "&password="+MD5Utils.getStrrMD5(abroadPswd)+
+ "&mobile="+phone+
+ "&content="+abroadContent.replace("XXXXXX",code));
+ httpPost.setEntity(entity);
+ httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded");
+ String responseBody = EntityUtils.toString(client.execute(httpPost).getEntity());
+ System.out.println(responseBody);
+ JSONObject object = JSONObject.parseObject(responseBody);
+ if ("0".equals(object.get("code").toString())){
+ return R.ok();
+ }else if ("10000".equals(object.get("code").toString())){
+ return R.error("短信平台系统忙,请稍后重试。");
+ }else {
+ if ("WL:CDQC".equals(object.get("data").toString())){
+ return R.error("地区不支持。");
+ }else if ("WL:CWHM".equals(object.get("data").toString())){
+ return R.error("错误的手机号码。");
+ }else {
+ return R.error("系统错误,请联系管理员");
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ return R.error("系统错误,请联系管理员");
+ }
+ }
+
+
+}
diff --git a/src/main/java/com/peanut/modules/book/controller/MyUserController.java b/src/main/java/com/peanut/modules/book/controller/MyUserController.java
index 9e5c4dee..49548c03 100644
--- a/src/main/java/com/peanut/modules/book/controller/MyUserController.java
+++ b/src/main/java/com/peanut/modules/book/controller/MyUserController.java
@@ -232,7 +232,6 @@ public class MyUserController {
return R.error(500,"短信验证码频率过高,请稍后再试!");
}
}
-
//生成随机六位数
Random random = new Random();
String i = random.nextInt(999999) + "";
@@ -242,14 +241,10 @@ public class MyUserController {
}
i = sb.toString() + i;
String code = i + "_"+System.currentTimeMillis();
-
//redis 缓存验证码
redisTemplate.opsForValue().set("RegistCode"+phone,code,5, TimeUnit.MINUTES);
-
//发送
- userService.sendCodeForRegister(phone,code,areacode);
-
- return R.ok();
+ return userService.sendCodeForRegister(phone,code,areacode);
}
/**
diff --git a/src/main/java/com/peanut/modules/book/service/MyUserService.java b/src/main/java/com/peanut/modules/book/service/MyUserService.java
index beb15f90..f7b64c62 100644
--- a/src/main/java/com/peanut/modules/book/service/MyUserService.java
+++ b/src/main/java/com/peanut/modules/book/service/MyUserService.java
@@ -2,6 +2,7 @@ package com.peanut.modules.book.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.peanut.common.utils.PageUtils;
+import com.peanut.common.utils.R;
import com.peanut.modules.common.entity.BookForumArticlesEntity;
import com.peanut.modules.common.entity.MyUserEntity;
import java.util.List;
@@ -19,7 +20,7 @@ public interface MyUserService extends IService {
PageUtils queryPage(Map params);
- void sendCodeForRegister(String phone, String code,Integer areaCode) throws Exception;
+ R sendCodeForRegister(String phone, String code, Integer areaCode) throws Exception;
List getForumsLimit(Integer book_id, Integer limit);
//充值花生币
diff --git a/src/main/java/com/peanut/modules/book/service/impl/MyUserServiceImpl.java b/src/main/java/com/peanut/modules/book/service/impl/MyUserServiceImpl.java
index ad8bd7f8..4515936a 100644
--- a/src/main/java/com/peanut/modules/book/service/impl/MyUserServiceImpl.java
+++ b/src/main/java/com/peanut/modules/book/service/impl/MyUserServiceImpl.java
@@ -30,6 +30,8 @@ public class MyUserServiceImpl extends ServiceImpl impl
@Autowired
private SMSConfig smsConfig;
@Autowired
+ private SmsUtil smsUtil;
+ @Autowired
private UserEbookBuyService userEbookBuyService;
@Autowired
private BookForumArticlesService bookForumArticlesService;
@@ -45,9 +47,14 @@ public class MyUserServiceImpl extends ServiceImpl impl
}
@Override
- public void sendCodeForRegister(String phone, String code,Integer areaCode) throws Exception {
+ public R sendCodeForRegister(String phone, String code,Integer areaCode) throws Exception {
String scode = code.split("_")[0];
- sendCode(phone,scode,areaCode);
+// sendCode(phone,scode,areaCode);
+ if (areaCode!=null&&areaCode>0&&areaCode!=86){
+ return smsUtil.sendSmsAbroad(""+areaCode+phone,scode);
+ }else {
+ return smsUtil.sendSmsCode(phone,scode);
+ }
}
@Override
diff --git a/src/main/java/com/peanut/modules/common/controller/UserController.java b/src/main/java/com/peanut/modules/common/controller/UserController.java
index f0a73ff9..e7684f83 100644
--- a/src/main/java/com/peanut/modules/common/controller/UserController.java
+++ b/src/main/java/com/peanut/modules/common/controller/UserController.java
@@ -77,8 +77,7 @@ public class UserController {
//redis 缓存验证码
redisTemplate.opsForValue().set("RegistCode"+phone,code,5, TimeUnit.MINUTES);
//发送
- userService.sendCodeForRegister(phone,code,areacode);
- return R.ok();
+ return userService.sendCodeForRegister(phone,code,areacode);
}
/**
diff --git a/src/main/java/com/peanut/modules/common/service/MyUserService.java b/src/main/java/com/peanut/modules/common/service/MyUserService.java
index 3bdf05fc..a7c53381 100644
--- a/src/main/java/com/peanut/modules/common/service/MyUserService.java
+++ b/src/main/java/com/peanut/modules/common/service/MyUserService.java
@@ -1,10 +1,11 @@
package com.peanut.modules.common.service;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.peanut.common.utils.R;
import com.peanut.modules.common.entity.MyUserEntity;
public interface MyUserService extends IService {
- void sendCodeForRegister(String phone, String code,Integer areaCode) throws Exception;
+ R sendCodeForRegister(String phone, String code, Integer areaCode) throws Exception;
}
diff --git a/src/main/java/com/peanut/modules/common/service/impl/MyUserServiceImpl.java b/src/main/java/com/peanut/modules/common/service/impl/MyUserServiceImpl.java
index 9b567276..8114eb73 100644
--- a/src/main/java/com/peanut/modules/common/service/impl/MyUserServiceImpl.java
+++ b/src/main/java/com/peanut/modules/common/service/impl/MyUserServiceImpl.java
@@ -7,6 +7,9 @@ import com.aliyun.tea.TeaException;
import com.aliyun.teautil.Common;
import com.aliyun.teautil.models.RuntimeOptions;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.bcloud.msg.http.HttpSender;
+import com.peanut.common.utils.R;
+import com.peanut.common.utils.SmsUtil;
import com.peanut.modules.app.config.SMSConfig;
import com.peanut.modules.app.config.Sample;
import com.peanut.modules.common.dao.MyUserDao;
@@ -22,11 +25,18 @@ public class MyUserServiceImpl extends ServiceImpl impl
@Autowired
private SMSConfig smsConfig;
+ @Autowired
+ private SmsUtil smsUtil;
@Override
- public void sendCodeForRegister(String phone, String code, Integer areaCode) throws Exception {
+ public R sendCodeForRegister(String phone, String code, Integer areaCode){
String scode = code.split("_")[0];
- sendCode(phone,scode,areaCode);
+// sendCode(phone,scode,areaCode);
+ if (areaCode!=null&&areaCode>0&&areaCode!=86){
+ return smsUtil.sendSmsAbroad(""+areaCode+phone,scode);
+ }else {
+ return smsUtil.sendSmsCode(phone,scode);
+ }
}
private void sendCode(String phone, String code, Integer areaCode) throws Exception {
@@ -59,4 +69,6 @@ public class MyUserServiceImpl extends ServiceImpl impl
}
}
+
+
}
diff --git a/src/main/java/com/peanut/modules/sys/controller/VodAliController.java b/src/main/java/com/peanut/modules/sys/controller/VodAliController.java
index bb1ce3f3..c464149a 100644
--- a/src/main/java/com/peanut/modules/sys/controller/VodAliController.java
+++ b/src/main/java/com/peanut/modules/sys/controller/VodAliController.java
@@ -31,13 +31,13 @@ public class VodAliController {
throw new RuntimeException(e);
}
if (!validRe) {
- return Base64.decodeBase64("Illegal access");
+ return Base64.decodeBase64("Illegal access".getBytes());
}
if (null == cipherText) {
- return Base64.decodeBase64("Illegal access !");
+ return Base64.decodeBase64("Illegal access !".getBytes());
}
DecryptKMSDataKeyResponseBody decryptKMSDataKeyResponseBody = SpdbUtil.enKMS(cipherText);
- return Base64.decodeBase64(decryptKMSDataKeyResponseBody.getPlaintext());
+ return Base64.decodeBase64(decryptKMSDataKeyResponseBody.getPlaintext().getBytes());
}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index f19ccbea..fe3de1db 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -71,6 +71,16 @@ aliyun:
templateCode: SMS_248840040
sTemplateCode: SMS_463780139
+sms:
+ domestic:
+ account: MXT802795
+ pswd: Zm802795
+ content: 【天津众妙之门科技】,你的验证码为:XXXXXX,您正在进行身份验证,请勿泄露于他人!
+ abroad:
+ account: 921689
+ pswd: 9de2a579
+ content: Tianjin Zhongmiao Gate Technology:Your verification code is:XXXXXX.
+
server:
port: 9200
diff --git a/src/main/resources/application-dev1.yml b/src/main/resources/application-dev1.yml
index cc2eadab..6b151e57 100644
--- a/src/main/resources/application-dev1.yml
+++ b/src/main/resources/application-dev1.yml
@@ -71,6 +71,16 @@ aliyun:
templateCode: SMS_248840040
sTemplateCode: SMS_463780139
+sms:
+ domestic:
+ account: MXT802795
+ pswd: Zm802795
+ content: 【天津众妙之门科技】,你的验证码为:XXXXXX,您正在进行身份验证,请勿泄露于他人!
+ abroad:
+ account: 921689
+ pswd: 9de2a579
+ content: Tianjin Zhongmiao Gate Technology:Your verification code is:XXXXXX.
+
server:
port: 9200
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index dff5dec6..10fbcbab 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -66,10 +66,20 @@ aliyun:
sms:
accessKeyId: LTAI5tJbbw5fY97pnw635yq3
accessKeySecret: LTXQ9v3OYVwNVbDWWfVpbbcVDKErKi
- singName: 疯子读书国际
- templateCode: SMS_483250023
+ singName: 天津众妙之门科技有限公司
+ templateCode: SMS_483420156
sTemplateCode: SMS_463780139
+sms:
+ domestic:
+ account: MXT802795
+ pswd: Zm802795
+ content: 【天津众妙之门科技】,你的验证码为:XXXXXX,您正在进行身份验证,请勿泄露于他人!
+ abroad:
+ account: 921689
+ pswd: 9de2a579
+ content: Tianjin Zhongmiao Gate Technology:Your verification code is:XXXXXX.
+
server:
port: 9100
diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml
index 610d60a8..8d43e9d7 100644
--- a/src/main/resources/application-test.yml
+++ b/src/main/resources/application-test.yml
@@ -71,6 +71,16 @@ aliyun:
templateCode: SMS_248840040
sTemplateCode: SMS_463780139
+sms:
+ domestic:
+ account: MXT802795
+ pswd: Zm802795
+ content: 【天津众妙之门科技】,你的验证码为:XXXXXX,您正在进行身份验证,请勿泄露于他人!
+ abroad:
+ account: 921689
+ pswd: 9de2a579
+ content: Tianjin Zhongmiao Gate Technology:Your verification code is:XXXXXX.
+
server:
port: 9200
diff --git a/src/main/resources/lib/http.jar b/src/main/resources/lib/http.jar
new file mode 100644
index 00000000..f5a20c0e
Binary files /dev/null and b/src/main/resources/lib/http.jar differ