微信小程序模板消息填坑,微信小程序

来源:未知 浏览 106次 时间 2021-06-17 16:10

 

一:模板消息

前段时间研究了下微信模板消息:服务通知(开发api:https://mp.weixin.qq.com/debug/wxadoc/dev/api/notice.html)

微信小程序模板消息填坑

form_id 表单提交场景下为 submit 事件带上的 formId; 
支付场景下为本次支付的 prepay_id

1.表单提交场景下(需在真机上运行)

微信小程序模板消息填坑

<formbindsubmit="formSubmit"report-submit='true'></form>

js:里面获取e.detail.

 

Page({

 

  formSubmit:function(e){

 

    console.log('form发生了submit事件软文如何写为本次支付的 prepay_id

1.表单提交场景下(需在真机上运行)

 

<formbindsubmit="formSubmit"report-submit='true'></form>

js:里面获取e.detail.

 

Page({

 

  formSubmit:function(e){

 

    console.log('form发生了submit事件携带数据为:', e.detail.value)

 

}

 

})

当小伙伴看到上面的 formId:"the formId is a mock one ",这是因为你在微信开发器上面运行的那就是要在真机上运行

2.支付场景下

 

a.$prepay_id = str_replace('prepay_id=','', $data['package']);

需要后端同学在调微信支付接口的时候获取package 里面的 prepay_id我是存储起来了然后我放在notify 支付成功里面的OK 完成

 

二:跳坑说明

分享者:苏桃子原文地址  一开始的时候下发模板消息是在微信吊起支付成功后触发此时发现模板消息有时好用偶尔不好用不好用的还是报错是 41028form_id不正确或者过期。问询了一些前辈才知道是存在网络延迟导致不起作用采用定时器这种发现循环调用模板消息在

调用成功后停止定时器。

给一个具体的例子:

 

var time = setInterval(function(){

tem();//定时发起模板消息请求校验

},5000)

 

function tem(){

  var l ='https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=ACCESS_TOKEN;

  var g = {   

touser: openId,   

  template_id: '申请的模板id', 

   page: '模板入口页面', 

   form_id: 本次支付的prepay_id, //只有在支付成功时 form_id 才有值

     data: {

 

"keyword1": {

"value":key1,

"color": "#4a4a4a"

},

"keyword2": {

"value": key2,

"color": "#9b9b9b"

},

"keyword3": {

"value": key3,

"color": "#9b9b9b"

},

"keyword4": {

"value": key4,

"color": "#9b9b9b"

},

"keyword5": {

"value": key5,

"color": "#172177"

},

},

emphasis_keyword: 'keyword1.DATA' //模板需要放大的关键词

}

 

wx.request({

url: l,  //

data: g, //模板数据

method: 'POST',

success: function (res) {

 

if (res.data.errcode == 0) {

console.log("sucess");

clearInterval(time);

}

console.log(res);

// wx.showToast({

// title: '订单支付成功',

// icon: 'success',

// duration: 1000

// })

},

fail: function (err) {

// fail

console.log("push err")

console.log(err);

// 测试

wx.showToast({

title: err.errmsg,//'系统繁忙'

icon: 'success',

duration: 1000

})

},

complete: function (res) {

console.log("tem-complete")

}

});

标签: 支付form模板id