微信小程式傳送模版訊息獲取 formID 方法
阿新 • • 發佈:2018-12-31
想要傳送模板訊息,首先需要獲取到使用者的 formId ,
因為用到獲取使用者 formId 的請求很大可能會複用,所以我這裡把他放到app.js 裡面封裝起來,方便呼叫。
//app.js var util = require('utils/util.js'); App({ onLaunch: function () { var that = this; that.http_session = ''; return that.promise = new Promise(function (resolve) { that.httpUrl = 'http://192.168.199.147:7051 wx.login({ success: function (res) { var data = { code: res.code } if (res.code) { //發起網路請求 var url = that.httpUrl + '/user/login.do'; util.request(url, 'POST', data, '', function (res) { console.log(res); that.http_session = res.data.body; resolve(that.http_session); }, function (err) { console.log(err); }) } else { console.log('登入失敗!' + res.errMsg) } } }); }) }, // 提交formid form_id_bg: function (formId) { console.log('form_id_bg執行了') let url = this.httpUrl + '/v1/formid/saveFormid.do'; this.promise.then(function (http_session) { let data = { session: http_session, // minipid: '10000', formId: formId } util.request(url, 'post', data, '', function (res) { }) }) } })
程式碼講解: 封裝了 form_id_bg 函式,使用 promise 確保先獲取到了 session 。接收傳入的引數為 formId。
呼叫方法:
<!--pages/home/home.wxml--> <form bindsubmit="form_id_bg" report-submit='true'> <view class='attention_title'>使用者須知</view> <view class="attention_t_block"> <view class='attention_txt'>1.使用者可以交納任意金額的寬頻費。</view> <view class='attention_txt'>2.此業務不適用於包年和融合套餐的使用者。</view> <view class='attention_txt'>3.如遇到其他問題,請聯絡線上客服解決。</view> </view> <button class='attention_open_txt' formType="submit">確定</button> </form>
// pages/home/home.js
var app = getApp();
Page({
/**
* 頁面的初始資料
*/
data: {
},
// 提交formid
form_id_bg: function (e) {
app.form_id_bg(e.detail.formId);
}
})
呼叫程式碼講解:
在wxml 頁面 通過表單提交獲取到傳送模板訊息所用的使用者的formId, 然後在js 的提交表單事件,把formId 傳給 app.js 封裝的formId 傳送給後端存庫的介面。