其實微信小程序前端和雲端都是能夠調用短信平臺接口發送短信的,使用雲端雲函數的好處是無需配置域名,也沒有個數限制。html
本文使用的是榛子云短信平臺(http://smsow.zhenzikj.com) ,SDK下載: http://smsow.zhenzikj.com/doc/sdk.html前端
1. 安裝
下載後的SDK在cloudfunctions文件夾下會包含3個雲函數文件夾,以下:json
因爲目前IDE沒有云函數導入功能,您須要手工建立同名的雲函數,而後將雲函數下的文件手工拷進去小程序
注:下載的SDK是一個完整的工程,包含SDK和使用示例,可實際運行演示微信小程序
2.申請帳號,獲取AppId、AppSecret
免費註冊地址: http://sms_developer.zhenzikj.com/zhenzisms_user/register.htmlapi
使用註冊帳號登陸用戶中心,在"個人應用"-> "詳情"中能夠查詢AppId、AppSecret安全
AppId、AppSecret是用於開發者使用帳號和祕鑰, 如下的全部api中都須要用到服務器
3.發送短信微信
wx.cloud.callFunction({ // 雲函數名稱 name: 'zhenzisms_send', // 傳給雲函數的參數 data: { apiUrl: '你的apiUrl', appId: '你的appId', appSecret: '你的appSecret', message: '你的驗證碼爲:1234', number: '15811111111', messageId: '' }, success(res) { console.log(res.result.body) }, fail: console.error }) }
apiUrl爲請求地址,我的開發者使用https://sms_developer.zhenzikj.com,企業開發者使用https://sms.zhenzikj.comapp
send方法用於單條發送短信
參數message:發送的短信內容
參數number:接收者手機號碼
參數messageId:該條信息的惟一標識,可用於查詢
返回結果是json格式的字符串, code: 發送狀態,0爲成功。非0爲發送失敗,可從data中查看錯誤信息
4.查看餘額
經過該接口可查看當前剩餘的短信條數
wx.cloud.callFunction({ // 雲函數名稱 name: 'zhenzisms_balance', // 傳給雲函數的參數 data: { apiUrl: '你的apiUrl', appId: '你的appId', appSecret: '你的appSecret' }, success(res) { console.log(res.result.body) }, fail: console.error }) }
返回結果是json格式的字符串, code: 查詢狀態,0爲成功,data爲剩餘短信條數。非0爲查詢失敗,可從data中查看錯誤信息
錯誤代碼表
錯誤碼 緣由 解決方案
100 參數格式錯誤 檢查請求參數是否爲空
105 appId錯誤或應用不存在 請聯繫工做人員申請應用或檢查appId是否輸入錯誤
106 應用被禁止 請聯繫工做人員查看緣由
107 ip錯誤 若是設置了ip白名單,系統會檢查請求服務器的ip地址,已肯定是否爲安全的來源訪問
110 應用祕鑰(AppSecret)錯誤 檢查AppSecret是否輸入錯誤,或是否已在用戶中心進行了祕鑰重置
1000 系統位置錯誤 請聯繫工做人員或技術人員檢查緣由
5.查詢短信
接口描述
根據messageId查詢已發送短信
wx.cloud.callFunction({ // 雲函數名稱 name: 'zhenzisms_findSmsByMessageId', // 傳給雲函數的參數 data: { appId: '你的appId', appSecret: '你的appSecret', messageId: 'messageId信息' }, success(res) { console.log(res.result.body) }, fail: console.error })
請求參數
參數名稱 必選 類型 描述
messageId 是 string 信息id,對應發送短信接口的messageId字段
返回結果
返回結果是json格式的字符串, code: 查詢狀態,0爲成功。非0爲失敗,可從data中查看錯誤信息
{ "code":0, "data":{} } 返回結果是json格式的字符串, code: 查詢狀態,0爲成功,data短信信息的json字符串