接入阿里短信平台
1.需求場景
我們公司的售后系統需要在接收到客戶的售后產品時需要給用戶推送一條短信消息,告知用戶他的快遞我們已經收到會盡快處理客戶的售后問題。
2.解決方案
2.1 使用阿里的短信平臺服務
參考阿里云短信平臺:https://help.aliyun.com/product/44282.html?spm=5176.12226203.0.0.f17a1cbeXRbQ9i
2.2 申請短信模板
參考阿里云短信憑條的短信模板說明和申請流程:https://dysms.console.aliyun.com/dysms.htm?spm=5176.2020520169.nav-right.2.2ae375bd55tlb0#/domestic/text/sign
2.2.1 無參數模板
簡單的理解就是用戶收的短信內容不能定制。在阿里云申請模板是什么樣子的那么用戶收到的信息也就是什么樣子的。
2.2.2 有參數模板
簡單的理解就是用戶收到的信息是我們可以一定程度上定制。我們在阿里云平臺上申請短信模板時會設置一些我們預先設置好占位符,在真正的使用模板發送短信時我們用我肯需要的字符來替換我們預先設置的占位符達到短信定制效果。
舉個例就是我們經常受到一些短信驗證碼的信息,那么發短息的平臺就是使用的有參數的短信模板來給用戶發信息的。
2.3 申請短信簽名
短信簽名是調用api時必填的參數。短信簽名會出現在用戶收到的短信的最前面,簡單的理解可以認為是讓用戶知道是那個公司給他發送的短信。
2.4 accessKeyId和accessSecret
accessKeyId和accessSecret是我們在調用api時必填的參數。另外accessKeyId和accessSecret擁有該賬號的所有權限,一定要做好保密措施。
2.5 調試
2.5.1 阿里在先調試平臺
阿里提供了一個在線調試工具,參考地址:https://api.aliyun.com/new?spm=a2c4g.11186623.2.13.5b0119d9PGJKeD#/?product=Dysmsapi&version=2017-05-25&api=SendSms&tab=DEMO&lang=JAVA
2.5.1 調用阿里的sdk本地調試
2.5.1.1 maven的pom文件引入阿里的sdk:
<dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.0.3</version></dependency>2.5.1.2 代碼實現
這里有點小問題:阿里提供的的Demo里面的對應的方法沒有點進實現類里面才發現方法寫錯了。CommonRequest類里面的setSysXXX的時候應該是setXXX。已經提工單給到阿里。
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "Gvi5XXXXXXXbMeos", "EBsOb3m98pXXXXXXXx0DajvwSsTIJVF");IAcsClient client = new DefaultAcsClient(profile);CommonRequest request = new CommonRequest();request.setMethod(MethodType.POST);request.setDomain("dysmsapi.aliyuncs.com");request.setVersion("2017-05-25");request.setAction("SendSms");request.putQueryParameter("RegionId", "cn-hangzhou");request.putQueryParameter("PhoneNumbers", PhoneNumbers);request.putQueryParameter("SignName", "火火兔售后");request.putQueryParameter("TemplateCode", "SMS_18794XXXXX");request.putQueryParameter("TemplateParam", "{\"maintenanceCosts\":" + maintenanceCosts + "}");try {CommonResponse response = client.getCommonResponse(request);} catch (ServerException e) {e.printStackTrace();} catch (ClientException e) {e.printStackTrace();}2.6 最終效果
總結
- 上一篇: Codeforces 685BKay a
- 下一篇: 字符串与数字相加的问题