Merge branch 'dev' of http://139.159.177.244:3000/hurui/hai-server into dev
commit
9930e9d779
@ -0,0 +1,189 @@ |
||||
package com.cweb.controller; |
||||
import com.fasterxml.jackson.databind.ObjectMapper; |
||||
import com.hai.model.MtSmsMessageModel; |
||||
import com.hai.model.ResponseData; |
||||
import io.swagger.annotations.Api; |
||||
import io.swagger.annotations.ApiOperation; |
||||
import org.springframework.stereotype.Controller; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
import org.springframework.web.bind.annotation.RequestMethod; |
||||
import org.springframework.web.bind.annotation.RequestParam; |
||||
import org.springframework.web.bind.annotation.ResponseBody; |
||||
|
||||
|
||||
import java.io.BufferedReader; |
||||
import java.io.InputStream; |
||||
import java.io.InputStreamReader; |
||||
import java.io.OutputStreamWriter; |
||||
import java.io.PrintWriter; |
||||
import java.net.URL; |
||||
import java.security.cert.CertificateException; |
||||
import java.security.cert.X509Certificate; |
||||
import java.util.ArrayList; |
||||
import java.util.HashMap; |
||||
import java.util.List; |
||||
import java.util.Map; |
||||
|
||||
|
||||
import javax.net.ssl.HostnameVerifier; |
||||
import javax.net.ssl.HttpsURLConnection; |
||||
import javax.net.ssl.SSLContext; |
||||
import javax.net.ssl.SSLSession; |
||||
import javax.net.ssl.TrustManager; |
||||
import javax.net.ssl.X509TrustManager; |
||||
|
||||
@Controller |
||||
@Api(value = "华为云短信发送") |
||||
@RequestMapping(value = "/test") |
||||
public class testController { |
||||
/** |
||||
* 设置不验证主机 |
||||
*/ |
||||
|
||||
|
||||
private static final HostnameVerifier DO_NOT_VERIFY = new HostnameVerifier() { |
||||
|
||||
|
||||
@Override |
||||
public boolean verify(String hostname, SSLSession session) { |
||||
|
||||
|
||||
return true; |
||||
|
||||
|
||||
} |
||||
|
||||
|
||||
}; |
||||
|
||||
@RequestMapping(value = "/sendSmsCode", method = RequestMethod.GET) |
||||
@ApiOperation(value = "发送短信验证码") |
||||
@ResponseBody |
||||
public String sendSmsCode(@RequestParam(value = "phone", required = true) String phone) throws Exception { |
||||
// ip:port根据实际情况填写
|
||||
String url = "https://139.9.32.119:18312/common/sms/sendTemplateMessage"; |
||||
String msisdn = "18090580471"; |
||||
String smsTemplateId = "SMS_21092300061"; |
||||
Map<String, String> templateParas = new HashMap<String, String>(); |
||||
templateParas.put("code", "123456"); |
||||
String account = "760887"; //实际账号
|
||||
String password = "Z.o'&mO%7_?5M,Br"; //实际密码
|
||||
|
||||
// If the request body does not contain the signature name, set signature to null.
|
||||
Map<String, Object> body = buildRequestBody(msisdn, smsTemplateId, templateParas, account, password); |
||||
if (null == body || body.isEmpty()) { |
||||
System.out.println("body is null."); |
||||
return ""; |
||||
} |
||||
|
||||
|
||||
HttpsURLConnection connection = null; |
||||
InputStream is = null; |
||||
BufferedReader br = null; |
||||
trustAllHttpsCertificates(); |
||||
try { |
||||
|
||||
|
||||
URL realUrl = new URL(url); |
||||
connection = (HttpsURLConnection) realUrl.openConnection(); |
||||
connection.setHostnameVerifier(DO_NOT_VERIFY); |
||||
connection.setDoInput(true); // 设置可输入
|
||||
connection.setDoOutput(true); // 设置该连接是可以输出的
|
||||
connection.setRequestMethod("POST"); // 设置请求方式
|
||||
connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8"); |
||||
// connection.connect();
|
||||
ObjectMapper objectMapper = new ObjectMapper(); |
||||
PrintWriter pw = new PrintWriter(new OutputStreamWriter(connection.getOutputStream(), "UTF-8")); |
||||
pw.write(objectMapper.writeValueAsString(body)); |
||||
pw.flush(); |
||||
pw.close(); |
||||
|
||||
|
||||
br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8")); |
||||
int status = connection.getResponseCode(); |
||||
if (200 == status) { // 200
|
||||
is = connection.getInputStream(); |
||||
} else { // 400/401
|
||||
is = connection.getErrorStream(); |
||||
} |
||||
br = new BufferedReader(new InputStreamReader(is, "UTF-8")); |
||||
String line = null; |
||||
StringBuilder result = new StringBuilder(); |
||||
while ((line = br.readLine()) != null) { // 读取数据
|
||||
result.append(line + "\n"); |
||||
} |
||||
connection.disconnect(); |
||||
System.out.println(result.toString()); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} finally { |
||||
try { |
||||
|
||||
|
||||
if (null != is) { |
||||
is.close(); |
||||
} |
||||
if (null != br) { |
||||
br.close(); |
||||
} |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} |
||||
} |
||||
return ""; |
||||
} |
||||
|
||||
// msisdn, smsTemplateId, paramValues, countryID
|
||||
public static Map<String, Object> buildRequestBody(String msisdn, String smsTemplateId, |
||||
Map<String, String> paramValues, String accout, String passward) { |
||||
if (null == msisdn || null == smsTemplateId || null == accout || null == passward) { |
||||
System.out.println( |
||||
"buildRequestBody(): mobiles, templateId or templateParas or account or password is null."); |
||||
return null; |
||||
} |
||||
|
||||
|
||||
Map<String, Object> map = new HashMap<String, Object>(); |
||||
List<MtSmsMessageModel> requestLists = new ArrayList<MtSmsMessageModel>(); |
||||
MtSmsMessageModel mtSmsMessage = new MtSmsMessageModel(); |
||||
List<String> mobiles = new ArrayList<String>(); |
||||
mobiles.add(msisdn); |
||||
mtSmsMessage.setMobiles(mobiles); |
||||
mtSmsMessage.setTemplateId(smsTemplateId); |
||||
mtSmsMessage.setTemplateParas(paramValues); |
||||
mtSmsMessage.setSignature("【嗨森逛】"); |
||||
requestLists.add(mtSmsMessage); |
||||
map.put("account", accout); |
||||
map.put("password", passward); |
||||
map.put("requestLists", requestLists); |
||||
return map; |
||||
} |
||||
|
||||
|
||||
static void trustAllHttpsCertificates() throws Exception { |
||||
TrustManager[] trustAllCerts = new TrustManager[] { |
||||
new X509TrustManager() { |
||||
@Override |
||||
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { |
||||
return; |
||||
} |
||||
|
||||
|
||||
@Override |
||||
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { |
||||
return; |
||||
} |
||||
|
||||
|
||||
@Override |
||||
public X509Certificate[] getAcceptedIssuers() { |
||||
return null; |
||||
} |
||||
} |
||||
}; |
||||
SSLContext sc = SSLContext.getInstance("SSL"); |
||||
sc.init(null, trustAllCerts, null); |
||||
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,71 @@ |
||||
package com.hai.model; |
||||
|
||||
import java.util.List; |
||||
import java.util.Map; |
||||
|
||||
public class MtSmsMessageModel { |
||||
List<String> mobiles; |
||||
|
||||
|
||||
String templateId; |
||||
|
||||
|
||||
Map<String, String> templateParas; |
||||
|
||||
|
||||
String signature; |
||||
|
||||
|
||||
String messageId; |
||||
|
||||
|
||||
String extCode; |
||||
|
||||
public List<String> getMobiles() { |
||||
return mobiles; |
||||
} |
||||
|
||||
public void setMobiles(List<String> mobiles) { |
||||
this.mobiles = mobiles; |
||||
} |
||||
|
||||
public String getTemplateId() { |
||||
return templateId; |
||||
} |
||||
|
||||
public void setTemplateId(String templateId) { |
||||
this.templateId = templateId; |
||||
} |
||||
|
||||
public Map<String, String> getTemplateParas() { |
||||
return templateParas; |
||||
} |
||||
|
||||
public void setTemplateParas(Map<String, String> templateParas) { |
||||
this.templateParas = templateParas; |
||||
} |
||||
|
||||
public String getSignature() { |
||||
return signature; |
||||
} |
||||
|
||||
public void setSignature(String signature) { |
||||
this.signature = signature; |
||||
} |
||||
|
||||
public String getMessageId() { |
||||
return messageId; |
||||
} |
||||
|
||||
public void setMessageId(String messageId) { |
||||
this.messageId = messageId; |
||||
} |
||||
|
||||
public String getExtCode() { |
||||
return extCode; |
||||
} |
||||
|
||||
public void setExtCode(String extCode) { |
||||
this.extCode = extCode; |
||||
} |
||||
} |
Loading…
Reference in new issue