zoukankan      html  css  js  c++  java
  • 验证码,语音验证码

    //发送语音验证码接口的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";

    /**
    * 通过接口发送语音验证码
    * @param apikey apikey
    * @param mobile 接收的手机号
    * @param code 验证码
    * @return
    */

    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;

    }

    /**
    * 智能匹配模版接口发短信
    *
    * @param apikey apikey
    * @param text  短信内容
    * @param mobile  接受的手机号
    * @return json格式字符串
    * @throws IOException
    */

    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);
    }

    /**
    * 基于HttpClient 4.3的通用POST方法
    *
    * @param url 提交的URL
    * @param paramsMap 提交<参数,值>Map
    * @return 提交响应
    */

    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;
    }

    /**
    * @param args
    */
    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"));
    }

  • 相关阅读:
    金斗云提醒用法说明
    金斗云提醒软件的原理
    缓存雪崩问题,缓存击穿问题,缓存一致性问题(内存+数据库)
    Spring的ApplicationEvent实现
    区块链技术--区块链的生成和链接
    区块链技术--比特币交易的锁定和解锁
    区块链技术--密码学
    区块链技术--比特币
    jedis中scan的实现
    KafkaManager对offset的两种管理方式
  • 原文地址:https://www.cnblogs.com/whb11/p/6923320.html
Copyright © 2011-2022 走看看