一、短信簽名設置
1、短信簽名是什么?
簽名是在短信內容開始或者末尾跟的品牌或者應用名稱,設置簽名有一下幾個好處:增加品牌的曝光度,增強用戶的記憶讓用戶能更清楚的知道正在使用的應用。
2、簽名可不可以不設置?
如果您不設置簽名,您通過接口發送的短信將很可能會進入短信審核流程(注:進入該流程需要短信發送平台的客服人工審核,將會影響短信的發送和到達時間)或者可能直接被網關駁回,所以,為了您平台用戶使用短信的穩定性,設置短信簽名是十分必要的。
3、短信簽名怎么設置?
一般簽名設置為您的品牌名、應用名、公司名等有代表性的信息,三到八個字即可。如【信信客】、【淘寶網】。
二、短信模板設置
1、什么是短信模板?
短信模板是對您將要發送的短信進行相似性提取后的內容。舉個例子:
A用戶在您平台注冊會員,需要發送一條短信,內容如下:
您好,您的驗證碼是:111111
同時,B用戶也在您的平台注冊會員,發送了如下短信:
您好,您的驗證碼是:222222
我們提取相似度以后,可以制作以下短信模板:
您好,您的驗證碼是:${code}
其中,${code}這種使用大括號包圍起來的形式,我們稱之為變量。您可以按照所在場景定義變量。
短信模板中的變量可以是數字,英文或漢字等
1.實例一:需要傳遞變量值:${code}=“123456”
2.實例二:需要傳遞變量值:${nanme}=“李先生”,${order}=“20160506168”,${amount}=“588”。
2、為什么要設置短信模板?
如果不設置短信模板,通過接口發送的短信將很可能會進入短信審核流程(注:進入該流程需要短信發送平台的客服人工審核,將會影響短信的發送和到達時間),或者直接被網關駁回,所以,為了您平台用戶使用短信的穩定性,設置模板也是十分必要的。
三、如果不設置短信簽名和模板,可以不可以發送短信?
可以發送,但是該短信將會進入人工審核流程,可能會影響您的短信到達時間。所以,我們強烈建議您報備短信簽名和模板。
四:關於開發
官方代碼樣例:
TaobaoClient client = new DefaultTaobaoClient(url, appkey, secret); AlibabaAliqinFcSmsNumSendRequest req = new AlibabaAliqinFcSmsNumSendRequest(); req.setExtend( "" ); req.setSmsType( "normal" ); req.setSmsFreeSignName( "" ); req.setSmsParamString( "" ); req.setRecNum( "13000000000" ); req.setSmsTemplateCode( "" ); AlibabaAliqinFcSmsNumSendResponse rsp = client.execute(req); System.out.println(rsp.getBody());
項目實際代碼:
//service中發送驗證碼的邏輯
@Override public Map<String, String> sendSMSMsg(String phone, String msg) throws ApiException { Map<String, String> map = new HashMap<String, String>();
//開發過程中,設置不發送短信 if (!StringUtils.equals("1", smsSettings.getOpen())) { map.put("resultCode", "0"); map.put("smsPhone", phone + ""); map.put("smsTime", (new Date()).getTime() + ""); map.put("smsCode", "1234"); return map; } TaobaoClient client = new DefaultTaobaoClient(smsSettings.getUrl(), smsSettings.getAppkey(), smsSettings.getSecret()); AlibabaAliqinFcSmsNumSendRequest req = new AlibabaAliqinFcSmsNumSendRequest(); Random rnd = new Random(); int code = rnd.nextInt(8999) + 1000;(0到9999四位數驗證碼) req.setSmsType(smsSettings.getType()); req.setSmsFreeSignName(smsSettings.getSignName()); req.setSmsParamString("{\"code\":\"" + code + "\",\"product\":\"" + "" + "\"}");//套用模板 req.setRecNum(phone); req.setSmsTemplateCode(smsSettings.getTplCode()); AlibabaAliqinFcSmsNumSendResponse response = client.execute(req); logger.info("sendMsm,body: {}", response.getBody()); if (response.getBody().contains("error_response")) {// true map.put("resultCode", "1"); map.put("resultMsg", "短信發送次數超出限制,請稍后再試。");// 對同一個手機號可發送1條/分鍾,7條/小時,50條/天 } else if (response.getResult().getSuccess()) { map.put("resultCode", "0"); map.put("smsPhone", phone + ""); map.put("smsTime", (new Date()).getTime() + ""); map.put("smsCode", code + ""); } return map; }