package foundation.send.sms;
|
|
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.ExecutionException;
|
|
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.Logger;
|
|
import com.aliyun.auth.credentials.Credential;
|
import com.aliyun.auth.credentials.provider.StaticCredentialProvider;
|
import com.aliyun.sdk.service.dysmsapi20170525.AsyncClient;
|
import com.aliyun.sdk.service.dysmsapi20170525.models.SendSmsRequest;
|
import com.aliyun.sdk.service.dysmsapi20170525.models.SendSmsResponse;
|
import com.google.gson.Gson;
|
|
import darabonba.core.client.ClientOverrideConfiguration;
|
|
public class AliyunSMSProvider extends SmsProvider {
|
|
private static Logger logger;
|
private static AliyunSMSProvider instance;
|
|
static {
|
logger = LogManager.getLogger(AliyunSMSProvider.class);
|
}
|
|
public static synchronized AliyunSMSProvider getInstance() {
|
if (instance == null) {
|
instance = new AliyunSMSProvider();
|
}
|
|
return instance;
|
}
|
|
@Override
|
public String getName() {
|
logger.info("aliyun");
|
return "aliyun";
|
}
|
|
|
@Override
|
public void sendSms(SmsBuilder smsBuilder, SmsBuilderDetail smsBuilderDetail) throws Exception {
|
StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
|
.accessKeyId(smsBuilder.getSmsConfig().getIdkey())
|
.accessKeySecret(smsBuilder.getSmsConfig().getSecretkey())
|
.build());
|
|
AsyncClient client = AsyncClient.builder()
|
.region(smsBuilder.getSmsConfig().getRegion())
|
.credentialsProvider(provider)
|
.overrideConfiguration(ClientOverrideConfiguration.create()
|
.setEndpointOverride(smsBuilder.getSmsConfig().getEndpoint()))
|
.build();
|
|
SendSmsRequest sendSmsRequest = SendSmsRequest.builder()
|
.signName(smsBuilderDetail.getSignName())
|
.templateCode(smsBuilderDetail.getTemplateCode())
|
.phoneNumbers(smsBuilder.getPhone())
|
.templateParam(smsBuilderDetail.getTemplateContent())
|
.build();
|
|
CompletableFuture<SendSmsResponse> response = client.sendSms(sendSmsRequest);
|
SendSmsResponse resp = response.get();
|
System.out.println(new Gson().toJson(resp));
|
client.close();
|
}
|
|
@Override
|
public void sendBatchSms(SmsBuilder smsBuilder, SmsBuilderDetail smsBuilderDetail) throws Exception {
|
|
}
|
|
public static void main(String[] args) throws InterruptedException, ExecutionException {
|
StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
|
.accessKeyId("LTAI4G92tbAbpbN9eLbyFDdx")
|
.accessKeySecret("bbGYrr1oYQQf3MDA3yNOkZswxn8UBi")
|
.build());
|
|
AsyncClient client = AsyncClient.builder()
|
.region("cn-hangzhou")
|
.credentialsProvider(provider)
|
.overrideConfiguration(ClientOverrideConfiguration.create()
|
.setEndpointOverride("dysmsapi.aliyuncs.com"))
|
.build();
|
|
SendSmsRequest sendSmsRequest = SendSmsRequest.builder()
|
.signName("阿里云短信测试")
|
.templateCode("SMS_284995800")
|
.phoneNumbers("18350350522")
|
.templateParam("{\"code\":\"03521\"}")
|
.build();
|
|
CompletableFuture<SendSmsResponse> response = client.sendSms(sendSmsRequest);
|
SendSmsResponse resp = response.get();
|
System.out.println(new Gson().toJson(resp));
|
client.close();
|
}
|
|
|
|
|
}
|