SMS.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. package common.utils.jdcloud;
  2. import com.google.gson.Gson;
  3. import com.jdcloud.sdk.auth.CredentialsProvider;
  4. import com.jdcloud.sdk.auth.StaticCredentialsProvider;
  5. import com.jdcloud.sdk.http.HttpRequestConfig;
  6. import com.jdcloud.sdk.http.Protocol;
  7. import com.jdcloud.sdk.service.sms.client.SmsClient;
  8. import com.jdcloud.sdk.service.sms.model.*;
  9. import java.util.ArrayList;
  10. import java.util.List;
  11. public class SMS {
  12. private static SmsClient smsClient;
  13. // 地域信息不用修改
  14. private static final String REGION = "cn-north-1";
  15. public static void init() {
  16. // 请填写AccessKey ID
  17. String accessKeyId = System.getenv("JD_ACCESS_KEY");
  18. // 请填写AccessKey Secret
  19. String secretAccessKey = System.getenv("JD_SECRET_KEY");
  20. CredentialsProvider credentialsProvider = new StaticCredentialsProvider(accessKeyId, secretAccessKey);
  21. smsClient = SmsClient.builder()
  22. .credentialsProvider(credentialsProvider)
  23. .httpRequestConfig(new HttpRequestConfig.Builder().protocol(Protocol.HTTP).build()) //默认为HTTPS
  24. .build();
  25. }
  26. /**
  27. * 发短信
  28. */
  29. public static BatchSendResponse sendVerifyCodeByMobileNumber(String mobileNumber, String verifyCode) {
  30. if (SMS.smsClient == null) {
  31. SMS.init();
  32. }
  33. BatchSendRequest request = new BatchSendRequest();
  34. request.setRegionId(REGION);
  35. // 设置模板ID 应用管理-文本短信-短信模板 页面可以查看模板ID
  36. request.setTemplateId(System.getenv("JD_TEMPLATE_ID"));
  37. // 设置签名ID 应用管理-文本短信-短信签名 页面可以查看签名ID
  38. request.setSignId(System.getenv("JD_SIGN_ID"));
  39. // 设置下发手机号list
  40. List<String> phoneList = new ArrayList<>();
  41. phoneList.add(mobileNumber);
  42. request.setPhoneList(phoneList);
  43. // 设置模板参数,非必传,如果模板中包含变量请填写对应参数,否则变量信息将不做替换。
  44. List<String> params = new ArrayList<>();
  45. params.add(verifyCode);
  46. request.setParams(params);
  47. return smsClient.batchSend(request);
  48. }
  49. // /**
  50. // * 短信发送回执接口
  51. // */
  52. // public static void testStatusReport() {
  53. // StatusReportRequest statusReportRequest = new StatusReportRequest();
  54. // statusReportRequest.setRegionId(REGION);
  55. // // 设置序列号
  56. // // 序列号从下发接口response中获取。response.getResult().getData().getSequenceNumber();
  57. // statusReportRequest.setSequenceNumber("");
  58. // // 设置要查询的手机号列表
  59. // List<String> phoneList = new ArrayList<>();
  60. // phoneList.add("");
  61. // statusReportRequest.setPhoneList(phoneList);
  62. // StatusReportResponse response = smsClient.statusReport(statusReportRequest);
  63. // System.out.println(new Gson().toJson(response));
  64. // }
  65. //
  66. // /**
  67. // * 短信回复接口
  68. // */
  69. // public static void testReply() {
  70. // ReplyRequest replyRequest = new ReplyRequest();
  71. // replyRequest.setRegionId(REGION);
  72. // // 设置应用ID 应用管理-文本短信-概览 页面可以查看应用ID
  73. // replyRequest.setAppId("");
  74. // // 设置查询日期 时间格式:2019-09-01
  75. // replyRequest.setDataDate("");
  76. // // 设置要查询的手机号列表 非必传
  77. // List<String> phoneList = new ArrayList<>();
  78. // phoneList.add("");
  79. // replyRequest.setPhoneList(phoneList);
  80. // ReplyResponse response = smsClient.reply(replyRequest);
  81. // System.out.println(new Gson().toJson(response));
  82. // }
  83. public static void main(String[ ] args) {
  84. // 初始化client
  85. init();
  86. System.out.println(sendVerifyCodeByMobileNumber("177****####", "3213"));
  87. /*
  88. // testStatusReport();
  89. // testReply();
  90. */
  91. }
  92. }