阿里雲簡訊驗證碼的坑.....
阿新 • • 發佈:2019-02-07
阿里雲簡訊的坑
博主在整合阿里雲簡訊的時候發生了此問題:
- 明明生成6位數字的驗證碼結果,通過阿里雲簡訊傳送出來有時只有5位。
解決辦法也很簡單我就直接貼程式碼,說原因了。
原因是: 問題原因:因為我返回的隨機驗證碼有時候第一位數字是0。所以,我就把驗證碼中如果第一位是0,就重新隨機。
剛剛: 指出了我的錯誤,原來是返回到阿里大於裡面的驗證碼,被識別為數字了…然後第一位數字是0就預設去掉了。他提供的解決方法是在驗證碼外層拼接一個單引號 ”
感謝指出
/**
*獲取隨機驗證碼
* @param len
* @return
*/
public static String generNumCode(int len){
//例項化 StringBuffer ,用作拼接驗證碼
//博主會在這篇博文發後不久,會更新一篇String與StringBuilder開發時的抉擇的博文。
StringBuffer code = new StringBuffer();
/拼接一個不為0的數字
code.append(getRandom());
//長度減1,隨機拼接數字
for (int i = 0; i < len-1; i++) {
code.append(new Random().nextInt(10));
}
//利用遞迴演算法,如果隨機數長度不夠則重新隨機
if(code.length() != 6){
return generNumCode(6);
}else {
return code.toString();
}
}
/**
* 使用遞迴演算法,獲取第一個隨機數不為0
* @return int
*/
public static int getRandom(){
int number = new Random().nextInt(10);
if(0 == number){
return getRandom();
}
return number;
}
完
如有建議,歡迎指出。