shikeying
2024-01-11 3b67e947e36133e2a40eb2737b15ea375e157ea0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
package com.walker.push.alidy;
 
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.fasterxml.jackson.databind.node.ObjectNode;
import com.walker.infrastructure.utils.JsonUtils;
import com.walker.push.PushResult;
import com.walker.push.PushStatusListener;
import com.walker.push.SmsMessage;
import com.walker.push.util.PushUtils;
import darabonba.core.client.ClientOverrideConfiguration;
 
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
 
public class SmsDemo {
 
    public static void main(String[] args) throws Exception {
//        test01();
//        test02();
    }
 
    private static void test02() throws Exception{
        PushStatusListener pushStatusListener = new DefaultPushListener();
        DefaultSmsPush smsPush = new DefaultSmsPush();
        smsPush.setPushStatusListener(pushStatusListener);
        smsPush.setAccessKeyId("LTAI5tEATHGRi6TYJ2WEJ4SB");
        smsPush.setAccessKeySecret("gmuZX1MRU9gltvR1ckGhvbPFhCPqKS");
        smsPush.setRegion("cn-hangzhou");
        smsPush.setSignName("河南省正开能源有限公司");
        smsPush.startup();
 
        Map<String, String> param = new HashMap<>(2);
        param.put("code", "0098");
//        ObjectNode param = new ObjectNode();
 
        SmsMessage smsMessage = new SmsMessage();
        smsMessage.setTemplateId("SMS_238211185");
        smsMessage.setTemplateParam(param);
//        smsMessage.setMobileList();
 
        PushResult pushResult = smsPush.push(PushUtils
                .acquireSmsNotification("发送验证码", JsonUtils.objectToJsonString(smsMessage), "0", "supervisor"));
        System.out.println("推送结果 = " + pushResult);
    }
 
    private static void test01() throws Exception{
        StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
                .accessKeyId("LTAI5tEATHGRi6TYJ2WEJ4SB")
                .accessKeySecret("gmuZX1MRU9gltvR1ckGhvbPFhCPqKS")
                //.securityToken("<your-token>") // use STS token
                .build());
 
        AsyncClient client = AsyncClient.builder()
                .region("cn-hangzhou") // 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().setEndpointOverride("dysmsapi.aliyuncs.com")
                        //.setConnectTimeout(Duration.ofSeconds(30))
                )
                .build();
 
        //初始化ascClient,暂时不支持多region(请勿修改)
//        IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
 
        String sms_code = "1122";
 
        SendSmsRequest sendSmsRequest = SendSmsRequest.builder()
                .phoneNumbers("13838277463")
                .signName("河南省正开能源有限公司")
                // Request-level configuration rewrite, can set Http request parameters, etc.
                // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
                .templateCode("SMS_238211185")
                .templateParam("{\"code\":\"" + sms_code + "\"}")
                .build();
 
        // Asynchronously get the return value of the API request
        CompletableFuture<SendSmsResponse> response = client.sendSms(sendSmsRequest);
        SendSmsResponse resp = response.get();
        System.out.println(JsonUtils.objectToJsonString(resp));
    }
}