一、准备

需要在小程序的订阅消息中申请订阅消息的模板,

模板申请完成后(申请模板和模板排序简单,省略),后面用到的只有模板id。

二、发起

模板id申请好了,怎么发起呢?
先看下官方发起文档
然后在对照这看下示例:
注意:发起模板消息,一次最多只可以发起三个。(这里我介绍 “支付成功通知” ,原理一样)
为了后续有部分页面的使用,把所有的模板id写在了APP.JS方便调取
APP.JS:

  App({//全局变量globalData: {pushReservationTmplIds: {zhifu_success: '对应的模板id',//支付成功通知order_confirm: '对应的模板id',jine_tx: '对应的模板id'}},

发起页面:(注意!2.8.2 版本开始,用户发生点击行为或者发起支付回调后,才可以调起订阅消息界面)

<text wx:if="{{shoppingAddAct=='order'}}" bindtap="onShoppingAdd" data-act='ok' class='anniu'>立即购买</text>
onShoppingAddCallback: function (e) {var that = this;
var shoppingAddAct = event.currentTarget.dataset.act;if(shoppingAddAct== "ok"){var tmplIds = app.globalData.pushReservationTmplIds;//获取订阅模板idif (wx.requestSubscribeMessage) {//订阅消息有版本限制,先判断下版本wx.requestSubscribeMessage({tmplIds: [tmplIds.zhifu_success],//绑定模板idsuccess(res) {//成功时console.log(111)},fail(res) {//失败时console.log(0)},});} else {wx.showToast({title: '请更新您微信版本,来获取订阅消息功能',icon: 'none'});}//这里要重点说下,发起订阅消息的页面必须是支付的前一个页面。比如说A跳转到B,B是支付页面,那么发起要写在A页面。
wx.navigateTo({//跳转页面,这个是发起支付的页面url: '../../shopping/shopping-order/shopping-order?id=' + goUrls//这里微信返回后端的文件自己定义,处理数据的PHP文件名为shop-order.php
})
}

三、PHP处理数据
在处理之前呢,需要做模板消息发送前的准备,
整体的思路就是,当前的模板消息,通过官方给的链接反馈到微信,和支付接口差不多
!!创建订阅消息数组

$wxapp_template = array('open' => true,//ture是开启,false关闭'template_id' => array('zhifu_success' => "对应的模板id",  //【支付成功提醒】[支付成功](订单编号,下单时间,支付时间,订单金额,订单说明)'order_confirm' => "对应的模板id",  //【订单确认收货提醒】[订单确认收货](订单编号,商户名称,订单状态,确认收货时间)'jine_tx' => "对应的模板id",       //【提现审核通知】[账户余额提现申请结果](提现金额,提现时间、提现状态、备注)'aaabbbccc' => ""    //占位置的[没用])
);

!!创建发起链接函数
链接是官方链接

//curl发送post数据
function curl_post($url , $data=array()){$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);curl_setopt($ch, CURLOPT_POST, 1);// POST数据    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);// 把post的变量加上$output = curl_exec($ch);curl_close($ch);return $output;
}//发送订阅消息(一次性)
function send_template($template){$url= "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" . access_token() . "";$res = curl_post($url,urldecode($template));return $res;
}

access_token值获取参考微信小程序文档

!!数据处理
当支付成功后执行下面的代码

//整合模板数据
if(formip()!="127.0.0.1" && $wxapp_template["open"] && $wxapp_template["template_id"]["zhifu_success"] && $rm["WXopenid"]){//判断当前订阅消息是否开启,支付成功通知的模板id是否为空,当前微信用户的openid是否为空。$adminContent = "可在我的-我的订单中查看订单详情!";$pageUrl = "pages/member/member";//这个是指定模板消息的进入页面$template = array('touser'=>''.$rm["WXopenid"].'',    //用户openid'template_id'=>''.$wxapp_template["template_id"]["zhifu_success"].'',  //在公众号下配置的模板id'page'=>''.$pageUrl.'',  //点击模板消息会跳转的链接'data'=>array(//下面的character_string1,date5,date7,amount2。不是唯一的。我会在最后截图说明'character_string1'=>array('value'=>urlencode(''.$rsDG["danhao"].'')),   //订单号'date5'=>array('value'=>urlencode(''.$rsDG["adddate"].'')),   //下单时间'date7'=>array('value'=>urlencode(''.$formdate.'')),   //支付时间'amount2'=>array('value'=>urlencode(''.$ShopJine.'')),//订单金额));//登记日志$logStr = "【支付成功提醒-提交数据】【".$rm["name"]."】:\r\n".json_encode($template, true);log_result($logStr,"log_wxmp",date("Ymd")."_template.txt");//发送模板信息$template = json_encode($template);$res = send_template($template);     //登记日志$logStr = "【支付成功提醒-反馈结果】【".$rm["name"]."】:\r\n".json_encode($res, true);log_result($logStr,"log_wxmp",date("Ymd")."_template.txt");//更新数据,记录已发送$formIdNum = $rsDG["formIdNum"] + 1;$sqlEdit="update shop_order set formIdNum='{$formIdNum}' where id='{$rsDG["id"]}'";$resultEdit = mysqli_query($conn,$sqlEdit);
}


上面说的character_string1,date5,date7,amount2不唯一,是在模板详情中查看

还有一个,在使用开发者工具调试时,注意调试库的基础版本哦,要不然是不会发起的。

微信小程序之订阅消息之PHP。相关推荐

  1. 微信小程序之订阅消息实现

    微信小程序基于微信用户群体,以轻量级无需下载的优势,取代了众多笨重的APP. 而微信小程序的订阅消息,是开发者常用的功能,适用于小程序功能推广,提高用户粘性. 这里我的权限只能使用一次订阅消息,以一次 ...

  2. 微信小程序之订阅消息推送

    目录 1.开通订阅消息 2.请求用户授权 2.1.wx.requestSubscribeMessage(Object object) 2.2.wx.requestSubscribeDeviceMess ...

  3. 微信小程序-一次性订阅消息推送

    前置条件: 1.登录微信公众号平台 完善小程序信息,小程序类目. 2.配置自己的消息模板或者使用公共的消息模板. 3.存在正确的openid. 执行步骤: 1.获取已配置好的模板id 2.获取订阅消息 ...

  4. 微信小程序清除订阅消息授权数据

    问题描述 在做小程序订阅消息开发的过程中发现,如果是长期订阅消息的类型,一旦用户授权后,后面就不会再弹出申请改订阅消息的授权弹窗,这对于开发过程中是很不方便的 发现如果是在模拟器上调试,是可以通过清除 ...

  5. 微信小程序实现订阅消息功能

    * 源码已经上传到资源处,需要的话点击跳转下载 |  源码下载 小程序中的订阅内容在日常中大家都会使用到,一般在支付的时候,会收到支持成功的消息,里面有一些基础信息花费多少以及是使用在什么地方,订阅消 ...

  6. 微信小程序授权订阅消息判断用户取消或允许

    wx.requestSubscribeMessage({tmplIds: ["brWVvPuoLPI9_i1qo_37LPVLK2jDyTGLuGqLK9Ur9PA"],succe ...

  7. php+实现群发微信模板消息_使用php实现微信小程序发送模板消息(附代码)

    本篇文章给大家带来的内容是关于使用php实现微信小程序发送模板消息(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 本章将会简单说一下微信小程序的模板消息发送,相对来说比较简 ...

  8. 微信小程序客服消息(带流程图)

    微信小程序客服消息 功能介绍 调用客服消息接口发送客服消息 填写消息推送配置 网页版客服工具与移动端小程序客服工具 使用说明(后台接入消息服务) 一.在页面使用客服消息 二.后台接入消息服务 三.接收 ...

  9. 微信小程序发送模板消息踩的坑

    在微信的微信小程序中,微信提供了和微信服务号相同的模板消息功能. 但是,虽然都是发送模板消息,小程序和服务号的模板消息的使用还是有差别的. 对于微信服务号的模板消息只要通过查看文档就能够知道我们使用模 ...

最新文章

  1. Boost之timer库
  2. 启明云端分享| ESP32-C3智能写字板应用解决方案
  3. golang select default continue_Go并发(四):select篇
  4. poll和死锁_计算机基础知识
  5. java毕业设计选题之《校园管理、教育教学类》
  6. UNIX环境高级编程之第5章:标准I/O库-习题
  7. DWM1000DISCOVERY开发板简介
  8. Springboot配置suffix指定mvc视图的后缀
  9. Set和Map数据结构。
  10. 递归求解问题hdu2044一只小蜜蜂...
  11. 知识图谱中三元组抽取
  12. Unity5.联机笔记
  13. MCU多系统服务器与云平台,MCU多系统服务器与云平台
  14. 常用的时间复杂度所耗费的时间由小到大
  15. 2023电工杯数学建模A题思路模型代码
  16. (自学)sklearn决策树基础知识|解决centos7.8 graphviz报错不能画图的问题
  17. Jenkin前端项目部署----远程服务
  18. 智慧医院信息系统集成平台建设方案
  19. 真•业界第一个性能统计分析框架 -- Hiper
  20. Bia布刷题日记 2022/2/16

热门文章

  1. Nim 游戏和 SG 函数
  2. 钛媒体乌镇咖荟 | 这场对话把“元宇宙”说透了:AI、区块链、5G技术将如何碰撞...
  3. STM32单片机---外部中断
  4. java分布式免费开源搜索引擎 Elasticsearch 详细学习笔记
  5. PaddlePaddle tutorial Ⅰ——Multiple linear regression
  6. 【移动安全实战篇】————3、Android应用程序破解入门
  7. Apple pay 苹果支付
  8. 深圳可能是理解中国数字城市建设的窗口
  9. css权重是什么?css权重的介绍
  10. Ardupilot移植经验分享(2)