其實微信小程序前端和雲端都是能夠調用短信平臺接口發送短信的,使用雲端雲函數的好處是無需配置域名,也沒有個數限制。 html
本文使用的是榛子云短信平臺(smsow.zhenzikj.com) ,SDK下載: smsow.zhenzikj.com/doc/sdk.htm… 前端
下載後的SDK在cloudfunctions文件夾下會包含3個雲函數文件夾,以下:
json
因爲目前IDE沒有云函數導入功能,您須要手工建立同名的雲函數,而後將雲函數下的文件手工拷進去小程序
注:下載的SDK是一個完整的工程,包含SDK和使用示例,可實際運行演示微信小程序
免費註冊地址: http://sms_developer.zhenzikj.com/zhenzisms_user/register.html 使用註冊帳號登陸用戶中心,在"個人應用"-> "詳情"中能夠查詢AppId、AppSecret AppId、AppSecret是用於開發者使用帳號和祕鑰, 如下的全部api中都須要用到
api
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.com 安全
send方法用於單條發送短信 bash
參數message:發送的短信內容 服務器
參數number:接收者手機號碼 微信
參數messageId:該條信息的惟一標識,可用於查詢
返回結果是json格式的字符串, code: 發送狀態,0爲成功。非0爲發送失敗,可從data中查看錯誤信息
經過該接口可查看當前剩餘的短信條數
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 系統未知錯誤 請聯繫工做人員或技術人員檢查緣由
根據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 是 對應發送短信接口的messageId字段
返回結果
返回結果是json格式的字符串, code: 查詢狀態,0爲成功。非0爲失敗,可從data中查看錯誤信息 { "code":0, "data":{} } 返回結果是json格式的字符串, code: 查詢狀態,0爲成功,data短信信息的json字符串