1. 程式人生 > >驗證碼如何使用Java程式實現簡訊傳送

驗證碼如何使用Java程式實現簡訊傳送

現在是什麼軟體和平臺登入都需要繫結手機號碼,然後通過的簡訊驗證碼進行驗證手機號,那麼軟體平臺是如何Java程式進行簡訊驗證碼自動觸發傳送的呢?今天給大家分享的是Java實現簡訊驗證碼傳送功能。

 

實現Java驗證碼傳送的第一步:選取可以使用的簡訊平臺

 

這種平臺的好處是可以測試,如果簡訊平臺的簡訊通道特別慢,可以直接換其他平臺,避免平臺不行造成的返工。

 

有的平臺是支援介面測試,但是有的平臺不行,可以直接測試就直接測試吧,不能測試的平臺可找平臺客服要介面文件測試。

簡訊平臺
標題

我選取的這家簡訊

平臺需要檢視appid和appkey每家的平臺都不太一樣,不知道就直接找對應客服就對了。

簡訊平臺

一般測試的時候,帶的簽名都是簡訊平臺自身預設的簽名,但是測試是夠了,正式使用還需要更改,不然傳送的簡訊驗證碼所帶的簽名都是簡訊平臺。

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

簡訊驗證碼

這樣就OK了,測試完畢,萬事大吉,收工回家。