1. 程式人生 > >簡訊驗證碼工具類

簡訊驗證碼工具類

package util;

import com.montnets.mwgate.common.GlobalParams;
import com.montnets.mwgate.common.Message;
import com.montnets.mwgate.smsutil.ConfigManager;
import com.montnets.mwgate.smsutil.SmsSendConn;

/**
 * @author 石樂志
 * @version 建立時間:2018年5月17日 下午1:37:10 手機簡訊驗證工具類
 * 此為夢網雲簡訊平臺簡訊傳送工具類
 * 只測試了單條簡訊傳送的功能,如需其他功能,可以自行上官網下載
 * 賬戶為傳送簡訊的賬戶,不是登入的那個賬戶,密碼也是
 * 網址:http://www.monyun.cn/account/new_activity.html#B_vid=14000372792667055753
 */
public class SDKDemoUtil {
    public static GlobalParams globalParams;
    public static SmsSendConn smsSendConnnew;
    // 是否保持長連線
    public static boolean isKeepAlive = true;
    // 使用者賬號
    public static String userid = "E103I3";
    static {
        // 建立全域性引數
        globalParams = new GlobalParams();
        // 設定請求路徑
        globalParams.setRequestPath("/sms/v2/std/");
        // 設定是否需要日誌 1:需要日誌;0:不需要日誌
        globalParams.setNeedLog(1);
        // 設定全域性引數
        ConfigManager.setGlobalParams(globalParams);

        // 設定使用者賬號資訊
        setAccountInfo();

        // 例項化簡訊處理物件
        smsSendConnnew = new SmsSendConn(isKeepAlive);
    }

    /**
     *
     * @description SDK示例
     * @param args
     */
    public static int sendMsg(String phone, String code) {
        // 單條傳送
        int singleSend = singleSend(smsSendConnnew, userid, code,phone);
        return singleSend;
    }

    /**
     * @description 設定使用者賬號資訊
     */
    public static void setAccountInfo() {
        // 設定使用者賬號資訊

        // 傳送賬號(此為傳送簡訊的賬戶,而不是登入的賬戶。密碼也是)
        String userid = "傳送賬號";
        // 密碼
        String password = "密碼";
        // 傳送優先順序
        int priority = 1;
        // 主IP資訊
        String ipAddress1 = "api01.monyun.cn:7901";

        // 備用IP1資訊
        String ipAddress2 = "192.169.1.189:8086";
        // 備用IP2資訊
        String ipAddress3 = null;
        // 備用IP3資訊
        String ipAddress4 = null;
        // 返回值
        int result = -310007;
        try {
            // 設定使用者賬號資訊
            result = ConfigManager.setAccountInfo(userid, password, priority, ipAddress1, ipAddress2, ipAddress3,
                    ipAddress4);
            // 判斷返回結果,0設定成功,否則失敗
            if (result == 0) {
                System.out.println("設定使用者賬號資訊成功!");
            } else {
                System.out.println("設定使用者賬號資訊失敗,錯誤碼:" + result);
            }
        } catch (Exception e) {
            // 異常處理
            e.printStackTrace();
        }
    }

    /**
     * 移除使用者賬號
     *
     * @param userid
     *            使用者賬號
     */
    public static void removeAccount(String userid) {
        try {
            // 呼叫移除使用者賬號的方法
            int result = ConfigManager.removeAccount(userid);

            // 返回0,代表移除成功
            if (result == 0) {
                System.out.println("移除使用者賬號[" + userid + "]成功!");
            }
            // 返回非0,代表移除失敗
            else {
                System.out.println("移除使用者賬號[" + userid + "]失敗!錯誤碼:" + result);
            }
        } catch (Exception e) {
            // 異常處理
            e.printStackTrace();
        }
    }

    /**
     *
     * @description 單條傳送
     * @param smsSendConn
     *            簡訊處理物件,在這個方法中呼叫傳送簡訊功能
     * @param userid
     *            使用者賬號
     * @param code
     *            隨機生成的驗證碼
     */
    public static int singleSend(SmsSendConn smsSendConn, String userid, String code,String phone) {
        // 返回值
        int result = -310099;
        try {
            // 引數類
            Message message = new Message();
            // 設定使用者賬號 指定使用者賬號傳送,需要填寫使用者賬號,不指定使用者賬號傳送,無需填寫使用者賬號
            message.setUserid(userid);
            // 設定手機號碼 此處只能設定一個手機號碼
            message.setMobile(phone);
            // 設定內容
            message.setContent("驗證碼:" + code + ",打死都不要告訴別人哦!");
            // 設定擴充套件號
            message.setExno("11");
            // 使用者自定義流水編號
            message.setCustid("20160929194950100001");
            // 自定義擴充套件資料
            message.setExdata("abcdef");
            // 業務型別
            message.setSvrtype("SMS001");

            // 返回的流水號
            StringBuffer returnValue = new StringBuffer();

            // 傳送簡訊
            result = smsSendConn.singleSend(message, returnValue);
            // result為0:成功
            /*if (result == 0) {
                System.out.println("單條傳送提交成功!");
                System.out.println(returnValue.toString());
            }
            // result為非0:失敗
            else {
                System.out.println("單條傳送提交失敗,錯誤碼:" + result);
            }*/
            
            if(0 != result) {
                System.out.println("單條傳送提交失敗,錯誤碼:" + result);
            }
        } catch (Exception e) {
            // 異常處理
            e.printStackTrace();
        }
        return result;
    }

/**
     * 生成6位隨機驗證碼 方法說明
     * @return
     */
    public static StringBuilder createRandomVcode() {
        // 驗證碼
        StringBuilder vcode = new StringBuilder();
        for (int i = 0; i < 6; i++) {
            vcode.append((int) (Math.random() * 9))  ;
        }
        return vcode;
    }

}

呼叫程式碼:

/**
* @author 石樂志
* @version 建立時間:2018年5月18日 上午8:02:25
* 類說明
*/
public class SDKDemoUtilTest {

    @Test
    public void test() {
        StringBuilder phoneCode = SDKDemoUtil.createRandomVcode();
        System.out.println(phoneCode);
    }

}