微信小程序> 微信小程序(模板消息)

微信小程序(模板消息)

浏览量:3568 时间: 来源:sayid760

formid用过一次,立即失效,如果formid不使用,7天内天可以用

步骤:
1、获取用户openid (api)
2、获取access_token(api)
3、提交时获取formid
4、发送模板消息 (api)

小程序代码:

// index.wxml<form report-submit bindsubmit="formSubmit">  <label>  选择日期:  <picker mode="date" value="{{date}}" start="2019-09-01" end="2022-09-01" bindchange="bindDateChange">    <view class="picker">      当前选择: {{date}}    </view>  </picker>  </label>  <label>商品名称:<input style="border:1px solid red" type="text" name="name" /></label>  {{formId}}  <button form-type='submit'>提交</button></form>
// app.jslet AppID = 'wx8ee7bbc68ab9eba4'let AppSecret = '0c3ed148008d18401b5531fdfae8081a'App({  onLaunch: function () {    let _that = this      wx.login({        success: function (res) {        // 登录时获取code可以换取openid和session_key          let code = res.code          wx.request({            url: 'https://cff.mynatapp.cc/api/getOpenid',            method: 'POST',            data: {              code: res.code            },            success(res) {              let { session_key, openid, access_token } = res.data.data              _that.globalData.session_key = session_key,              _that.globalData.openid = openid,              _that.globalData.access_token = access_token              wx.setStorageSync('openid', openid)            }          })        }      })  },  globalData: {    openid: null,    session_key: null,    access_token: null  }})
//index.js//获取应用实例const app = getApp()Page({  data: {    date:'2019-09-10',    formId:null,    obj:null,    openid: null,    session_key: null,    access_token: null  },  bindDateChange:function(e){    this.setData({      date: e.detail.value    })  },  formSubmit:function(e){    wx.request({      url: 'https://cff.mynatapp.cc/api/sendMessage',      method: 'POST',      data: {        access_token: app.globalData.access_token,        openid: app.globalData.openid,        formId: e.detail.formId  // 点击按钮获取formId      },      header: {        'content-type': 'application/json' // 默认值      },      success(res) {        console.log(res)      }    })  }})

nodejs(koa2)代码:

//  index.jsconst router = require('koa-router')()const request  = require('superagent')router.prefix('/api/')let AppID = 'wx8ee7bbc68ab9eba4'let AppSecret = '0c3ed148008d18401b5531fdfae8081a'router.post('/getOpenid',async (ctx, next) => {  let code = ctx.request.body.code  // 1、获取openid  let aUrl=`https://api.weixin.qq.com/sns/jscode2session?appid=${AppID}&secret=${AppSecret}&js_code=${code}&grant_type=authorization_code`  let aRes = await request.get(aUrl)  // 2、获取access_token  let bUrl=`https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${AppID}&secret=${AppSecret}`  let bRes = await request.get(bUrl)  let { session_key, openid} = JSON.parse(aRes.text)  let { access_token , expires_in } = JSON.parse(bRes.text)  ctx.body = {     code: '200',     data:{      session_key,      openid,      access_token,      expires_in    },    msg: '操作成功'  }})router.post('/sendMessage', async (ctx, next) => {  let access_token = ctx.request.body.access_token  let openid = ctx.request.body.openid  let formId = ctx.request.body.formId  console.log(ctx.request.body)  let requestData ={    "touser": openid,    "template_id": 'hfMGUjT-OOOD0PKpud6UD7uDA9vEx1Fz2_Fp0g7KWRk',    "page": "index",    "form_id": formId,    "data": {        "keyword1": {            "value": "喵眼电影院"        },        "keyword2": {            "value": "2019年10月19日 12:30"        },        "keyword3": {            "value": "广州市海珠区新港中路397号"        } ,        "keyword4": {            "value": "50元"        },        "keyword5": {            "value": "取票通知成功,闪开,我要开始装逼了"        }    },    "emphasis_keyword": "keyword1.DATA"  }// 4、发送模板消息  let res = await request        .post(`https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=${access_token}`)        .send(requestData)        .set('Accept', 'application/json')      //  console.log(res)  ctx.body = {     code: '200',     data: null,     msg: '操作成功'  }})module.exports = router

遇到的坑:
1、手机预览,请求数据必须用https
小程序

2、formid用完就失效,如果多次使用,可以收集formid保存到数据库
参考

收集formid

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

最新资讯

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎