Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >小程序 发送模板消息的功能实现

小程序 发送模板消息的功能实现

作者头像
泥豆芽儿 MT
发布于 2018-09-11 02:46:40
发布于 2018-09-11 02:46:40
5.8K00
代码可运行
举报
运行总次数:0
代码可运行

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1333459

☹. 背景

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
- 小程序开发的过程中,绝大多数会满足微信支付
- 那么,作为友好交互的体现,自然就会考虑到支付后的消息通知咯
- 所以,我的小程序项目也要求完成这个效果,so.分享一下自己的实现步骤,以方便道友们少踩点坑...
  • 微信消息通知 的区别:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1. 微信网页版、公众号的消息提醒
   要求用户必须 "关注商家公众号",才支持消息的接收
   并且还有个奇怪的毛病:如果近期内未与该公众号有所交流,依然收不到消息提醒
   再者,消息的样式需代码进行自定义(麻烦)
2. 微信小程序,可支持"服务通知"
   只需配置好自己的 "模板消息",通过获取用户的 "openid" 即可进行来自微信服务的消息
   通知的样式,可在小程序的管理后台进行选取,预览(人性化)
  • 此处参考京东购物的消息通知如下(也就是在下想要实现的效果):

❶ 前期准备

  • ①. 首先,微信小程序官方文档为我们提供了指导 — 【发送模板消息】 我们可以先对文档进行一遍 简单的浏览,以方便自己的流程理解,避免蒙头苍蝇乱撞
  • ②. 小程序给与了我们最方便的手动模板配置方式 我们可以先去 1(模板库)中选取自己需要的模板,自定义标题、排序 申请成功之后,进入 2(我的模板)中就可以看到自己能够使用的模板,我们后期进行代码编辑时,用到的就是那个模板ID

❷ 实现步骤

1. 小程序端的要求

语境:微信支付成功后,对用户发送一条"订单支付成功通知"的模板消息

  • 第一步:以我的代码实现为例,首先需要对我的 <form/> 组件进行需发模板消息的声明,即设置属性 report-submit="true"
  • 第二步:对应的 pages/cart/payment.js代码中,编写的提交代码,以及对 event参数打印的结果则为:

注意:截图部分只是为了,获取并保存我们需要的 formId

其实,后面的代码还可以有很多的逻辑处理,以我的代码逻辑为例:

我继续进行了表单数据的规范验证 -> wx.request 数据提交 -> 唤醒微信支付 -> 支付结果的回调处理

  • 第三步:request 调用发送消息通知的方法 以我的逻辑为例,是在执行完微信支付回调后,判断支付成功才进行调用的

此处,直接提供上述截图中 pages/cart/payment.js 所需要用到的两个核心方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 /**
   * 微信支付成功后的 消息模板的发送
   */
  sendTemplatePaySuccess: function() {
    var self = this;
    var postData = {
      sn: self.data.order_sn,
      form_id: self.data.formId
    };
    self.http_post('https://xxx.com/wx/sendTemplatePaySuccess', postData, (data) => {
      wx.navigateTo({
        url: '/pages/cart/results/index?status=1&type=pay&orderInfo=' + JSON.stringify(self.data.orderInfo),
      });
    })
  },

 /**
 * 封装 http 函数,默认‘GET’ 提交
 */
   http_post:function(toUrl, postData, httpCallBack) {
    wx.request({
      url:  toUrl,
      data: postData,
      method: 'POST', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
      header: {
        'content-type': 'application/x-www-form-urlencoded;charset=utf-8',
      },
      success: function (res) {
        //回调处理
        return typeof httpCallBack == "function" && httpCallBack(res.data);
      },
      fail: function (error) {
        console.log(error);
      }
    })
  },

2. 服务端代码配置

我对服务端的代码,整合集中在了一个文件中,可从附录中进行下载

  • 第一步:替换小程序配置信息
  • 第二步:修改方法 sendTemplatePaySuccess()
  • 提示: 1.此方法是对应于 pages/cart/payment.js 中的 Https://xxx.com/wx/sendTemplatePaySuccess,应该不会理解错吧! 2.一般的设计逻辑,是在用户注册、初次授权登录的时候就将其 openid写到数据库中,后期使用时可随时调用 3.如果前期没有写入数据库,也可以考虑直接授权获取,参考文章 【微信小程序Ⅴ [获取登录用户信息,重点openID(详解)】] 4.template_id 直接在小程序账号后台复制即可,但是请将 $rawPost['data']['keyword?']['value'] 顺序对应正确哦

❸ 运行测试

  • ①. 首先,要知道一点,不可以使用 微信开发者工具进行测试,不然会有如下报错:

可参考道友解释: 小程序 表单 formId 为 the formId is a mock one

  • ②. 其中,如果已经发送过一次模板消息,会有如下提示信息:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "status":0,"result":"sendTemplatePaySuccess Failed!",
    "data":
        {
            "errcode":41029,"errmsg":"form id used count reach limit hint: [9mUwja01342277]"
        }
}
  • ③. 使用真机测试,顺利运行的效果为:

❹ 源代码参考

  • 请对应代码进行正确配置哦 CSDN下载地址 >>>
  • 补充提示: 开发文章中有这样一句话:

个人觉得,只声明 report-subnmittrue 就能实现自己的业务; 举例:在一系列逻辑处理操作后,只需回调判断不同状态,再进行 formID 的获取也没问题 相对而言后者适应的语境,貌似太过局限,此处仅为个人看法而已!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年09月04日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
微信小程序发送模板消息
登录 https://mp.weixin.qq.com/ “功能”-“模板消息”-“模板库” 这里我们选择合适的模板,点"选用”。 回到"我的模板",这里会看到选用的模板,有相应的模板id。
孤烟
2020/09/27
3.4K0
微信小程序开发学习——小程序发送模板消息
微信小程序的消息推送简单的说就是发送一条微信通知给用户,用户点开消息可以查看消息内容,可以链接进入到小程序的指定页面。     微信小程序消息推送需要用户触发动作才能发送消息,比如用户提交订单、支付成功。一次只能发一条,当然可以通过某种方法发送多条,小的就不在这里赘述了。下面就介绍一下如何推送消息。 一、准备工作     首先,在微信公众平台开通消息推送功能,并添加消息模板。可以从模板库选择模板也可以创建一个模板,模板添加之后,模板ID我们接下来要用的。     发送模板消息需要用到accesstoken、formId和openID。accesstoken获取及更新可以看我的上一篇文章;formID就是消息模板ID,openID我们最好在获取用户信息或用户登录时储存到全局变量里。
KEVINGUO_CN
2020/03/17
2.5K0
微信小程序发送模版消息(事例)
鉴于目前网络上都还找不到小程序下发模板消息的相关资源,在仔细阅读了官方文档今天终于把小程序的模版消息给测通了,接下来介绍在不使用服务器的情况下,前端开发人员在本地怎么测试模板消息的发送。 1、在微信公
honey缘木鱼
2018/06/13
2.6K0
微信小程序模板消息详解
先放代码 wxml: <form name='pushMsgFm' report-submit bindsubmit='orderSign'> <view> 单号: 0</view> <view> 商家名称: 腾讯早餐店</view> <view>实付金额:66元</view> <view>物品名称:包子</view> <view>付款金额:68元</view> <view>付款时间: 2018年1月1日 </view> <button form-ty
李文杨
2018/03/14
2.7K0
微信小程序模板消息详解
[博客小程序]评论通知功能实现(一)——小程序发送模板消息的几种实现
准备的话就是先读下文档,了解下模板消息怎么发送和怎么接入的,然后到你的后台去选择你想要的消息模板,记录好对应的模板ID即可。
Bug生活2048
2019/04/25
1.1K0
[博客小程序]评论通知功能实现(一)——小程序发送模板消息的几种实现
微信小程序开发心得第二章:千里传音(模板消息)
今天分享一篇关于消息模板的简易教程。 老规矩先把官方的定义再讲一下,消息模板是基于微信的通知渠道,为我们开发者提供了触发模板消息的能力,以便实现服务的闭环和更好的用户体验。 发起消息模板是有限制条件的,必须用户本人在微信体系与小程序页面有交互行为后才能触发,只有两种情况允许。 第一种是用户在小程序完成支付的行为,可允许开发者向用户在7天内推送有限的模板消息,一次支付可发一条。 第二种是通过提交表单行为且表单需要声明为要发模板消息的,可以允许开发者向用户在7天内推送有限条数的模板消息,一次提交表单可发一条。
极乐君
2018/02/05
9331
微信小程序开发心得第二章:千里传音(模板消息)
微信小程序模板消息实现(PHP+ 小程序)
参考官方文档和部分资料,总结小程序模板消息推送以及相关注意事项,楼主踩过的坑,特来与大家分享。
ITer.996
2019/08/28
6.1K0
微信小程序模板消息实现(PHP+ 小程序)
小程序云函数实现发送模板消息
2.微信开发者工具中点击云开发,打开云开发控制台 选择云函数->新建云函数->输入名称(这里使用pay_success)->确定
薛定喵君
2019/11/05
1.4K0
微信小程序高级基础
微信小程序高级基础 微信小程序的注册和服务器配置: 小程序是什么呢?小程序是一种不需要下载安装就可以使用的应用,它实现了应用"触手可及"的梦想,用户扫一扫或者搜一下就可以打开应用,也体现了龙哥"用
达达前端
2019/07/04
1.4K0
『教程』如何突破微信小程序模板消息限制实现无限制主动推送
基于微信的通知渠道,微信小程序为开发者提供了可以高效触达用户的模板消息能力,在用户本人与小程序页面有交互行为后触发,通过微信聊天列表中的服务通知可快捷进入查看消息,点击查看详情还能跳转到下发消息的小程序的指定页面。
极乐君
2018/07/31
2.5K1
微信小程序消息通知-打卡考勤
标题图 微信小程序消息通知-打卡考勤 效果: 在这里插入图片描述 稍微改一下js就行,有不必要的错误,我就不改了,哈哈! index.js //index.js const app = getApp() // 填写微信小程序appid var appid = ''; // 填写微信小程序secret var secret = ''; Page({ // 页面数据 data: { access_token: '', openid: '', }, // 表单请求
达达前端
2019/07/04
2.4K0
你知道如何在小程序中推送模板消息?
前段时间剁手了 PS4,在浏览商店时,发现官方商店真的不好用,主要是网络原因,次要是页面设计。所以就想自己做一个游戏查询的小程序,可以关注某个游戏,然后在这个游戏打折的时候发送通知给用户。最后发现有个很大的问题是:小程序没法直接给用户推送消息(当时还不知道模板消息),服务号才能。然后就用邮箱实现了通知功能,但是邮箱的局限实在是太大了(各大免费邮箱每天的发件数都很小,自己搭建的邮件服务器虽然没有发件限制,但是大概率会被放到垃圾箱)。
用户2038589
2019/07/17
1.8K0
微信小程序推送模板消息
~~原来我用这个玩意用的老疯狂了。天天给我喜欢的女孩推送,我喜欢你。哈哈哈 比如xxx是女神了。哈哈哈 确实做一个程序员确实能给女朋友很多浪漫的地方。为了保护我家女神隐私哈哈哈,我就不上图了。 等你们学会可以自己给女朋友退送表白信息哦。。~~
猿码优创
2019/07/28
9.9K2
[博客小程序]评论通知功能实现(二)——实战过程中的坑
当用户在小程序内发生过提交表单行为且该表单声明为要发模板消息的,开发者需要向用户提供服务时,可允许开发者向用户在7天内推送有限条数的模板消息(1次提交表单可下发1条,多次提交下发条数独立,相互不影响)
Bug生活2048
2019/04/25
7950
[博客小程序]评论通知功能实现(二)——实战过程中的坑
基于Taro的微信小程序模板消息-获取formId功能模块封装实践
在微信小程序中,小程序提供了一种能力-模板消息,官方文档是这样描述的:“基于微信的通知渠道,我们为开发者提供了可以高效触达用户的模板消息能力,以便实现服务的闭环并提供更佳的体验。”
胡哥有话说
2019/07/25
2K0
基于Taro的微信小程序模板消息-获取formId功能模块封装实践
java发送微信小程序模板消息
注意在访问的时候需要将关键字替换成自己的信息,比如APPID、APPSECRET、ACCESS_TOKEN 等。
请叫我师哥
2021/12/31
2.3K0
基于 Spring Boot 和 UniApp 实现微信小程序消息通知
在现代移动应用开发中,消息通知功能是提升用户体验和应用交互性的重要手段。微信小程序提供了丰富的消息推送能力,而 UniApp 作为一款跨平台的前端开发框架,能够方便地与微信小程序集成。本文将详细介绍如何基于 Spring Boot 实现 UniApp 微信小程序的消息通知功能,包括后端服务的搭建、微信小程序的配置以及前端页面的实现。我们将通过一个实际案例,展示如何推送订单状态变更通知。
全干程序员demo
2025/04/18
5750
微信小程序的模板消息与小程序订阅消息
小程序订阅消息 功能介绍 消息能力是小程序能力中的重要组成,我们为开发者提供了订阅消息能力,以便实现服务的闭环和更优的体验。
达达前端
2019/12/16
4.7K0
微信小程序的模板消息与小程序订阅消息
小程序-云开发-实现微信云支付功能
对于支付下单在小程序当中是一个非常重要的功能,在未接入云支付之前,想要实现一个支付下单的功能,借助微信官方提供的wx.requestPayment()这个接口,发起微信支付
itclanCoder
2020/10/28
11.1K1
小程序-云开发-实现微信云支付功能
借助云开发实现小程序模版消息推送(含源码)
上一节给大家将了借助云开发实现小程序支付功能,那么我们就要想了,能不能借助云开发实现小程序消息推送功能呢? 还别说,云开发还真能实现推送的功能。
编程小石头
2020/10/22
1.6K0
借助云开发实现小程序模版消息推送(含源码)
推荐阅读
相关推荐
微信小程序发送模板消息
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档