手機短信驗證碼交互概念

概念沒弄清之前,不敢冒用“XX設計”、“XX結/架構”字眼。

手機發送驗證碼,是個最簡單的例子。從用戶角度講,流程如下:

輸入手機號(輸入)->獲取驗證碼(點擊)->輸入驗證碼(輸入)->確認(點擊)

這四個步驟中所有操作都是非選擇性的,也就是說輸入手機號和驗證碼,獲取驗證碼和確認,都是有且僅有此一項操作需要用戶完成的,不會引起用戶歧義的,所以光標默認都可以在完成步驟後下一輸入框/按鈕上聚焦。

這單單是從用戶使用計算機的角度講的,如果涵蓋用戶的所有操作流程,應該爲:

用戶點擊申請/設置進入“獲取驗證碼”頁面->輸入手機號(1)->獲取驗證碼(2)->接收手機短信(3)->手機按鍵查看短信內容(4)->記住驗證碼內容(5)->在計算機上輸入驗證碼(6)->點擊確認,完成驗證過程(7)

其中的所有環節注意細則:

(1) 中國大陸的手機號爲固定11位,所以文本框限長11位。

考慮到用戶容易出錯的狀態和行爲,可以設計僅提供阿拉伯數字輸入,同時如果用戶輸入全角數字則自動將其轉換爲半角數字,出錯提示可以在用戶焦點離開文本框時激發判斷條件。

如果再考慮細節,可以將文本框的默認值設置爲1,或者+861,這是手機號碼的規律數字。不過考慮到用戶的使用習慣,所有人記手機號都是11位11位的,這個1要不要加還有待商榷。

(2) 在用戶輸入了第11個數字後,光標應該默認移動到“獲取認證碼”按鈕上(按白鴉圖),對於經常輸入用戶名/密碼的用戶,快捷的方式都是輸完用戶名之後按鍵輸密碼然後按這樣登錄的。

 

(3)由於地域等原因,短信有時候需要等待好一會兒才能收到,這期間有的用戶會因爲不耐心,或者覺得短信沒到,重新申請驗證碼。

Google這點做的不是很好,我就因爲一直沒收到其短信而不停重發驗證碼,等驗證碼到了的時候一下來了一大堆,都分不清哪個纔是最後的那個。我覺得一個可行的方案是用戶點擊“獲取驗證碼”後,給一個提示:“您的驗證碼已經在路上了,重新獲取需要耐心等待XX秒”,這個XX以

秒倒數(比如30秒),等計時到0才變成再次獲取驗證碼。既降低了服務器資源浪費,又能給用戶明確的提示。

(4)在接受短信上Nokia的比較人性化,當有短信或者電話進來時,中間的功能鍵就是查看新短信或者接聽電話,而不用再一層一層打開菜單查看。其他的反正我看到同事一款索愛的就非常麻煩,需要打開菜單的。不過在收到信短信時,同事的效率也很高,習慣成自然,就不覺得被虐待了。

(5)現在的驗證碼一般都是數字的(瞎猜騰訊要出漢字的驗證碼)。最好的用戶體驗應該是用戶一眼就能記住的內容,不必重複翻看或者校對的。但是出於安全性考慮又不能設計的太短,一般市面上最短見過極個別3位的,一般都是4位,Google的如果沒記錯好像是6位。不知道有沒有什麼科學依據。

不過,我個人覺得5位的驗證碼更適合中國人,並且有兩位數字一樣或者發音的平仄相同。爲什麼呢?因爲從記憶和朗讀的規律看,這樣的數字更容易被瞬間記住,比如10086這種的。另外一個角度,從古詩看,什麼“平平仄平仄”這種的容易被瞬間記憶(沒有科學根據,老祖宗傳下來結合自己瞎猜的)。不服?舉個例子:74188好記還是32906好記?(說實話,對我來說都差不多-_-)

(6) 一般驗證碼都是固定位數的,無論是4位還是6位,完成輸入後,光標應該自動移到“確定”按

鈕上,這樣按空格就能提交了。

最後通用的一點:鼠標定位慢,鍵盤定位快;鼠標需要看屏幕確認,鍵盤閉眼睛就能輸入完成。爲啥用空格不用回車?因爲我的小姆指沒大姆指那麼發達。

本文來自:http://ucdchina.com/post/1098

補充:

註冊時驗證碼:用戶註冊時需要填寫手機號或者郵箱,點擊獲取驗證碼,此時你使用java的random生成一個隨機數或者就使用時間拼出來一個隨機數,然後將這個隨機數存儲在此用戶的session中,使用java發送郵件,使用短信貓或者短信網管發送短信把驗證碼發過去,用戶收到後在網站上輸入收到的驗證碼,用戶點擊註冊,java後臺驗證用戶輸入的與session中的驗證碼是否一致,不一致拒絕註冊

註冊完成後激活碼:與上面不同的是先允許用戶註冊,只不過用戶屬於未激活狀態,然後把生成的激活馬存在用戶表的一個字段上,並給用戶發過去,用戶收到後登錄自己的賬戶把激活碼輸入正確後,用戶狀態修改爲正常

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章