天天看點

驗證碼,語音驗證碼

//發送語音驗證碼接口的http位址

private static String URI_SEND_VOICE = "https://voice.yunpian.com/v1/voice/send.json";

//智能比對模版發送接口的http位址

private static String URI_SEND_SMS = "https://sms.yunpian.com/v1/sms/send.json";

public static String sendVoice(String apikey, String mobile, String code) {

Map<String, String> params = new HashMap<String, String>();

params.put("apikey", apikey);

params.put("mobile", mobile);

params.put("code", code);

return post(URI_SEND_VOICE, params);

}

public static boolean smsSendVoice(String mobile, String code){

boolean flag = false;

try {

String result = SmsUtil.sendVoice(AppConfig.apiKey, mobile, code);

logger.info(result);

JSONObject obj = JSONObject.fromObject(result);

int respCode = (Integer)obj.get("code");

String msg = obj.get("msg")==null?"檢測您發送短信頻率過高,請您稍後再試":(String)obj.get("msg");

logger.info("code: " + respCode + "; msg: " + msg );

if(respCode == 0 && null != msg && "OK".equals(msg)) {

flag = true;

}} catch (Exception e) {

// TODO: handle exception

logger.error("SmsUtil.smsSendVoice IOException", e);

}

return flag;

}

//發送密碼接口

public static boolean SmsApiForPwd(String userPhone, String pwd) {

StringBuffer textBuffer = new StringBuffer();

textBuffer.append("【暢的充電】您的密碼是").append(pwd).append(",").append("請您妥善保管");

String text = textBuffer.toString();

boolean flag = false;

try {

String mobile = URLEncoder.encode(userPhone, ENCODING);

String result = SmsUtil.sendSms(AppConfig.apiKey, text, mobile);

logger.info(result);

JSONObject obj = JSONObject.fromObject(result);

int respCode = (Integer)obj.get("code");

String msg = (String)obj.get("msg");

logger.info("code: " + respCode + "; msg: " + msg );

if(respCode == 0 && null != msg && "OK".equals(msg)) {

flag = true;

}

} catch (UnsupportedEncodingException e1) {

// TODO Auto-generated catch block

logger.error("SmsUtil.SmsApi UnsupportedEncodingException", e1);

} catch (IOException e) {

// TODO Auto-generated catch block

logger.error("SmsUtil.SmsApi IOException", e);

}

return flag;

}

//發送驗證碼接口

public static boolean SmsApi(String userPhone, String code) {

StringBuffer textBuffer = new StringBuffer();

textBuffer.append("【暢的充電】您的驗證碼是").append(code).append(",").append(AppConfig.expire_date).append("分鐘内有效。若非本人操作請忽略此消息。");

String text = textBuffer.toString();

boolean flag = false;

try {

String mobile = URLEncoder.encode(userPhone, ENCODING);

String result = SmsUtil.sendSms(AppConfig.apiKey, text, mobile);

logger.info(result);

JSONObject obj = JSONObject.fromObject(result);

int respCode = (Integer)obj.get("code");

String msg = obj.get("msg")==null?"檢測您發送短信頻率過高,請您稍後再試":(String)obj.get("msg");

logger.info("code: " + respCode + "; msg: " + msg );

if(respCode == 0 && null != msg && "OK".equals(msg)) {

flag = true;

}

} catch (UnsupportedEncodingException e1) {

// TODO Auto-generated catch block

logger.error("SmsUtil.SmsApi UnsupportedEncodingException", e1);

} catch (IOException e) {

// TODO Auto-generated catch block

logger.error("SmsUtil.SmsApi IOException", e);

}

return flag;

}

public static String sendSms(String apikey, String text, String mobile) throws IOException {

Map<String, String> params = new HashMap<String, String>();

params.put("apikey", apikey);

params.put("text", text);

params.put("mobile", mobile);

return post(URI_SEND_SMS, params);

}

public static String post(String url, Map<String, String> paramsMap) {

CloseableHttpClient client = HttpClients.createDefault();

String responseText = "";

CloseableHttpResponse response = null;

try {

HttpPost method = new HttpPost(url);

if (paramsMap != null) {

List<NameValuePair> paramList = new ArrayList<NameValuePair>();

for (Map.Entry<String, String> param : paramsMap.entrySet()) {

NameValuePair pair = new BasicNameValuePair(param.getKey(), param.getValue());

paramList.add(pair);

}

method.setEntity(new UrlEncodedFormEntity(paramList, ENCODING));

}

response = client.execute(method);

HttpEntity entity = response.getEntity();

if (entity != null) {

responseText = EntityUtils.toString(entity);

}

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

response.close();

} catch (Exception e) {

e.printStackTrace();

}

}

return responseText;

}

public String getSecurityCode() {

String securityCode = "";

for(int i=0 ; i<4 ; i++) {

securityCode += UmsConfig.intArray[(int) Math.floor(Math.random()*10)];

}

return securityCode;

}

public static void main(String[] args) {

// TODO Auto-generated method stub

//System.out.println(3);

SmsUtil.SmsApi("153********", "999999");

// String str = "{'code':0,'msg':'OK','result':{'count':1,'fee':0.055,'sid':5033613460}}";

// JSONObject obj = JSONObject.fromObject(str);

// System.out.println((Integer)obj.get("code"));

// System.out.println((String)obj.get("msg"));

}

轉載于:https://www.cnblogs.com/whb11/p/6923320.html