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


使用微信小程序雲函數實現注冊短信驗證碼的管理,並不是一件分分鍾的事,目前想要存儲驗證碼只能放到數據庫中,因為存儲后才能和用戶提交上來的驗證碼做比較。

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

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

下載地址: http://smsow.zhenzikj.com/doc/sdk.html

 

如何使用

1.安裝

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

miniprogram文件夾下包含使用示例,您可以參考這個完成開發。

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

2.申請賬號,獲取AppId、AppSecret

免費注冊地址: http://sms_developer.zhenzikj.com/zhenzisms_user/register.html

使用注冊賬號登錄用戶中心,在"我的應用"-> "詳情"中可以查詢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為請求地址,個人開發者使用https://sms_developer.zhenzikj.com,企業開發者使用https://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為請求地址,個人開發者使用https://sms_developer.zhenzikj.com,企業開發者使用https://sms.zhenzikj.com

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

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

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM