验证码如何使用Java程序实现短信发送

现在是什么软件和平台登录都需要绑定手机号码,然后通过的短信验证码进行验证手机号,那么软件平台是如何Java程序进行短信验证码自动触发发送的呢?今天给大家分享的是Java实现短信验证码发送功能。

 

实现Java验证码发送的第一步:选取可以使用的短信平台

 

这种平台的好处是可以测试,如果短信平台的短信通道特别慢,可以直接换其他平台,避免平台不行造成的返工。

 

有的平台是支持接口测试,但是有的平台不行,可以直接测试就直接测试吧,不能测试的平台可找平台客服要接口文档测试。

验证码如何使用Java程序实现短信发送_第1张图片 标题

我选取的这家短信平台需要查看appid和appkey每家的平台都不太一样,不知道就直接找对应客服就对了。

验证码如何使用Java程序实现短信发送_第2张图片

一般测试的时候,带的签名都是短信平台自身预设的签名,但是测试是够了,正式使用还需要更改,不然发送的短信验证码所带的签名都是短信平台。

以post方式提交 ,接口地址:

https://vip.veesing.com/smsApi/verifyCode

以下是这个平台需要上传的资料

appid提交账户
appkey提交账户密码
phone 接收号码,只能提交1个号码

templateId 平台申请的验证码模板id

variables 生成的验证码变量

 示例代码

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", appid), 
				new NameValuePair("appKey", 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();
		}
	}
}

验证码如何使用Java程序实现短信发送_第3张图片

这样就OK了,测试完毕,万事大吉,收工回家。 

你可能感兴趣的:(验证码如何使用Java程序实现短信发送)