可以免费测试的短信验证码接口接入

接入短信验证码之前必须要进行测试,不然接好之后,短信平台不给力,有的重新换平台,增加劳动量还会被老板骂,虽说现在大部分的短信平台都支持测试,但是还得亲自实践一番才能选择最适合自己企业的短信平台

 

此次介绍的验证码接口是以Java开发的,是一个标准http协议的接口,其他的语言都可以接入。

 

首先我们先测试一个速度,有些平台是有两种方式,比如以下介绍的(大多数平台都只有一种方式)

可以免费测试的短信验证码接口接入_第1张图片

其一:功能测试。直接输入手机号码,发送即可,观看从提交到手机收到验证码所需的时间,判断此平台的验证码相应速度。

可以免费测试的短信验证码接口接入_第2张图片

其二:接口测试。这是给开发者使用的一个测试环境,开发者在接入之前可以进行接口测试,如果满足自己企业的速度要求,在进行接入即可!

可以免费测试的短信验证码接口接入_第3张图片

其中接口测试中提到key这个参数,这个参数是注册时自动生成的一个秘钥,查看地址位于首页。注:不同的平台的命名方式不同,展现的位置也是不一样的。

可以免费测试的短信验证码接口接入_第4张图片

接入之前必须需要设定的几个参数(短信签名、配置模板、单个手机号码日发送量限制、账户每日发送量限制、预警通知联系人号码)

 

短信签名和短信,模板是短信验证码必填项,签名一般是2-6个字,为企业的简称或者是商标简称等,短信模板也就是发送给用户的内容模板。

可以免费测试的短信验证码接口接入_第5张图片

可以免费测试的短信验证码接口接入_第6张图片 

配备完成之后可以进行验证码接口接入,这里分别从前端代码和后端代码提供参考

前端代码



    
    
    
    
    
    
    
    
    


 

后端代码

HttpSession session = req.getSession();
    // TODO 验证码有效时间
    session.setMaxInactiveInterval(600);
    try {
      Integer num = RandNumber.getNum();
      // TODO 发送验证码通道
      Sendsms.Send(num, phone);
      session.setAttribute(phone, num);
      return R.ok();
    } catch (Exception e) {
      e.printStackTrace();
      logger.error(e.getMessage());
      return R.error("fasle");
    }
import java.io.Exception;
 
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
 
public class Sendsms {
 
  private static String Url = "https://vip.veesing.com/smsApi/verifyCode";
 
  // 发送短信验证码
  public static void Send(Integer num, String mobile) {
    try {
    HttpClient client = new HttpClient();
    PostMethod method = new PostMethod(Url);
    client.getParams().setContentCharset("UTF-8");
    method.setRequestHeader("ContentType", "application/x-www-form-urlencoded;charset=UTF-8");
    NameValuePair[] data = { 
        new NameValuePair("appId", "*********"),
        new NameValuePair("appKey", "**********"), 
        new NameValuePair("templateId", "*******"), 
        new NameValuePair("mobile", "*******"),
        new NameValuePair("variables", "*******") 
        };
    method.setRequestBody(data);
    client.executeMethod(method);
    String submitResult = method.getResponseBodyAsString();
    System.out.println(submitResult);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
 
}
HttpSession session = req.getSession();
    String yzm = String.valueOf(session.getAttribute(username));
    logger.info(yzm);
    if (yzm == null) {
      return R.error("验证码错误");
    }
    if (yzm != null && !verifycode.equals(yzm)) {
      return R.error("验证码错误");
    }

 

随后附上短信验证码demo

package com.veesing.test; 

import java.io.IOException; 

import org.apache.commons.httpclient.HttpClient; 
import org.apache.commons.httpclient.HttpException; 
import org.apache.commons.httpclient.NameValuePair; 
import org.apache.commons.httpclient.methods.PostMethod; 
import com.alibaba.fastjson.JSONObject; 
import com.veesing.utils.Config; 

/** 
 * 短信验证码 
 * @author MWH 
 * 
 */ 
public class SmsCodeTest { 
    public static void main(String[] args) { 
        // 获取连接 
        HttpClient client = new HttpClient(); 
        // 短信验证码API接口地址 
        PostMethod method = new PostMethod("https://vip.veesing.com/smsApi/verifyCode"); 
        // 设置编码 
        client.getParams().setContentCharset("UTF-8"); 
        method.setRequestHeader("ContentType", "application/x-www-form-urlencoded;charset=utf-8"); 
        // 手机号码,一次只能提交一个手机号码 
        String phone = "15080929435"; 
        //模板ID(如没有模板ID请先在平台上新增并提交验证码模板,审核通过即可使用) 
        String templateId = "36"; 
        // 验证码变量(随机数) 
        Integer num = (int)((Math.random()*9+1)*1000); 
        String variables = num.toString(); 
        System.out.println("验证码是:"+variables); 
        // 拼接参数 
        NameValuePair[] data = {  
                new NameValuePair("appId", Config.appid),  
                new NameValuePair("appKey", Config.appkey), 
                new NameValuePair("phone", phone),  
                new NameValuePair("templateId", templateId),  
                new NameValuePair("variables", variables) }; 
        method.setRequestBody(data); 
        try { 
            client.executeMethod(method); 
            String result = method.getResponseBodyAsString(); 
            // 返回结果 
            System.out.println(result); 
            JSONObject jsonObject = JSONObject.parseObject(result); 
            // 返回2000则发送成功(逻辑操作请根据接口文档返回参数自行判断) 
            if (jsonObject.get("returnStatus").equals("2000")) { 
                System.out.println("成功!"); 
            } else { 
                System.out.println("失败!"); 
            } 
            // 释放连接 
            method.setRequestHeader("Connection", "close");   
            method.releaseConnection(); 
        } catch (HttpException e) { 
            e.printStackTrace(); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
    } 
} 

 

你可能感兴趣的:(短信验证码)