Commit 7ff8ded8 authored by chenchao.deng's avatar chenchao.deng

自测联调

parent babfff41
package com.edgec.browserbackend.account.domain; package com.edgec.browserbackend.account.domain;
import com.edgec.browserbackend.account.service.SmsUtils; import com.edgec.browserbackend.common.commons.utils.SmsUtils;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Document;
......
package com.edgec.browserbackend.account.domain; package com.edgec.browserbackend.account.domain;
import com.edgec.browserbackend.account.service.SmsUtils; import com.edgec.browserbackend.common.commons.utils.SmsUtils;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Document;
......
package com.edgec.browserbackend.account.domain; package com.edgec.browserbackend.account.domain;
import com.edgec.browserbackend.account.service.SmsUtils; import com.edgec.browserbackend.common.commons.utils.SmsUtils;
import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Document;
......
...@@ -15,103 +15,5 @@ import org.slf4j.LoggerFactory; ...@@ -15,103 +15,5 @@ import org.slf4j.LoggerFactory;
public class SmsUtils { public class SmsUtils {
private static final Logger log = LoggerFactory.getLogger(SmsUtils.class);
private static final int TIME_OUT = 10 * 60; //10minues
public enum SmsTemplateCode {
LOGINACCOUNT(0, "SMS_472020179"),
NEWACCOUNT(1,"SMS_472080002"),
RESETACCOUNT(2,"SMS_471765248"),
;
Integer type;
String code;
SmsTemplateCode(Integer type, String code) {
this.type =type;
this.code = code;
}
public Integer getType() {
return type;
}
public String getCode() {
return code;
}
public static SmsTemplateCode getByType(Integer type) {
for (SmsTemplateCode smsTemplateCode : SmsTemplateCode.values()) {
if (smsTemplateCode.type.intValue() == type.intValue()) {
return smsTemplateCode;
}
}
return null;
}
}
/**
* Generate and send the SMS one time password to user's phone with SMS.
*
* @param phone
*/
public static String sendSmsOTP(String phone, SmsTemplateCode smsTemplateCode) {
String randomCode = createRandom(true, 6);
DefaultProfile profile = DefaultProfile.getProfile("default", "LTAI5tEdz1DY4A4oYUawUuNH", "8KWmYgO0QIicZpyulhEwUhZqStrTwe");
IAcsClient client = new DefaultAcsClient(profile);
CommonRequest request = new CommonRequest();
//request.setProtocol(ProtocolType.HTTPS);
request.setMethod(MethodType.POST);
request.setDomain("dysmsapi.aliyuncs.com");
request.setVersion("2017-05-25");
request.setAction("SendSms");
request.putQueryParameter("SignName", "无界超级浏览器");
request.putQueryParameter("PhoneNumbers", phone);
request.putQueryParameter("TemplateCode", smsTemplateCode.getCode());
request.putQueryParameter("TemplateParam", "{\"code\":\"" + randomCode + "\"}");
try {
CommonResponse response = client.getCommonResponse(request);
if (response.getHttpStatus() == 200 && response.getData().contains("OK")) {
return randomCode;
} else {
log.error("fail to send sms {} for user {}", response.getData(), phone);
throw new ClientRequestException(AccountErrorCode.OTPSENDFAILS, AccountErrorCode.OTPSENDFAILS.getReason());
}
} catch (ServerException e) {
log.error("Sms sends failure", e);
throw new ClientRequestException(AccountErrorCode.OTPSENDFAILS, AccountErrorCode.OTPSENDFAILS.getReason());
} catch (ClientException e) {
log.error("Sms sends failure", e);
throw new ClientRequestException(AccountErrorCode.OTPSENDFAILS, AccountErrorCode.OTPSENDFAILS.getReason());
}
}
public static String createRandom(boolean numberFlag, int length) {
String retStr = "";
String strTable = numberFlag ? "1234567890" : "1234567890abcdefghijkmnpqrstuvwxyz";
int len = strTable.length();
boolean bDone = true;
do {
retStr = "";
int count = 0;
for (int i = 0; i < length; i++) {
double dblR = Math.random() * len;
int intR = (int) Math.floor(dblR);
char c = strTable.charAt(intR);
if (('0' <= c) && (c <= '9')) {
count++;
}
retStr += strTable.charAt(intR);
}
if (count >= 2) {
bDone = false;
}
} while (bDone);
return retStr;
}
} }
...@@ -8,8 +8,7 @@ import com.edgec.browserbackend.account.repository.*; ...@@ -8,8 +8,7 @@ import com.edgec.browserbackend.account.repository.*;
import com.edgec.browserbackend.account.service.AccountService; import com.edgec.browserbackend.account.service.AccountService;
import com.edgec.browserbackend.account.service.EmailService; import com.edgec.browserbackend.account.service.EmailService;
import com.edgec.browserbackend.account.service.PaymentService; import com.edgec.browserbackend.account.service.PaymentService;
import com.edgec.browserbackend.account.service.SmsUtils; import com.edgec.browserbackend.common.commons.utils.SmsUtils;
import com.edgec.browserbackend.account.service.SmsUtils.SmsTemplateCode;
import com.edgec.browserbackend.account.utils.AccountServicePool; import com.edgec.browserbackend.account.utils.AccountServicePool;
import com.edgec.browserbackend.auth.exception.AuthErrorCode; import com.edgec.browserbackend.auth.exception.AuthErrorCode;
import com.edgec.browserbackend.auth.repository.UserRepository; import com.edgec.browserbackend.auth.repository.UserRepository;
...@@ -22,6 +21,7 @@ import com.edgec.browserbackend.browser.repository.GlobalFieldRepository; ...@@ -22,6 +21,7 @@ import com.edgec.browserbackend.browser.repository.GlobalFieldRepository;
import com.edgec.browserbackend.browser.service.IpResourceService; import com.edgec.browserbackend.browser.service.IpResourceService;
import com.edgec.browserbackend.browser.service.ShopService; import com.edgec.browserbackend.browser.service.ShopService;
import com.edgec.browserbackend.common.commons.error.ClientRequestException; import com.edgec.browserbackend.common.commons.error.ClientRequestException;
import com.edgec.browserbackend.common.commons.utils.SmsUtils.SmsTemplateCode;
import com.edgec.browserbackend.common.utils.Aes; import com.edgec.browserbackend.common.utils.Aes;
import com.edgec.browserbackend.common.utils.FileUtil; import com.edgec.browserbackend.common.utils.FileUtil;
import javax.annotation.Resource; import javax.annotation.Resource;
...@@ -939,15 +939,48 @@ public class AccountServiceImpl implements AccountService { ...@@ -939,15 +939,48 @@ public class AccountServiceImpl implements AccountService {
throw new ClientRequestException(AccountErrorCode.OTHERS, throw new ClientRequestException(AccountErrorCode.OTHERS,
"authCode type error" + phone); "authCode type error" + phone);
} }
String code = SmsUtils.sendSmsOTP(phone, smsTemplateCode); String randomCode = createRandom(true, 6);
JSONObject param = new JSONObject();
param.put("code", randomCode);
String s = "{\"code\":\"" + randomCode + "\"}";
SmsUtils.sendSms(phone, smsTemplateCode, param);
Otp otp = new Otp(); Otp otp = new Otp();
otp.setPhone(phone); otp.setPhone(phone);
otp.setOtp(code); otp.setOtp(randomCode);
otp.setType(mobileDto.getType()); otp.setType(mobileDto.getType());
otp.setCreatedAt(Instant.now().toEpochMilli()); otp.setCreatedAt(Instant.now().toEpochMilli());
otpRepository.save(otp); otpRepository.save(otp);
} }
/**
* @author Chen
* @description 生成随机数
* @date 2024/9/13 20:09
*/
private String createRandom(boolean numberFlag, int length) {
String retStr = "";
String strTable = numberFlag ? "1234567890" : "1234567890abcdefghijkmnpqrstuvwxyz";
int len = strTable.length();
boolean bDone = true;
do {
retStr = "";
int count = 0;
for (int i = 0; i < length; i++) {
double dblR = Math.random() * len;
int intR = (int) Math.floor(dblR);
char c = strTable.charAt(intR);
if (('0' <= c) && (c <= '9')) {
count++;
}
retStr += strTable.charAt(intR);
}
if (count >= 2) {
bDone = false;
}
} while (bDone);
return retStr;
}
@Override @Override
public AccountDto getAccountByCellphone(String cellphone) { public AccountDto getAccountByCellphone(String cellphone) {
Account account = accountRepository.findOneByPhoneNumber(cellphone); Account account = accountRepository.findOneByPhoneNumber(cellphone);
......
...@@ -15,7 +15,6 @@ import com.edgec.browserbackend.account.exception.AccountErrorCode; ...@@ -15,7 +15,6 @@ import com.edgec.browserbackend.account.exception.AccountErrorCode;
import com.edgec.browserbackend.account.repository.*; import com.edgec.browserbackend.account.repository.*;
import com.edgec.browserbackend.account.service.AccountService; import com.edgec.browserbackend.account.service.AccountService;
import com.edgec.browserbackend.account.service.PaymentService; import com.edgec.browserbackend.account.service.PaymentService;
import com.edgec.browserbackend.account.service.SmsUtils;
import com.edgec.browserbackend.alipay.AlipayConfig; import com.edgec.browserbackend.alipay.AlipayConfig;
import com.edgec.browserbackend.alipay.CloudamAlipayConfig; import com.edgec.browserbackend.alipay.CloudamAlipayConfig;
import com.edgec.browserbackend.alipay.VpsAlipayConfig; import com.edgec.browserbackend.alipay.VpsAlipayConfig;
...@@ -23,6 +22,7 @@ import com.edgec.browserbackend.browser.ErrorCode.BrowserErrorCode; ...@@ -23,6 +22,7 @@ import com.edgec.browserbackend.browser.ErrorCode.BrowserErrorCode;
import com.edgec.browserbackend.browser.domain.PayBack; import com.edgec.browserbackend.browser.domain.PayBack;
import com.edgec.browserbackend.browser.repository.PayBackRepository; import com.edgec.browserbackend.browser.repository.PayBackRepository;
import com.edgec.browserbackend.common.commons.error.ClientRequestException; import com.edgec.browserbackend.common.commons.error.ClientRequestException;
import com.edgec.browserbackend.common.commons.utils.SmsUtils;
import com.edgec.browserbackend.wxpay.*; import com.edgec.browserbackend.wxpay.*;
import com.google.gson.Gson; import com.google.gson.Gson;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
......
...@@ -52,7 +52,7 @@ public class UserLackMoneyServiceImpl implements UserLackMoneyService { ...@@ -52,7 +52,7 @@ public class UserLackMoneyServiceImpl implements UserLackMoneyService {
JSONObject param = new JSONObject(); JSONObject param = new JSONObject();
param.put("billsamount", billsAmount); param.put("billsamount", billsAmount);
param.put("totalunpaid", totalUnpaid); param.put("totalunpaid", totalUnpaid);
SmsUtils.sendIpSms(telephone, SmsUtils.SmsTemplateCode.CLOUDAM_ARREARS, param); SmsUtils.sendSms(telephone, SmsUtils.SmsTemplateCode.CLOUDAM_ARREARS, param);
} }
} }
......
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form name="punchout_form" method="post" action="https://openapi.alipay.com/gateway.do?charset=utf-8&method=alipay.trade.page.pay&sign=QSc3QsyyBSvtRWHrvD0eoUxRxMb080CUde5BowfoPaUZyVmwXtAGFiKN8DCspxOB7D1I1cbhWZkUcP%2FRAJ8xmnxg7Cqnp84tyO3%2FbmigYWoqD2frlPzdIDOt6%2Fg5NU%2FltVa%2F2LOoTnMVdhVeBgzlJ9vfFTQXvjaNofufN0Y3b%2F7Lxu7AqOk%2BhJtV%2BzWtSLO5C1zf5%2BhIyV%2Fmx86gBBFFdZ4Lv1iTSdxuRNOC6U15GoOq0BZGYlr9kIaE%2BbztC9y%2F72c%2FUP98hXGWRYG0p5iiNpNe2Dq3StuDgzFrlkpYPG4uu7l5%2B%2Fth3%2Bem0ivPDgWj4iu2DO92tnAFXhMVufQtzA%3D%3D&return_url=https%3A%2F%2Fwww.fangguanlian.cn%2Fweb%2FpaySuccess.html%3Falipayreturn%3D202409112024253737&notify_url=https%3A%2F%2Fwww.cloudam.cn%2Faccounts%2F0xalipaycallback%2F202409112024253737&version=1.0&app_id=2021004169642053&sign_type=RSA2&timestamp=2024-09-11+20%3A24%3A28&alipay_sdk=alipay-sdk-java-3.7.110.ALL&format=json">
<input type="hidden" name="biz_content" value="{&quot;out_trade_no&quot;:&quot;202409112024253737&quot;,&quot;product_code&quot;:&quot;FAST_INSTANT_TRADE_PAY&quot;,&quot;total_amount&quot;:&quot;100.00&quot;,&quot;subject&quot;:&quot;订单202409112024253737&quot;,&quot;body&quot;:&quot;&quot;}">
<input type="submit" value="立即支付" style="display:none" >
</form>
<script>document.forms[0].submit();</script>
</body>
</html>
\ No newline at end of file
...@@ -590,42 +590,29 @@ public class IpResourceServiceImpl implements IpResourceService { ...@@ -590,42 +590,29 @@ public class IpResourceServiceImpl implements IpResourceService {
ipResource.getOwner(), ipResource.getId()); ipResource.getOwner(), ipResource.getId());
if (CollectionUtils.isNotEmpty(list)) { if (CollectionUtils.isNotEmpty(list)) {
CloudPlatformOrder cloudPlatformOrder = list.get(0); CloudPlatformOrder cloudPlatformOrder = list.get(0);
Boolean isDelet = false;
if ("aliyun".equals(cloudPlatformOrder.getPlatformType())) { if ("aliyun".equals(cloudPlatformOrder.getPlatformType())) {
DeleteInstanceResponse response = AliEcsClient.deleteInstance( DeleteInstanceResponse response = AliEcsClient.deleteInstance(
ipResource.getOwner(), ipResource.getOwner(),
cloudPlatformOrder.getPlatformOrderId(), cloudPlatformOrder.getPlatformOrderId(),
cloudPlatformOrder.getRegionId()); cloudPlatformOrder.getRegionId());
if (null != response && response.getStatusCode()
.equals(200)) {
isDelet = true;
}
} else if ("tenCent".equals( } else if ("tenCent".equals(
cloudPlatformOrder.getPlatformType())) { cloudPlatformOrder.getPlatformType())) {
CloudPlatformConfig config = cloudPlatformConfigRepository.findByPlatformAndRegionId( CloudPlatformConfig config = cloudPlatformConfigRepository.findByPlatformAndRegionId(
"tenCent", "tenCent",
cloudPlatformOrder.getRegionId()); cloudPlatformOrder.getRegionId());
TerminateInstancesResponse response = null;
if (StringUtils.isNotEmpty(config.getTemplateId())) { if (StringUtils.isNotEmpty(config.getTemplateId())) {
response = TenCentEcsClient.deleteInstance( TenCentEcsClient.deleteInstance(
ipResource.getOwner(), ipResource.getOwner(),
cloudPlatformOrder.getPlatformOrderId(), cloudPlatformOrder.getPlatformOrderId(),
cloudPlatformOrder.getRegionId()); cloudPlatformOrder.getRegionId());
} }
if (null != response) {
isDelet = true;
}
}
if (!isDelet) {
ipResource.setShopIds(null);
ipResource.setDeleted(true);
ipResourceRepository.save(ipResource);
} else {
logger.error("ip " + ipResource.getAddr() + " 删除失败");
logger.error("Scheduled {}, {} delete failed",
ipResource.getAddr());
} }
} }
ipResource.setShopIds(null);
ipResource.setDeleted(true);
ipResourceRepository.save(ipResource);
} }
ipOperationResultDto.getSuccessList().add(ipAddr); ipOperationResultDto.getSuccessList().add(ipAddr);
} catch (Exception e) { } catch (Exception e) {
......
...@@ -81,10 +81,11 @@ public class ExpireSoonWarn { ...@@ -81,10 +81,11 @@ public class ExpireSoonWarn {
JSONObject param = new JSONObject(); JSONObject param = new JSONObject();
param.put("day", day); param.put("day", day);
param.put("amount", amount); param.put("amount", amount);
//TODO 目前不传参
if (day == 0) if (day == 0)
SmsUtils.sendIpSms(account.getPhoneNumber(), SmsUtils.SmsTemplateCode.IPEXPIRED, param); SmsUtils.sendSms(account.getPhoneNumber(), SmsUtils.SmsTemplateCode.IPEXPIRED, null);
else else
SmsUtils.sendIpSms(account.getPhoneNumber(), SmsUtils.SmsTemplateCode.IPWILLEXPIRE_EXPIRE, param); SmsUtils.sendSms(account.getPhoneNumber(), SmsUtils.SmsTemplateCode.IPWILLEXPIRE_EXPIRE, null);
} }
} }
...@@ -5,9 +5,10 @@ import com.aliyuncs.CommonRequest; ...@@ -5,9 +5,10 @@ import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse; import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient; import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.http.MethodType; import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile; import com.aliyuncs.profile.DefaultProfile;
import com.edgec.browserbackend.account.exception.AccountErrorCode;
import com.edgec.browserbackend.common.commons.error.ClientRequestException;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -24,97 +25,49 @@ public class SmsUtils { ...@@ -24,97 +25,49 @@ public class SmsUtils {
public enum SmsTemplateCode { public enum SmsTemplateCode {
CLOUDAM_ARREARS("SMS_174805285"), //CLOUDAM_ARREARS("SMS_174805285"),
AUTHCODE("SMS_185841618"),
IPWILLEXPIRE_EXPIRE("SMS_472140001"), //AUTHCODE("SMS_185841618"),
IPEXPIRED("SMS_472140001"), LOGINACCOUNT(0, "SMS_473465082"),
NEWACCOUNT("SMS_187750800"); NEWACCOUNT(1,"SMS_473435070"),
RESETACCOUNT(2,"SMS_473480085"),
IPWILLEXPIRE_EXPIRE(3,"SMS_473405076"),
IPEXPIRED(4, "SMS_473405076"),
CLOUDAM_ARREARS(5,"SMS_174805285"),
//NEWACCOUNT("SMS_187750800")
; ;
Integer type;
String code; String code;
SmsTemplateCode(String code) { SmsTemplateCode(Integer type, String code) {
this.type =type;
this.code = code; this.code = code;
} }
public String getCode() { public Integer getType() {
return code; return type;
} }
}
public static void notifyNewUserRegistered(String username, String phone, String vps) { public String getCode() {
CommonRequest request = new CommonRequest(); return code;
request.setMethod(MethodType.POST);
request.setDomain("dysmsapi.aliyuncs.com");
request.setVersion("2017-05-25");
request.setAction("SendSms");
request.putQueryParameter("PhoneNumbers", "13851961528");
request.putQueryParameter("SignName", "微艾");
request.putQueryParameter("TemplateCode", "SMS_170842632");
request.putQueryParameter("TemplateParam", "{"+"\"name\":\""+username+"\"," +
"\"number\":\""+phone+"\"," +
"\"vps\":\""+vps+"\""+
"}");
try {
CommonResponse response = iAcsClient.getCommonResponse(request);
System.out.println(response);
} catch (ClientException e) {
log.error("Sms sends failure",e);
} }
} public static SmsTemplateCode getByType(Integer type) {
for (SmsUtils.SmsTemplateCode smsTemplateCode : SmsUtils.SmsTemplateCode.values()) {
if (smsTemplateCode.type.intValue() == type.intValue()) {
// public static void sendSmsOpMsg(String username, String groupName, String error) { return smsTemplateCode;
// String randomCode = ""; }
// CommonRequest request = new CommonRequest();
// //request.setProtocol(ProtocolType.HTTPS);
// request.setMethod(MethodType.POST);
// request.setDomain("dysmsapi.aliyuncs.com");
// request.setVersion("2017-05-25");
// request.setAction("SendSms");
// request.putQueryParameter("PhoneNumbers", "13851961528");
// request.putQueryParameter("SignName", "微艾");
// request.putQueryParameter("TemplateCode", "SMS_166665358");
// request.putQueryParameter("TemplateParam", "{"+"\"name\":\""+username+"\"," +
// "\"group\":\""+groupName+"\"," +
// "\"error\":\""+error+"\""+
// "}");
// try {
// CommonResponse response = iAcsClient.getCommonResponse(request);
// System.out.println(response);
// } catch (ClientException e) {
// log.error("Sms sends failure",e);
// }
// }
public static void sendNewAccountSms(String phoneNum, SmsTemplateCode smsTemplateCode, JSONObject param) {
CommonRequest request = new CommonRequest();
//request.setProtocol(ProtocolType.HTTPS);
request.setMethod(MethodType.POST);
request.setDomain("dysmsapi.aliyuncs.com");
request.setVersion("2017-05-25");
request.setAction("SendSms");
request.putQueryParameter("PhoneNumbers", phoneNum);
request.putQueryParameter("SignName", "无界超级浏览器");
request.putQueryParameter("TemplateCode", smsTemplateCode.getCode());
request.putQueryParameter("TemplateParam", param.toJSONString());
try {
CommonResponse response = iAcsClient.getCommonResponse(request);
if (response.getHttpStatus() == 200 && response.getData().contains("OK")) {
return;
} else {
log.error("Send SMS Error,{}, {}, {}, {}", phoneNum, smsTemplateCode, param, response.getData());
} }
} catch (Exception e) { return null;
log.error("Send SMS Error,{}, {}, {}", phoneNum, smsTemplateCode, param);
} }
} }
public static void sendIpSms(String phoneNum, SmsTemplateCode smsTemplateCode, JSONObject param) { public static void sendSms(String phoneNum, SmsTemplateCode smsTemplateCode, JSONObject param) {
CommonRequest request = new CommonRequest(); CommonRequest request = new CommonRequest();
//request.setProtocol(ProtocolType.HTTPS); //request.setProtocol(ProtocolType.HTTPS);
request.setMethod(MethodType.POST); request.setMethod(MethodType.POST);
...@@ -124,41 +77,45 @@ public class SmsUtils { ...@@ -124,41 +77,45 @@ public class SmsUtils {
request.putQueryParameter("PhoneNumbers", phoneNum); request.putQueryParameter("PhoneNumbers", phoneNum);
request.putQueryParameter("SignName", "无界超级浏览器"); request.putQueryParameter("SignName", "无界超级浏览器");
request.putQueryParameter("TemplateCode", smsTemplateCode.getCode()); request.putQueryParameter("TemplateCode", smsTemplateCode.getCode());
//request.putQueryParameter("TemplateParam", param.toJSONString()); if(null != param) {
request.putQueryParameter("TemplateParam", param.toJSONString());
}
try { try {
CommonResponse response = iAcsClient.getCommonResponse(request); CommonResponse response = iAcsClient.getCommonResponse(request);
if (response.getHttpStatus() == 200 && response.getData().contains("OK")) { if (response.getHttpStatus() == 200 && response.getData().contains("OK")) {
return; return;
} else { } else {
log.error("Send SMS Error,{}, {}, {}, {}", phoneNum, smsTemplateCode, param, response.getData()); log.error("Send SMS Error,{}, {}, {}, {}", phoneNum, smsTemplateCode, param, response.getData());
throw new ClientRequestException(AccountErrorCode.OTHERS, "send sms error, please contact customer" );
} }
} catch (Exception e) { } catch (Exception e) {
log.error("Send SMS Error,{}, {}, {}", phoneNum, smsTemplateCode, param); log.error("Send SMS Error,{}, {}, {}", phoneNum, smsTemplateCode, param);
} }
} }
public static void sendWillExipreSms(String phoneNum, SmsTemplateCode smsTemplateCode, JSONObject param) {
CommonRequest request = new CommonRequest(); public static String createRandom(boolean numberFlag, int length) {
//request.setProtocol(ProtocolType.HTTPS); String retStr = "";
request.setMethod(MethodType.POST); String strTable = numberFlag ? "1234567890" : "1234567890abcdefghijkmnpqrstuvwxyz";
request.setDomain("dysmsapi.aliyuncs.com"); int len = strTable.length();
request.setVersion("2017-05-25"); boolean bDone = true;
request.setAction("SendSms"); do {
request.putQueryParameter("PhoneNumbers", phoneNum); retStr = "";
request.putQueryParameter("SignName", "深圳云端CLOUDAM"); int count = 0;
request.putQueryParameter("TemplateCode", smsTemplateCode.getCode()); for (int i = 0; i < length; i++) {
request.putQueryParameter("TemplateParam", param.toJSONString()); double dblR = Math.random() * len;
try { int intR = (int) Math.floor(dblR);
CommonResponse response = iAcsClient.getCommonResponse(request); char c = strTable.charAt(intR);
if (response.getHttpStatus() == 200 && response.getData().contains("OK")) { if (('0' <= c) && (c <= '9')) {
return; count++;
} else { }
log.error("Send SMS Error,{}, {}, {}, {}", phoneNum, smsTemplateCode, param, response.getData()); retStr += strTable.charAt(intR);
} }
} catch (Exception e) { if (count >= 2) {
log.error("Send SMS Error,{}, {}, {}", phoneNum, smsTemplateCode, param); bDone = false;
} }
} while (bDone);
return retStr;
} }
} }
...@@ -40,6 +40,14 @@ public enum RegionMappingEnum { ...@@ -40,6 +40,14 @@ public enum RegionMappingEnum {
INDIA("india","孟买","",""),//待确认 INDIA("india","孟买","",""),//待确认
MEAST("meast","迪拜","me-east-1",""), MEAST("meast","迪拜","me-east-1",""),
ULANNQAB("ulanqab","乌兰察布","cn-wulanchabu",""),
SILICON("silicon","美国(硅谷)","us-west-1",""),
NANJING("nanjing","南京","","ap-nanjing"),
BANGKOK("bangkok","泰国(曼谷)","ap-southeast-7",""),
MANILA("manila","菲律宾-马尼拉","ap-southeast-6",""),
SEOUL("seoul","韩国-首尔","ap-northeast-2",""),
; ;
......
...@@ -76,6 +76,7 @@ class BrowserBackendApplicationTests { ...@@ -76,6 +76,7 @@ class BrowserBackendApplicationTests {
@Test @Test
void test3() throws Exception { void test3() throws Exception {
//SmsUtils.sendSms("18711016574", SmsUtils.SmsTemplateCode.IPEXPIRED, null );
//SmsUtils.sendSmsOTP("18711016574"); //SmsUtils.sendSmsOTP("18711016574");
JSONObject param = new JSONObject(); JSONObject param = new JSONObject();
param.put("day", "7"); param.put("day", "7");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment