昨天看到一個網(wǎng)站的短信發(fā)送功能恒傻,我詫異于這個產(chǎn)品經(jīng)理的心大岳守,也詫異于這個通道商的膽大,短信發(fā)送界面居然沒有圖形驗證碼就可以點擊發(fā)送短信了碌冶,并且點擊發(fā)送短信也就算了,居然還沒有時間頻率限制涝缝。好吧扑庞,就著這個事情我把歷史做過的短信驗證碼功能復盤一下。
短信驗證碼的功能主要是為了方便客戶拒逮,也便于平臺獲取客戶真實有效的聯(lián)系方式罐氨,也是平臺積累客戶屬性的一種方式漫雕。常規(guī)的短信驗證碼發(fā)送必須在前端具備三要素堵未,手機號、圖形識別碼屈糊、發(fā)送按鈕玩徊。這里僅談PC版租悄,手機版雖然使用方式不一樣,但是這個要素也是經(jīng)過轉(zhuǎn)化必須的恩袱。
先談圖形識別碼的必須性泣棋,圖形識別碼在大部分的通道商都有硬性的要求,這個是為了防止機器人點擊造成的資源浪費畔塔。比方說技術(shù)可以通過手段進行模擬點擊潭辈,如果你有驗證碼就能在發(fā)送前屏蔽掉一些惡意的攻擊,如果沒有那就可以刷爆這個短信通道了澈吨,雖然發(fā)送的信息是你指定的把敢,但是你想一下,如果在10分鐘內(nèi)把你在通道商預存的費用全部刷光谅辣,你是不是想哭修赞。雖然這點對于用戶體驗比較不友好,畢竟有個障礙在這里桑阶,但卻是為了更好的保護平臺方的利益榔组,兩害相較取其輕嘛。
其次联逻,發(fā)送按鈕的間隔就是一個體驗問題了搓扯,由于客戶的網(wǎng)絡(luò)或者誤操作的原因造成的多次點擊,那平臺還發(fā)送多次短信給客戶包归,這不利于客戶的理解锨推,就有必要在單次點擊后暫時限制住客戶的點擊行為,通過一個交互給客戶一個已經(jīng)發(fā)送的反饋。其實换可,這也是一個保護平臺方利益的方式椎椰,避免重復發(fā)送。
再次沾鳄,這里可能有個小隱患慨飘,有些開發(fā)同學可能會在客戶點擊以后,將圖形驗證碼的值回傳給頁面译荞,在頁面點擊提交的時候進行校驗瓤的,這樣就不需要再次在后端進行驗證碼校驗,這里就是一個安全問題吞歼,如果是通過接口的方式圈膏,那黑客就可以進行解析,相當于繞過了圖形驗證碼的驗證意義篙骡,所以稽坤,還是需要將圖形碼的值放在后端進行校驗才行。
前端頁面的表象說完了糯俗,我們來談談冰山后面的事情尿褪。
短信發(fā)送是需要有人來發(fā)的,這里可以是通訊運營商得湘,也可以是代理商茫多,還可能是通道服務商,按公司接入的短信量來進行設(shè)計忽刽,大部分的公司可能就只是接入兩家通道商天揖,如果默認的通道發(fā)現(xiàn)發(fā)送失敗就自動轉(zhuǎn)入備選通道,如果兩條通道都失敗跪帝,那就不發(fā)了今膊,通知人工處理。我們這里往大的方面去設(shè)計一下伞剑,如果你在使用多家通道商的短信發(fā)送功能斑唬,那如何進行數(shù)據(jù)流轉(zhuǎn)呢?首要的你需要進行一個發(fā)送次數(shù)的判斷黎泣,目前運營商這邊針對單一通道設(shè)置了單日最多發(fā)十條的限制恕刘,可是我們服務商可以通過切換通道的方式去發(fā)送短信繞開這個限制,但是某些服務商只是單一通道抒倚,那切換通道就在平臺這邊進行了褐着,而為了保證用戶收到短信的最大效率,我們還需要有最后的一個救濟方式:語音短信托呕。這就是我們說的到了預警閾值就需要在終止發(fā)送短息前給最穩(wěn)定的一個方式含蓉。由于我們多家通道商频敛,我們也是需要評估通道商的服務質(zhì)量的,在系統(tǒng)運行一段時間后就可以得出哪些號段哪個運營商發(fā)送的比較穩(wěn)定馅扣,發(fā)送時間較快(用戶點擊發(fā)送的次數(shù)較少)斟赚,或者這個號碼在通道商那邊是否已經(jīng)列入黑名單(已經(jīng)回復過TD的將無法接受該通道的短信內(nèi)容),以及一些成本核算時發(fā)現(xiàn)支出率較低的通道差油,根據(jù)這些進行指標選擇發(fā)送給不同的用戶拗军,也可以采用投放策略的方式來管理發(fā)送的地域范圍或者號段范圍,這個具體設(shè)計的時候留心即可蓄喇。這里我只是拋磚引玉一下发侵,其實后面的這些功能完全可以成為一個獨立的系統(tǒng),相同類似的可能有支付公罕、商品、供應鏈等耀销,這里就不展開了楼眷,希望大家能多想想后續(xù)的衍變。
多家通道商的質(zhì)量評估熊尉,這個可是產(chǎn)品經(jīng)理必須具備的素養(yǎng)哦罐柳,千萬不能完成功能就放手前進了,要多記得戴明環(huán)的應用哦狰住,后臺產(chǎn)品經(jīng)理干的就是冰山一角后的所有事情张吉。