1. 程式人生 > >微信小程式傳送模版訊息獲取 formID 方法

微信小程式傳送模版訊息獲取 formID 方法

想要傳送模板訊息,首先需要獲取到使用者的 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 傳送給後端存庫的介面。