微信小程序雲開發,快速生成短信驗證碼

使用微信小程序雲函數實現註冊短信驗證碼的管理,並非一件分分鐘的事,目前想要存儲驗證碼只能放到數據庫中,由於存儲後才能和用戶提交上來的驗證碼作比較。html

管理驗證碼主要涉及到:生成、存儲、校驗、有效期管理、2條短信間隔時間控制等、雲數據庫的操做,小編但是用了整整一天才完成的。數據庫

下面推薦一個第三方的短信接口,支持小程序雲函數發送短信驗證碼,並且SDK已經實現了上述的全部功能,不妨試一試。json

下載地址: smsow.zhenzikj.com/doc/sdk.htm…小程序


如何使用微信小程序

1.安裝api

下載後的SDK在cloudfunctions文件夾下會包含zhenzisms文件夾,您直接把這個文件夾拷到您的項目中便可。bash

miniprogram文件夾下包含使用示例,您能夠參考這個完成開發。微信

注: 使用雲函數開發無需配置域名的app

2.申請帳號,獲取AppId、AppSecret函數

免費註冊地址: sms_developer.zhenzikj.com/zhenzisms_u…

使用註冊帳號登陸用戶中心,在"個人應用"-> "詳情"中能夠查詢AppId、AppSecret

AppId、AppSecret是用於開發者使用帳號和祕鑰, 如下的全部api中都須要用到


3.修改SDK中的AppId、AppSecret

打開SDK中雲函數的index.js文件,填寫appId、appSecret



4.發送短信

此方法sendCode是專用於發送短信驗證碼的,調用該方法會自動生成驗證碼並存儲在數據庫中,當用戶提交信息後能夠經過validateCode方法比對驗證碼是否正確。

首先,您須要在雲開發控制檯中建立名稱爲sms-record的集合,用於存放驗證碼信息的,這個集合您無需維護。以下圖:



其次,修改集合的權限,以下圖:



使用方法:

wx.cloud.callFunction({
      name: 'zhenzisms',
      data: {
        $url: 'sendCode',
        apiUrl: 'https://sms_developer.zhenzikj.com',
        message: '您的驗證碼爲:{code}',
        number: '18511111111',
        messageId: 'aaabbb',
        seconds: 60
      }
    }).then((res) => {
      console.log(res.result.msg);
    }).catch((e) => {
      //console.log(e);
    });複製代碼

apiUrl爲請求地址,我的開發者使用sms_developer.zhenzikj.com,企業開發者使用sms.zhenzikj.com

send方法用於單條發送短信

參數$url:方法名稱,固定不變的

參數message:發送短信的模板,您能夠修改爲您須要的,其中{code}會自動替換爲驗證碼的

參數number:接收者手機號碼

參數messageId:該條信息的惟一標識,可用於查詢

參數seconds:驗證碼的有效期,單位秒

參數length:驗證碼的長度,好比經常使用的4位或6位

返回結果是json格式的字符串, code: 發送狀態,0爲成功。非0爲發送失敗,可從data中查看錯誤信息

注: 測試發送短信內容不要使用"你好"或"12132"全數字形式,這種短信內容沒有具體的意義,可能會被運營商屏蔽

注:目前兩條驗證碼短信獲取的間隔時間是60秒,如需取消間隔時間或從新設置您須要修改sdk中的index.js文件,以下圖:



6.校驗驗證碼

此方法validateCode須要和方法sendCode配合使用,用於校驗用戶提交上來的驗證碼和系統生成的是否一致

wx.cloud.callFunction({
      name: 'zhenzisms',
      data: {
        $url: 'validateCode',
        apiUrl: 'https://sms_developer.zhenzikj.com',
        number: '18511111111',
        code: '6313'
      }
    }).then((res) => {
      console.log(res.result.msg);
    }).catch((e) => {
      console.log(e);
    });複製代碼

apiUrl爲請求地址,我的開發者使用sms_developer.zhenzikj.com,企業開發者使用sms.zhenzikj.com

參數$url:方法名稱,固定不變的

參數number:發送短信的手機號碼

參數code:用戶輸入的驗證碼

返回結果是json對象,其中code項是錯誤代碼,msg項是錯誤描述。code說明 success: 校驗成功,empty:未調用sendCode方法生成驗證碼, code_expired:驗證碼已過時,過時時間是經過sendCode方法的參數seconds控制,code_error:驗證碼錯誤

相關文章
相關標籤/搜索