手把手教你对接阿里云短信服务
正好雙十二,最近在做一個小項目需要用到短信業務,注冊了新用戶125買了5000條短信,有效期2年。
那么如何對接阿里云短信,需要做哪些操作?
可以參考https://help.aliyun.com/document_detail/59210.html
短信流程圖
短信使用流程見下圖:
入駐阿里云,阿里云注冊入口:點擊注冊頁面、然后實名認證
開通短信服務
1.開通短信服務:點擊開通短信服務
2.進入控制臺:點擊查看控制臺頁面
獲取AccessKey
1創建AccessKey: 點擊創建AccessKey
2.獲取AccessKey ID和AccessKey Secret:點擊查看AccessKey ID和AccessKey Secret
創建簽名和模版
1.創建簽名前查看短信規則和審核規則:短信業務規則,審核規則
2.創建短信簽名:點擊查看創建短信簽名
需要審核,大概兩個小時。
3.創建短信模版:點擊查看創建短信模版
注意模板中只能包含一個占位符。如下。需要審核,大概兩個小時。請記住模板Code,如:SMS_181918946。下面調用接口是需要該參數。
您的驗證碼為${code},該驗證碼有效時間為3分鐘。驗證碼只能自己知道,打死也不能告訴別人哦!
短信接口配置
1.設置訪問權限控制:點擊訪問權限控制
2.SDK及DEMO下載:點擊下載SDK及DEMO
3.API文檔:點擊查看API文檔簡介
創建AccessKey
訪問密鑰AccessKey(AK)相當于登錄密碼,只是使用場景不同。AccessKey用于程序方式調用云服務API,而登錄密碼用于登錄控制臺。如果您不需要調用API,那么就不需要創建AccessKey。
背景信息
您可以使用AccessKey構造一個API請求(或者使用云服務SDK)來操作資源。AccessKey包括AccessKeyId和AccessKeySecret。
AccessKeyId用于標識用戶。 AccessKeySecret是用來驗證用戶的密鑰。AccessKeySecret必須保密。警告 禁止使用主賬號AK,因為主賬號AK泄露會威脅您所有資源的安全。請使用子賬號(RAM用戶)AK進行操作,可有效降低AK泄露的風險。
操作步驟
云賬號登錄RAM控制臺。在左側導航欄的人員管理菜單下,單擊用戶。在用戶登錄名稱/顯示名稱列表下,單擊目標RAM用戶名稱。在用戶AccessKey 區域下,單擊創建新的AccessKey。首次創建時需填寫手機驗證碼。單擊確認。
1、先創建用戶組,給用戶組加權限【短信管理權限】;
2、創建用戶,該用戶可以設置登陸權限,可以有獨立的密碼;
3、把用戶加入到用戶組,該用戶將擁有用戶組設置的權限;
4、給用戶生成Access Key和SecretKey;
上面的步驟做完后,可以參考API文檔中的示例代碼,調用阿里云短信接口。
我編寫的代碼如下:
package org.linlinjava.litemall.core.notify;import com.aliyuncs.CommonRequest; import com.aliyuncs.CommonResponse; import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.exceptions.ServerException; import com.aliyuncs.http.MethodType; import com.aliyuncs.profile.DefaultProfile; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.linlinjava.litemall.core.util.JacksonUtil;import java.util.HashMap; import java.util.Map;/** 阿里云短信服務*/ public class AliyunSmsSender implements SmsSender {private final Log logger = LogFactory.getLog(AliyunSmsSender.class);private String regionId;private String accessKeyId;private String accessKeySecret;private String sign;public String getRegionId() {return regionId;}public void setRegionId(String regionId) {this.regionId = regionId;}public String getAccessKeyId() {return accessKeyId;}public void setAccessKeyId(String accessKeyId) {this.accessKeyId = accessKeyId;}public String getAccessKeySecret() {return accessKeySecret;}public void setAccessKeySecret(String accessKeySecret) {this.accessKeySecret = accessKeySecret;}public String getSign() {return sign;}public void setSign(String sign) {this.sign = sign;}@Overridepublic SmsResult send(String phone, String content) {SmsResult smsResult = new SmsResult();smsResult.setSuccessful(false);return smsResult;}@Overridepublic SmsResult sendWithTemplate(String phone, String templateId, String[] params) {DefaultProfile profile = DefaultProfile.getProfile(this.regionId, this.accessKeyId, this.accessKeySecret);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", this.regionId);request.putQueryParameter("PhoneNumbers", phone);request.putQueryParameter("SignName", this.sign);request.putQueryParameter("TemplateCode", templateId);String templateParam = "{}";if(params.length == 1){Map<String, String> data = new HashMap<>();data.put("code", params[0]);templateParam = JacksonUtil.toJson(data);}else if(params.length > 1){Map<String, String> data = new HashMap<>();data.put("code", params[0]);for(int i = 1; i < params.length; i++){data.put("code" + i, params[i]);}templateParam = JacksonUtil.toJson(data);}request.putQueryParameter("TemplateParam", templateParam);try {CommonResponse response = client.getCommonResponse(request);SmsResult smsResult = new SmsResult();smsResult.setSuccessful(true);smsResult.setResult(response);return smsResult;} catch (ServerException e) {e.printStackTrace();} catch (ClientException e) {e.printStackTrace();}SmsResult smsResult = new SmsResult();smsResult.setSuccessful(false);return smsResult;} }其中RegionId可以是cn-hangzhou、cn-beijing等;Version必須是2017-05-25;其他參數AccessKey和SecretKey為在上面申請的。
最終效果
總結
以上是生活随笔為你收集整理的手把手教你对接阿里云短信服务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GMap.NET控件使用
- 下一篇: 俞敏洪沉默,新东方落泪