▌1、需求描述
▌2、解決方案
因爲小程序自己不支持長久性的消息通知能力,所以,咱們能夠考慮藉助一些第三方的服務和能力,來完成咱們本身的需求。javascript
這個需求很適合使用小程序新發布的 長期訂閱消息 能力,可是目前該能力開放的類目還不足以支持咱們的須要。java
架構圖示node
具體操做web
在開通完成後,點擊界面中的【添加應用】,添加一個新的短信應用,你能夠根據本身的實際狀況,添加短信應用的名稱和簡介。shell
獲取 AppID、App Keynpm
添加完成後,點擊你建立好的應用,進入到應用詳情頁,在應用的詳情頁中的應用信息欄目中,你能夠找到 AppID 和 AppKey ,複製並保存這兩個值,稍候咱們會用到。小程序
2. 配置短信模板、短信簽名
騰訊雲短信並非讓你隨意發全部的內容的,而是你須要建立一個模板,並使用特定的模板來完成短信的發送。微信
短信簽名則是原來讓收到短信的用戶知道他所收到的短信來自於他的那一個服務,通常來講,設置爲產品的品名。微信開發
建立短信簽名架構
首先,點擊【國內短信】,進入到短信的頁面,點擊【建立簽名】,而後在彈出的窗口中輸入你的簽名的具體信息。
建立短信模板
除了使用標準模板,你也能夠本身編寫一個模板,爲了方便文章撰寫,這裏使用標準模板。
而後點擊提交,等待審覈就能夠了。
3. 編寫雲函數發送短信
首先,咱們建立一個新的雲函數,名爲 notifyAdmin
,意爲用於通知管理員的雲函數。
而後,選擇咱們剛剛建立的 notifyAdmin
雲函數,在函數上右擊,選擇【在終端中打開】,進入到控制檯,並輸入以下命令,安裝所需的短信 SDK。
npm install --save sms-node-sdk
index.js
,加入以下代碼:
// 雲函數入口文件const cloud = require('wx-server-sdk')const { SmsClient} = require('sms-node-sdk');
const AppID = 1400286810; // SDK AppID是1400開頭
// 短信應用SDK AppKey ,替換爲你本身的 AppKeyconst AppKey = 'xxxx';
// 須要發送短信的手機號碼const phoneNumber = '10000000';
// 短信模板ID,須要在短信應用中申請const templId = 476457;// 簽名,替換爲你本身申請的簽名const smsSign = '程序百曉生';
// 實例化smsClient
cloud.init()
// 雲函數入口函數exports.main = async (event, context) => { let orderId = event.orderId; let smsClient = new SmsClient({ AppID, AppKey }); return await smsClient.init({ action: 'SmsSingleSendTemplate', data: { nationCode: '86', phoneNumber, templId: templId, params: [orderId], sign: smsSign // 簽名參數未提供或者爲空時,會使用默認簽名發送短信 } })}
完成代碼的修改後,就能夠部署你的雲函數了,右鍵你的雲函數,選擇【上傳並部署雲函數:雲端安裝依賴】
4. 在小程序端觸發短信
let orderId = 'this is a orderId';wx.requestPayment({ success:res => { console.log("User Payment Success"); // 調用雲函數發送短信 wx.cloud.callFunction({ name:"notifyAdmin", data:{ orderId: orderId } }); }})
▌3、總結
更多精彩
點擊下方圖片便可閱讀
雲開發,不止於「快」
雲開發
Tencent CloudBase
點擊在看讓更多人發現精彩
本文分享自微信公衆號 - 騰訊云云開發(tcb2tcb)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。