diff --git a/mallinkService/pom.xml b/mallinkService/pom.xml
index 587b29a7d..048c9d796 100644
--- a/mallinkService/pom.xml
+++ b/mallinkService/pom.xml
@@ -42,8 +42,8 @@
com.aliyun
- alibabacloud-dysmsapi20170525
- 4.0.7
+ dysmsapi20170525
+ 4.3.1
org.jsoup
diff --git a/mallinkService/src/main/java/com/iformall/sms/aliyun/AliyunSMS.java b/mallinkService/src/main/java/com/iformall/sms/aliyun/AliyunSMS.java
index f7f86a205..f30813d6f 100644
--- a/mallinkService/src/main/java/com/iformall/sms/aliyun/AliyunSMS.java
+++ b/mallinkService/src/main/java/com/iformall/sms/aliyun/AliyunSMS.java
@@ -2,42 +2,28 @@ package com.iformall.sms.aliyun;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.aliyun.auth.credentials.provider.DefaultCredentialProvider;
-import com.aliyun.sdk.service.dysmsapi20170525.AsyncClient;
-import com.aliyun.sdk.service.dysmsapi20170525.models.CreateSmsSignRequest;
-import com.aliyun.sdk.service.dysmsapi20170525.models.CreateSmsSignResponse;
-import com.aliyun.sdk.service.dysmsapi20170525.models.CreateSmsTemplateRequest;
-import com.aliyun.sdk.service.dysmsapi20170525.models.CreateSmsTemplateResponse;
-import com.aliyun.sdk.service.dysmsapi20170525.models.GetSmsSignRequest;
-import com.aliyun.sdk.service.dysmsapi20170525.models.GetSmsSignResponse;
-import com.aliyun.sdk.service.dysmsapi20170525.models.GetSmsTemplateRequest;
-import com.aliyun.sdk.service.dysmsapi20170525.models.GetSmsTemplateResponse;
+import com.aliyun.credentials.Client;
+import com.aliyun.credentials.models.Config;
+import com.aliyun.tea.TeaException;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.*;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
-import com.google.gson.Gson;
import com.iformall.common.ErrorCode;
-import com.iformall.domain.po.WxMsgConfig;
import com.iformall.exception.MallinkException;
import com.iformall.sms.EnumSMSChannel;
import com.iformall.sms.SMSExcutor;
import com.iformall.sms.SMSResult;
import com.iformall.sms.aliyun.bean.*;
-
-import darabonba.core.client.ClientOverrideConfiguration;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
-
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.ExecutionException;
@Component
@Slf4j
@@ -48,6 +34,21 @@ public class AliyunSMS implements SMSExcutor {
public void setSmsConfig(AliyunSMSConfig smsConfig){
this.smsConfig = smsConfig;
}
+
+ public com.aliyun.dysmsapi20170525.Client createClient() throws Exception {
+ Config credentialConfig = new Config();
+ credentialConfig.setType("access_key");
+ // 必填参数,此处以从环境变量中获取AccessKey ID为例
+ credentialConfig.setAccessKeyId(smsConfig.getAccessKeyId());
+ // 必填参数,此处以从环境变量中获取AccessKey Secret为例
+ credentialConfig.setAccessKeySecret(smsConfig.getAccessKeySecret());
+ Client credentialClient = new Client(credentialConfig);
+ com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config();
+ config.setCredential(credentialClient);
+ config.setEndpoint(smsConfig.getDomain());
+ return new com.aliyun.dysmsapi20170525.Client(config);
+ }
+
@Override
public String sendMsg(String secret, String bid, String publickey, String phone, String signature, String msg, String notifyUrl, String verifysms, String templateParam, String templateCode, String outId) {
@@ -87,145 +88,97 @@ public class AliyunSMS implements SMSExcutor {
return JSON.toJSONString(SMSResult);
*/
SMSResult SMSResult = new SMSResult();
- DefaultCredentialProvider provider = DefaultCredentialProvider.builder().build();
- AsyncClient client = AsyncClient.builder()
- .region(smsConfig.getRegionId()) // Region ID
- //.httpClient(httpClient) // Use the configured HttpClient, otherwise use the default HttpClient (Apache HttpClient)
- .credentialsProvider(provider)
- //.serviceConfiguration(Configuration.create()) // Service-level configuration
- // Client-level configuration rewrite, can set Endpoint, Http request parameters, etc.
- .overrideConfiguration(
- ClientOverrideConfiguration.create()
- // Endpoint 请参考 https://api.aliyun.com/product/Dysmsapi
- .setEndpointOverride(smsConfig.getDomain())
- //.setConnectTimeout(Duration.ofSeconds(30))
- )
- .build();
-
- CreateSmsTemplateRequest createSmsTemplateRequest = CreateSmsTemplateRequest.builder()
- // Request-level configuration rewrite, can set Http request parameters, etc.
- // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
- .templateName(templateName)
- .templateContent(content)
- .remark(remark)
- .templateType(templateType)
- .build();
-
- // Asynchronously get the return value of the API request
- CompletableFuture response = client.createSmsTemplate(createSmsTemplateRequest);
- // Synchronously get the return value of the API request
- CreateSmsTemplateResponse resp = null;
+
+
+ com.aliyun.dysmsapi20170525.Client client;
try {
- resp = response.get();
- Map retMap = resp.toMap();
- if(retMap != null){
- String code = (String) retMap.get("Code");
- if (StringUtils.isNotBlank(code) && code.equalsIgnoreCase("ok")) {
- SMSResult.setRet("1");
- SMSResult.setAliyunModelCode((String)retMap.get("TemplateCode"));
- }
-
- }
+ client = this.createClient();
+ } catch (Exception e) {
+ log.error("addTemplate error",e);
return JSON.toJSONString(SMSResult);
- } catch (InterruptedException | ExecutionException e) {
- log.error("addTemplate error.",e);
- return JSON.toJSONString(SMSResult);
- }finally {
- client.close();
}
-
- // Asynchronous processing of return values
- /*response.thenAccept(resp -> {
- System.out.println(new Gson().toJson(resp));
- }).exceptionally(throwable -> { // Handling exceptions
- System.out.println(throwable.getMessage());
- return null;
- });*/
-
- // Finally, close the client
- //client.close();
+ com.aliyun.dysmsapi20170525.models.CreateSmsTemplateRequest createSmsTemplateRequest = new com.aliyun.dysmsapi20170525.models.CreateSmsTemplateRequest();
+ createSmsTemplateRequest.setTemplateName(templateName);
+ createSmsTemplateRequest.setTemplateContent(content);
+ createSmsTemplateRequest.setTemplateType(templateType);
+ createSmsTemplateRequest.setRemark(remark);
+ com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
+ try {
+ com.aliyun.dysmsapi20170525.models.CreateSmsTemplateResponse resp = client.createSmsTemplateWithOptions(createSmsTemplateRequest, runtime);
+ JSONObject respo = JSON.parseObject(JSON.toJSONString(resp));
+ String code = respo.getString("Code");
+ if (StringUtils.isNotBlank(code) && code.equalsIgnoreCase("ok")) {
+ SMSResult.setRet("1");
+ SMSResult.setAliyunModelCode(respo.getString("TemplateCode"));
+ }
+ }catch (TeaException error) {
+ // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
+ // 错误 message
+ //System.out.println(error.getMessage());
+ // 诊断地址
+ //System.out.println(error.getData().get("Recommend"));
+ log.error("addTemplate error:"+error.getMessage()+"|recommend:"+error.getData().get("Recommend"),error);
+ } catch (Exception _error) {
+ TeaException error = new TeaException(_error.getMessage(), _error);
+ // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
+ // 错误 message
+ //System.out.println(error.getMessage());
+ // 诊断地址
+ //System.out.println(error.getData().get("Recommend"));
+ log.error("addTemplate error:"+error.getMessage()+"|recommend:"+error.getData().get("Recommend"),_error);
+ }
+ return JSON.toJSONString(SMSResult);
}
@Override
public String querySmsTemplate(String templateCode) {
- /**
- SMSTemplate smsTemplate = new SMSTemplate();
- smsTemplate.setTemplateCode(templateCode);
- QuerySmsTemplateResponse querySmsTemplateResponse = this.querySmsTemplate(smsTemplate);
- if(querySmsTemplateResponse.getCode() != null && querySmsTemplateResponse.getCode().equalsIgnoreCase("ok")){
- JSONObject obj = new JSONObject();
- obj.put("templateCode",querySmsTemplateResponse.getTemplateCode());
- obj.put("templateStatus",querySmsTemplateResponse.getTemplateStatus());//0:审核中。1:审核通过。2:审核失败
- obj.put("reason",querySmsTemplateResponse.getReason());
- return obj.toJSONString();
- }
- return null;
- */
- DefaultCredentialProvider provider = DefaultCredentialProvider.builder().build();
-
- // Configure the Client
- AsyncClient client = AsyncClient.builder()
- .region(smsConfig.getRegionId()) // Region ID
- //.httpClient(httpClient) // Use the configured HttpClient, otherwise use the default HttpClient (Apache HttpClient)
- .credentialsProvider(provider)
- //.serviceConfiguration(Configuration.create()) // Service-level configuration
- // Client-level configuration rewrite, can set Endpoint, Http request parameters, etc.
- .overrideConfiguration(
- ClientOverrideConfiguration.create()
- // Endpoint 请参考 https://api.aliyun.com/product/Dysmsapi
- .setEndpointOverride(smsConfig.getDomain())
- //.setConnectTimeout(Duration.ofSeconds(30))
- )
- .build();
-
- GetSmsTemplateRequest getSmsTemplateRequest = GetSmsTemplateRequest.builder()
- // Request-level configuration rewrite, can set Http request parameters, etc.
- // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
- .build();
-
- // Asynchronously get the return value of the API request
- CompletableFuture response = client.getSmsTemplate(getSmsTemplateRequest);
- // Synchronously get the return value of the API request
- GetSmsTemplateResponse resp = null;
+
+ com.aliyun.dysmsapi20170525.Client client;
try {
- resp = response.get();
- Map retMap = resp.toMap();
- if(retMap != null){
- String code = (String) retMap.get("Code");
- if (StringUtils.isNotBlank(code) && code.equalsIgnoreCase("ok")) {
- JSONObject obj = new JSONObject();
- obj.put("templateCode",retMap.get("TemplateCode"));
- String templateStauts = (String) retMap.get("TemplateStatus");
- obj.put("templateStatus",templateStauts);//0:审核中。1:审核通过。2:审核失败
- String reason = "";
- if (StringUtils.isNotBlank(templateStauts) && templateStauts.equals("2")) {
- Object ajo = retMap.get("AuditInfo");
- if (null != ajo) {
- JSONObject ajoo = JSON.parseObject(JSON.toJSONString(ajo));
- reason = ajoo.getString("RejectInfo");
- }
- }
- obj.put("reason",reason);
- return obj.toJSONString();
- }
- }
- return null;
- } catch (InterruptedException | ExecutionException e) {
- log.error("querySmsTemplate error.",e);
+ client = this.createClient();
+ } catch (Exception e) {
+ log.error("addTemplate error",e);
return null;
- }finally {
- client.close();
}
- // Asynchronous processing of return values
- /*response.thenAccept(resp -> {
- System.out.println(new Gson().toJson(resp));
- }).exceptionally(throwable -> { // Handling exceptions
- System.out.println(throwable.getMessage());
- return null;
- });*/
-
- // Finally, close the client
- //client.close();
+ com.aliyun.dysmsapi20170525.models.GetSmsTemplateRequest getSmsTemplateRequest = new com.aliyun.dysmsapi20170525.models.GetSmsTemplateRequest();
+ com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
+ try {
+ com.aliyun.dysmsapi20170525.models.GetSmsTemplateResponse resp = client.getSmsTemplateWithOptions(getSmsTemplateRequest, runtime);
+ JSONObject respo = JSON.parseObject(JSON.toJSONString(resp));
+ String code = respo.getString("Code");
+ if (StringUtils.isNotBlank(code) && code.equalsIgnoreCase("ok")) {
+ JSONObject obj = new JSONObject();
+ obj.put("templateCode",respo.getString("TemplateCode"));
+ String templateStauts = respo.getString("TemplateStatus");
+ obj.put("templateStatus",templateStauts);//0:审核中。1:审核通过。2:审核失败
+ String reason = "";
+ if (StringUtils.isNotBlank(templateStauts) && templateStauts.equals("2")) {
+ JSONObject ajo = respo.getJSONObject("AuditInfo");
+ if (null != ajo) {
+ reason = ajo.getString("RejectInfo");
+ }
+ }
+ obj.put("reason",reason);
+ return obj.toJSONString();
+ }
+ return null;
+ } catch (TeaException error) {
+ // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
+ // 错误 message
+ //System.out.println(error.getMessage());
+ // 诊断地址
+ //System.out.println(error.getData().get("Recommend"));
+ log.error("addTemplate error:"+error.getMessage()+"|recommend:"+error.getData().get("Recommend"),error);
+ } catch (Exception _error) {
+ TeaException error = new TeaException(_error.getMessage(), _error);
+ // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
+ // 错误 message
+ //System.out.println(error.getMessage());
+ // 诊断地址
+ //System.out.println(error.getData().get("Recommend"));
+ log.error("addTemplate error:"+error.getMessage()+"|recommend:"+error.getData().get("Recommend"),error);
+ }
+ return null;
}
@Override