微信小程序开发交流qq群 173683895
承接微信小程序开发。扫码加微信。
想要发送模板消息,首先需要获取到用户的 formId ,
因为用到获取用户 formId 的请求很大可能会复用,所以我这里把他放到app.js 里面封装起来,方便调用。
请看代码:util.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 发送给后端存库的接口。