呼叫簡訊介面傳送驗證碼,並對驗證碼進行驗證
- 首先需要對簡訊介面內容進行封裝:
public class SendMsg2Util { private static String url="http://gw.api.taobao.com/router/rest"; private static String appkey="xxxxxxxx"; private static String secret="xxxxxxxx"; public void sendMsg(String name,String phone,String vcode) throws ApiException{ TaobaoClient client = new DefaultTaobaoClient(url, appkey, secret); AlibabaAliqinFcSmsNumSendRequest req = new AlibabaAliqinFcSmsNumSendRequest(); req.setExtend("XXX"); req.setSmsType("normal"); req.setSmsFreeSignName("註冊驗證"); req.setSmsParamString("{\"name\":\""+name+"\",\"code\":\""+vcode+"\"}"); req.setRecNum(phone); req.setSmsTemplateCode("SMS_11415328"); AlibabaAliqinFcSmsNumSendResponse rsp = client.execute(req); System.out.println(phone+"]驗證碼:"+vcode+">"+rsp.getMsg()); } public void sendMsg(String name,String phone) throws ApiException{ TaobaoClient client = new DefaultTaobaoClient(url, appkey, secret); AlibabaAliqinFcSmsNumSendRequest req = new AlibabaAliqinFcSmsNumSendRequest(); req.setExtend("XXX"); req.setSmsType("normal"); req.setSmsFreeSignName("變更驗證"); req.setSmsParamString("{\"name\":\""+name+"\",\"phone\":\""+phone+"\"}"); req.setRecNum(phone); req.setSmsTemplateCode("SMS_11535513"); AlibabaAliqinFcSmsNumSendResponse rsp = client.execute(req); System.out.println(rsp.getBody()); } public String sendVlidMsg(String name,String phone,String vcode) throws ApiException{ TaobaoClient client = new DefaultTaobaoClient(url, appkey, secret); AlibabaAliqinFcSmsNumSendRequest req = new AlibabaAliqinFcSmsNumSendRequest(); req.setExtend("XXX"); req.setSmsType("normal"); req.setSmsFreeSignName("XXX"); req.setSmsParamString("{\"name\":\""+name+"\",\"code\":\""+vcode+"\"}"); req.setRecNum(phone); req.setSmsTemplateCode("SMS_52125325"); AlibabaAliqinFcSmsNumSendResponse rsp = client.execute(req); if(rsp.getErrorCode()==null ||rsp.getErrorCode().equals("0")){ return "0"; }else{ return rsp.getMsg(); } } public String createRandomVcode(){ //驗證碼 String vcode = ""; for (int i = 0; i < 6; i++) { vcode = vcode + (int)(Math.random() * 9); } return vcode; } }
- 以上是傳送簡訊的工具類,接下來前臺傳送請求:
-
<button type="button" class="vcode-btn" id="vcode-btn">獲取驗證碼</button> //這些是格式設定,不做參考 <div class="input_row" style="display: none;" id="vcode_div"><label for="name"><span class="iconfont icon-radiobutton2 medium_size"></span></label> <div class="input_row_bd"><input id="vcode" type="text" placeholder="輸入驗證碼" /> </div> <div class="input_row_ft"><i class="weui-icon-warn"id="code_icon"></i></div> </div> $("#vcode-btn").click(function() { $("#vcode_div").show(); $.ajax({ type : "post", dataType : "text", url : "getValidPhoneCode.do", data : { length : 4, phone : phone, }, success : function(result) { var rsObj = typeof result === "object" ? result : $.parseJSON(result); if (rsObj.status == 0) { var step = 59; $('#vcode-btn').html('重發60'); var _res = setInterval(function() { $("#vcode-btn").attr("disabled", true);//設定disabled屬性 $('#vcode-btn').html('重發'+step); step-=1; if(step <= 0){ $("#vcode-btn").removeAttr("disabled"); //移除disabled屬性 $('#vcode-btn').html('獲取驗證碼'); clearInterval(_res);//清除setInterval } },1000); }else{ alert(rsObj.responseDescription); } } }) })
- 前臺傳送請求後,後臺對請求作出反應
@RequestMapping("/getValidPhoneCode.do") @ResponseBody public void getValidPhoneCode(HttpServletRequest request, HttpServletResponse response) { ResponseHeader resData = new ResponseHeader(); resData.setStatus(-1); int length = requestUtil.getIntValue(request, "length"); String phone = requestUtil.getStringValue(request, "phone"); //此處工具類隨機生成按照需要的位數生成的驗證碼; String phonecode = EncodeUtilTools.getRanomNumCode(length); request.getSession().setAttribute(phone, phonecode); SendMsg2Util sendmsg=new SendMsg2Util(); String rs="0"; // resData.setStatus(0); try { rs=sendmsg.sendVlidMsg(name, phone, phonecode); if(rs.equals("0")){ resData.setStatus(0); }else{ resData.setResponseDescription(rs); } } catch (ApiException e) { resData.setResponseDescription("簡訊介面異常,請稍後再試"); } System.out.println(phone+"]驗證碼:"+phonecode+"_"+rs); ResponseUtil.responseJson(response, resData); return; } /** * 生成隨機數字 * @param 編碼長度 * @return String */ public static String getRanomNumCode(int length) { Random random = new Random(); String result = ""; for (int i = 0; i < length; i++) { result += random.nextInt(10); } return result; }
- 以上就完成的簡訊的傳送功能,接下來就是對驗證碼進行驗證
$.ajax({
url : DOMAIN_URL + "/wechat/getCheckSesCode.do",
data : {
code : vcode,
key : localphone,
},
type : "post",
dataType : "text",
success : function(result) {
var rsObj = typeof result === "object" ? result : $.parseJSON(result);
if (rsObj.status == 0) {
//此處驗證碼正確,給出操作
}else{
//驗證碼錯誤,給出相應的操作
}
}
});
- 前臺發出請求驗證驗證碼是否正確,後臺對其作出響應
/**
* 檢驗手機校驗的code是否正確
* @param request
* @param response
*/
@RequestMapping("/getCheckSesCode.do")
@ResponseBody
public void getCheckSesCode(HttpServletRequest request,
HttpServletResponse response) {
ResponseHeader resData = new ResponseHeader();
resData.setStatus(-1);
String key = requestUtil.getStringValue(request, "key");
String code = requestUtil.getStringValue(request, "code");
if(key!=null &&code!=null){
String scode=(String) request.getSession().getAttribute(key);
if(scode.equals(code)){
resData.setStatus(0);
}
}
ResponseUtil.responseJson(response, resData);
return;
}
/**
* 獲得String型別請求引數
*
* @param request
* @param name
* @return
*/
public String getStringValue(HttpServletRequest request, String name) {
return StringUtil.isEmpty(name) ? null : request.getParameter(name);
}
- 通過以上步驟,就完成了傳送驗證碼以及對驗證碼進行驗證的功能
相關推薦
呼叫簡訊介面傳送驗證碼,並對驗證碼進行驗證
首先需要對簡訊介面內容進行封裝: public class SendMsg2Util { private static String url="http://gw.api.taobao.com/router/rest"; private static Str
演算法 -- 四種方法獲取的最長“迴文串”,並對時間複雜進行分析對比&PHP
迴文串: “迴文串”是一個正讀和反讀都一樣的字串,比如“level”或者“noon”等等就是迴文串。 -- 來自百度百科 關於獲取字串中最長的迴文串的演算法中,目前有很多演算法,本文中主要是用PHP來實現的演算法之一。 演算法一:暴力解法 暴力計算出所有的字串並判斷。時間複雜
去除String中的html標籤,並對進行替換
import java.util.regex.Matcher;
import java.util.regex.Pattern;
private String cleanHtmlTags(String htmlText)
{
if (StringUti
讀取Excel檔案,並對Excel檔案進行描述性分析
> mydata<-read.csv("E:\\╰凝初寒つ\\學習檔案\\大資料概論\\R語言\\soapdata.csv",header=T)
> dim(mydata)
> mydata<-head(mydata,41)
>
獲取當前正在執行的虛擬機器(Vmware Workstation),並對虛擬機器進行控制
vmware workstation 提供了一個命令列工具進行虛擬機器管理
C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe
Android 獲取字串首字母,並對字串列表進行排序。
最近在瞭解環信的過程中,看到裡面有一個可以根據使用者名稱對使用者進行排序的處理。今天單獨測試了一下, 在此做一個整理。
由於工具類HanziToPinyin.class程式碼量有點多,我就放到最後。
先來看獲取一箇中文字串的首字母方法:
/**
*
C#,WPF中使用多文字顯示資料,並對其資料進行關鍵字高亮等操作
需求:針對多文字資訊顯示,我們需要對其內容中的某些關鍵字或者某行進行高亮顯示,並用不同顏色顯示。
分析:在C#中,首先要進行多文字資訊顯示,可以RichTextBox(不要使用TextBox)控制元件,該控制元件由自動換行等功能,具體程式碼如下:
/// <summary>
/// 向
在servlet中獲取jsp頁面中選中的複選框的值,並對其值進行操作。
jsp部分程式碼:<input type="checkbox" name="checkboxs" value="${stuInfo.sid}"/>動態的為複選框賦值servlet程式碼:String[] ids = request.getParameterValu
java後臺呼叫簡訊介面,實現傳送簡訊驗證碼的控制層實現
1.設計:使用者填寫手機號,點選獲取驗證碼按鈕,controller層獲得所要傳送驗證碼的手機號,隨機生成六位數的驗證碼。呼叫傳送簡訊介面url向此手機號傳送驗證碼。注意:下面的程式碼採用的是雲信使的簡訊驗證碼介面,不同的驗證碼更換不同的url格式,即可。
`
Java專案整合阿里雲SMS簡訊介面傳送驗證碼
public static Map MessageExecuteMethod(String mobile) throws ClientException { //設定超時時間-可自行調整 System.setProperty(“sun.net.client.defaultConnectTim
基於兩個專案 之間的RabbitMQ 傳送和接收,並呼叫郵件介面,傳送郵件
專案原始碼 下載
第一個專案:qucik4j 下載地址:https://github.com/ZhangHLong/quick4j
作用: 定時監控指定服務埠是否異常,發生異常,會發送MQ訊息 通知email-server服務。
php手機註冊使用者簡訊傳送驗證碼,以及點擊發送驗證碼的倒計時效果。
php手機註冊傳送簡訊,我們用的是阿里的簡訊服務,首先你要有阿里的賬號,並開通了簡訊服務。可以單條計費也可以買套餐。首先html部分我用的是bootstrap布的頁面:<html lang="en">
<head>
<meta chars
Python隨機數random模塊學習,並實現生成6位驗證碼
import ID for循環 list 序列 獲取 大小 前言 字符 一、前言
學習python隨機數random模塊的使用 ,並使用模塊中的函數,實現6位驗證碼生成
二、random模塊
1、random.random()
返回0-1直接的隨機數,類型為float
&g
取redis中手機驗證碼,並驗證是否正確
controller:
/**
* 校驗驗證碼是否正確
* @param smsCode
* @param phone
*/
@RequestMapping(value = "checkSmsCode",method = RequestMethod.POST)
public Result
Python 批量下載驗證碼圖片及切割驗證碼圖片,識別驗證碼,並以識別的文字重命令驗證碼
1、Python 批量下載驗證碼圖片
2、批量切割驗證碼圖片
3、識別驗證碼,並以識別的文字重命令驗證碼
#!C:/Python27
#coding=utf-8
import pytesseract
from pytesser import *
from PIL imp
隨機生成200個8位驗證碼,並存入mysql資料庫
生成200個8位的驗證碼# -*- coding: utf-8 -*-
import mysql.connector
import random,string
def readkey(num,length):
with open('C:/Users/Administ
Python3.4---實戰專案-自動下載圖片驗證碼,並儲存到專門資料夾,使用圖片驗證碼庫識別,然後打印出來
Python3.4—實戰專案-自動下載圖片驗證碼,並儲存到專門資料夾,使用圖片驗證碼庫識別,然後打印出來
1、環境部署
參考文章《使用Python識別圖片驗證碼》內容,製造好圖片驗證碼識別庫msweb1.dat
1.1、對圖片驗證碼隨時下載的URL地址
kettle 呼叫post介面 出現非法字元 ,kettle如何呼叫post介面並解析
1.kettle post介面非法字元
此post介面在postman中是可以成功呼叫,但是在kettle中呼叫就會報錯,具體報錯資訊請看下面
排查了很久報錯原因是非法字元,最後查出是時間格式的問題,此介面的入參為
jsonArgs=start_time
Java之HttpClient呼叫WebService介面傳送簡訊原始碼實戰
## 摘要
Java之HttpClient呼叫WebService介面傳送簡訊原始碼實戰
### 一:介面文件
![Java之HttpClient呼叫WebService介面原始碼-001.png](https://img-blog.csdnimg.cn/img_convert/1e2ea7858d12
設置Eclipse可以Debug模式調試JDK源碼,並顯示局部變量的1
一個 拖拽 切換目錄 常用 res detail sdn 路徑 cep 最近突然萌發了研究JDK源碼的想法,所以就想到了在自己常用的Eclipse上可以調試JDK源碼。
整個設置過程也很簡單:
首先你要安裝好JDK(我的JDK安裝路徑根目錄是D:\Java\jdk-8
import java.util.regex.Matcher; import java.util.regex.Pattern; private String cleanHtmlTags(String htmlText) { if (StringUti
讀取Excel檔案,並對Excel檔案進行描述性分析
> mydata<-read.csv("E:\\╰凝初寒つ\\學習檔案\\大資料概論\\R語言\\soapdata.csv",header=T) > dim(mydata) > mydata<-head(mydata,41) >
獲取當前正在執行的虛擬機器(Vmware Workstation),並對虛擬機器進行控制
vmware workstation 提供了一個命令列工具進行虛擬機器管理 C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe
Android 獲取字串首字母,並對字串列表進行排序。
最近在瞭解環信的過程中,看到裡面有一個可以根據使用者名稱對使用者進行排序的處理。今天單獨測試了一下, 在此做一個整理。 由於工具類HanziToPinyin.class程式碼量有點多,我就放到最後。 先來看獲取一箇中文字串的首字母方法: /** *
C#,WPF中使用多文字顯示資料,並對其資料進行關鍵字高亮等操作
需求:針對多文字資訊顯示,我們需要對其內容中的某些關鍵字或者某行進行高亮顯示,並用不同顏色顯示。 分析:在C#中,首先要進行多文字資訊顯示,可以RichTextBox(不要使用TextBox)控制元件,該控制元件由自動換行等功能,具體程式碼如下: /// <summary> /// 向
在servlet中獲取jsp頁面中選中的複選框的值,並對其值進行操作。
jsp部分程式碼:<input type="checkbox" name="checkboxs" value="${stuInfo.sid}"/>動態的為複選框賦值servlet程式碼:String[] ids = request.getParameterValu
java後臺呼叫簡訊介面,實現傳送簡訊驗證碼的控制層實現
1.設計:使用者填寫手機號,點選獲取驗證碼按鈕,controller層獲得所要傳送驗證碼的手機號,隨機生成六位數的驗證碼。呼叫傳送簡訊介面url向此手機號傳送驗證碼。注意:下面的程式碼採用的是雲信使的簡訊驗證碼介面,不同的驗證碼更換不同的url格式,即可。 `
Java專案整合阿里雲SMS簡訊介面傳送驗證碼
public static Map MessageExecuteMethod(String mobile) throws ClientException { //設定超時時間-可自行調整 System.setProperty(“sun.net.client.defaultConnectTim
基於兩個專案 之間的RabbitMQ 傳送和接收,並呼叫郵件介面,傳送郵件
專案原始碼 下載 第一個專案:qucik4j 下載地址:https://github.com/ZhangHLong/quick4j 作用: 定時監控指定服務埠是否異常,發生異常,會發送MQ訊息 通知email-server服務。
php手機註冊使用者簡訊傳送驗證碼,以及點擊發送驗證碼的倒計時效果。
php手機註冊傳送簡訊,我們用的是阿里的簡訊服務,首先你要有阿里的賬號,並開通了簡訊服務。可以單條計費也可以買套餐。首先html部分我用的是bootstrap布的頁面:<html lang="en"> <head> <meta chars
Python隨機數random模塊學習,並實現生成6位驗證碼
import ID for循環 list 序列 獲取 大小 前言 字符 一、前言 學習python隨機數random模塊的使用 ,並使用模塊中的函數,實現6位驗證碼生成 二、random模塊 1、random.random() 返回0-1直接的隨機數,類型為float &g
取redis中手機驗證碼,並驗證是否正確
controller: /** * 校驗驗證碼是否正確 * @param smsCode * @param phone */ @RequestMapping(value = "checkSmsCode",method = RequestMethod.POST) public Result
Python 批量下載驗證碼圖片及切割驗證碼圖片,識別驗證碼,並以識別的文字重命令驗證碼
1、Python 批量下載驗證碼圖片 2、批量切割驗證碼圖片 3、識別驗證碼,並以識別的文字重命令驗證碼 #!C:/Python27 #coding=utf-8 import pytesseract from pytesser import * from PIL imp
隨機生成200個8位驗證碼,並存入mysql資料庫
生成200個8位的驗證碼# -*- coding: utf-8 -*- import mysql.connector import random,string def readkey(num,length): with open('C:/Users/Administ
Python3.4---實戰專案-自動下載圖片驗證碼,並儲存到專門資料夾,使用圖片驗證碼庫識別,然後打印出來
Python3.4—實戰專案-自動下載圖片驗證碼,並儲存到專門資料夾,使用圖片驗證碼庫識別,然後打印出來 1、環境部署 參考文章《使用Python識別圖片驗證碼》內容,製造好圖片驗證碼識別庫msweb1.dat 1.1、對圖片驗證碼隨時下載的URL地址
kettle 呼叫post介面 出現非法字元 ,kettle如何呼叫post介面並解析
1.kettle post介面非法字元 此post介面在postman中是可以成功呼叫,但是在kettle中呼叫就會報錯,具體報錯資訊請看下面 排查了很久報錯原因是非法字元,最後查出是時間格式的問題,此介面的入參為 jsonArgs=start_time
Java之HttpClient呼叫WebService介面傳送簡訊原始碼實戰
## 摘要 Java之HttpClient呼叫WebService介面傳送簡訊原始碼實戰 ### 一:介面文件 ![Java之HttpClient呼叫WebService介面原始碼-001.png](https://img-blog.csdnimg.cn/img_convert/1e2ea7858d12
設置Eclipse可以Debug模式調試JDK源碼,並顯示局部變量的1
一個 拖拽 切換目錄 常用 res detail sdn 路徑 cep 最近突然萌發了研究JDK源碼的想法,所以就想到了在自己常用的Eclipse上可以調試JDK源碼。 整個設置過程也很簡單: 首先你要安裝好JDK(我的JDK安裝路徑根目錄是D:\Java\jdk-8