第一步 創建模板
其中keyword與小程序一一對應 第二步 提交訂單時帶上formIdvar formId = e.detail.formId; order.set('formId', formId); order.save() 相應的頁面文件 <form report-submit="true" bindsubmit="confirmOrder"> <button class="submit" form-type="submit" type="primary">提交訂單</button> </form> 后端對接下發消息// 模板消息 router.post('/deliver', function(req, res, next) { // 接收orderId參數 var orderId = req.body.orderId; // 通過orderId查詢該訂單信息 var query = new DB.Query('Order'); query.include('user'); query.include('address'); query.get(orderId).then(order => { order.set('status', 2); order.save().then(o => { console.log(o) }, err => { console.log(err) }); // 引入request庫,用于網絡請求交互 const request = require('request'); var url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + process.env.WEIXIN_APPID + "&secret=" + process.env.WEIXIN_PAY_SECRET; // 第一步,請求access_token request(url, function(err, response, body) { // 微信返回結果 var body = JSON.parse(body); // 取出access_token,用于向微信請求下發模板消息的憑證 var access_token = body.access_token; // 用戶openId var openid = order.get('user').get('authData').lc_weapp.openid; // 模板ID,由小程序后臺生成后復制所得 var template_id = 'ywrubQbvKuw--itAeNHvEPBRqA53yJy2kAXNsAJ5fiw'; var form_id = order.get('formId'); // 第二步,請求發送模板消息 request({ url: 'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=' + access_token, method: "POST", json: true, body: { touser: openid, template_id: template_id, form_id: form_id, data: { "keyword1": { "value": '快遞公司', "color": "#173177" }, "keyword2": { "value": '快遞單號', "color": "#173177" }, "keyword3": { "value": order.get('address').get('detail'), "color": "#173177" } } } }, function(err, response, body) { res.send(body); console.log(body); }); }); }); }); 第一步,通過orderId查詢該訂單信息Order表自身存有user信息(即openId),formId,所以需要把Order取出 第二步,請求access_tokenaccess_token就是與微信交互的憑證,有效期2小時,由于一天有請求次數的限制,可以存在數據庫里以復用,在2小時期間可多數使用。 第三步,請求發送模板消息參數一共必填 的是4個,touser,template_id,form_id,data。分別對應小程序用戶的openid,創建的模板ID,form表單id,以及模板正文內容。 |