本篇文章給大家?guī)淼膬?nèi)容是Java實(shí)現(xiàn)手機(jī)發(fā)送短信功能。有一定的參考價值,有需要的朋友可以參考一下,希望對你們有所幫助。一起跟隨小編過來看看吧。
一、實(shí)現(xiàn)手機(jī)短信驗(yàn)證的基本思路
1、用戶填寫手機(jī)號,點(diǎn)擊獲取驗(yàn)證碼按鈕(頁面可以做一些手機(jī)號是否有效處理),發(fā)起請求;成功后頁面開始倒計時60s
2、后臺接收到請求,驗(yàn)證手機(jī)號是否有效和是否被注冊,若無效或已注冊,則返回提示用戶該手機(jī)號無效或已注冊;若有效、未被注冊,后臺生成驗(yàn)證碼,并通過調(diào)用第三方短信接口并發(fā)送相關(guān)數(shù)據(jù)(包括手機(jī)號和驗(yàn)證碼),若發(fā)送成功則將驗(yàn)證碼存入session或resis中,并設(shè)置驗(yàn)證碼有效期,失敗則返回提示。
3、手機(jī)收到驗(yàn)證碼后在有效時間內(nèi),填寫在頁面,并點(diǎn)擊注冊后登陸等功能按鈕,發(fā)送請求
4、后臺接收到請求,獲取頁面?zhèn)鬟^來的驗(yàn)證碼與session或resis中的驗(yàn)證碼對比,相同則通過驗(yàn)證,可以做相應(yīng)的業(yè)務(wù)處理(注冊或登錄等操作),最后將session或resis中的驗(yàn)證碼無效化,一般置空就可以了;否則提示驗(yàn)證碼錯誤或以過期。
二、實(shí)現(xiàn)短信發(fā)送的技術(shù)
目前主要有三種方式:
(1)使用webservice接口發(fā)送手機(jī)短信,這個可以使用sina提供的webservice進(jìn)行發(fā)送,但是需要進(jìn)行注冊;
(2)使用短信mao的方式進(jìn)行短信的發(fā)送,這種方式應(yīng)該是比較的常用,前提是需要購買硬件設(shè)備,
(3)使用中國網(wǎng)建提供的SMS短信平臺(中國網(wǎng)建申請賬號地址:http://sms.webchinese.cn/reg.shtml)
其實(shí)無論哪種方式,基本都一樣,只需要把demo下來了,配置你自己的信息就可以啦。
這個主要介紹中國網(wǎng)建提供的SMS短信平臺發(fā)送短信:
注冊賬號后,平臺提供了5條免費(fèi)的測試短信,可以下載對應(yīng)的jar,和demo,修改配置,進(jìn)行開發(fā)接入
commons-logging-1.1.1.jar
commons-httpclient-3.1.jar
commons-codec-1.4.jar
demo實(shí)例:
HttpClientUtil工具類:封裝了短信發(fā)送的post/get請求發(fā)送的方法
test類:
import java.util.HashMap; import java.util.Map; public class test { //用戶名 private static String Uid = "測試www"; //接口安全秘鑰 private static String Key = "d41d8cd98f00b204e990"; //手機(jī)號碼,多個號碼如13800000000,13800000001,13800000002 private static String smsMob = "13800000000"; //短信內(nèi)容 private static String smsText = "驗(yàn)證碼:123456"; public static void main(String[] args) { HttpClientUtil client = HttpClientUtil.getInstance(); //UTF發(fā)送 int result = client.sendMsgUtf8(Uid, Key, smsText, smsMob); if (result > 0) { System.out.println("UTF8成功發(fā)送條數(shù)==" + result); } else { System.out.println(client.getErrorMsg(result)); } } }
關(guān)于Java實(shí)現(xiàn)手機(jī)發(fā)送短信功能就分享到這里了,希望以上內(nèi)容可以對大家有一定的參考價值,可以學(xué)以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。