小程序进阶-用户消息通知

这篇具有很好参考价值的文章主要介绍了小程序进阶-用户消息通知。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介

在使用或开发小程序过程中,我们会发现消息通知是非常重要的一个环节。我把小程序消息通知分为“小程序内通知”和“微信内通知”两种。小程序内通知包含各种步骤提示、错误提示以及各种实时消息通知,这些通知只有在用户进入小程序才会看到。微信内通知则是跳出小程序的框架在微信消息列表完成消息提示。例如,我么使用某一个商品小程序下单的时候,当物流到了会通过“服务通知”提示我们“请尽快提取获取~”。下面我主要来介绍一下小程序“微信内通知”如何实现?

实现步骤

(一)接入微信小程序消息推送服务

微信官方文档为我们介绍了三种推送方式:

  • 开发者服务器接收消息推送
  • 云函数接收消息推送
  • 微信云托管服务接收消息推送

这里我着重介绍一下开发者服务器接收消息推送方式

  1. 登录小程序后台后,在「开发」-「开发设置」-「消息推送」中,管理员扫码启用消息服务,填写服务器地址(URL)、令牌(Token) 和消息加密密钥(EncodingAESKey)等信息。注意:服务器地址URL须为验证服务器的完整地址。
    小程序进阶-用户消息通知
  2. 验证消息的确来自微信服务器
    checkSignature.php
    //文件位置
    <?php
    
    function checkSignature()
    {
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];
    
        $token = "*****"; //对应上图中设置的token
        $tmpArr = array($token, $timestamp, $nonce);
        sort($tmpArr, SORT_STRING);
        $tmpStr = implode( $tmpArr );
        $tmpStr = sha1( $tmpStr );
    
        if ($tmpStr == $signature ) {
            return true;
        } else {
            return false;
        }
    }
    $echostr = $_GET["echostr"];
    if (checkSignature()) {
        echo $echostr;
    }
    ?>
    
  3. 验证URL有效性成功后即接入生效,成为开发者。
(二)添加消息模板

登录小程序后台后,在「功能」-「订阅消息」-「公共模板库」中选择你需要的模板如下:小程序进阶-用户消息通知
或者调用官方API组合模板并添加至帐号下的个人模板库

<?php
//模拟post请求
//模拟post请求
function curlPost($url,$data)
{
    $ch = curl_init();
    $params[CURLOPT_URL] = $url;    //请求url地址
    $params[CURLOPT_HEADER] = FALSE; //是否返回响应头信息
    $params[CURLOPT_SSL_VERIFYPEER] = false;
    $params[CURLOPT_SSL_VERIFYHOST] = false;
    $params[CURLOPT_RETURNTRANSFER] = true; //是否将结果返回
    //启用时会发送一个常规的POST请求,类型为:application/x-www-form-urlencoded,就像表单提交的一样。
    $params[CURLOPT_POST] = false;
    $params[CURLOPT_HTTPHEADER] = array(
        'Content-Type: application/json; charset=utf-8');
    $params[CURLOPT_POSTFIELDS] = $data;
    curl_setopt_array($ch, $params); //传入curl参数
    $content = curl_exec($ch); //执行
    curl_close($ch); //关闭连接
    return $content;
}

function send($config) {
    $token ="";		//小程序接口调用凭证
    $kids = [1,2,3,4];	//开发者自行组合好的模板关键词列表
    $data = array("kidList"=>$kids);
    //tid:模板标题 id,sceneDesc:服务场景描述
    $result=curlPost("https://api.weixin.qq.com/wxaapi/newtmpl/addtemplate?access_token=$token&tid=30753&sceneDesc=通知简介",json_encode($data));
    print_r($result);
}

send();


?>
(三)获取模板 ID,获取下发权限

小程序进阶-用户消息通知
wx.requestSubscribeMessage(Object object),注意:需要用户点击,即由bindtap触发。

//订阅消息问询
subscribe: function() {
	wx.requestSubscribeMessage({
	  tmplIds: [''],	//需要订阅的消息模板的id的集合,一次调用最多可订阅3条消息
	  success (res) { }
	})
}
(四)后台服务调用接口下发订阅消息

https调用方式:subscribeMessage.send

<?php
//模拟post请求
function curlPost($url,$data)
{
    $ch = curl_init();
    $params[CURLOPT_URL] = $url;    //请求url地址
    $params[CURLOPT_HEADER] = FALSE; //是否返回响应头信息
    $params[CURLOPT_SSL_VERIFYPEER] = false;
    $params[CURLOPT_SSL_VERIFYHOST] = false;
    $params[CURLOPT_RETURNTRANSFER] = true; //是否将结果返回
    $params[CURLOPT_POST] = true;
    $params[CURLOPT_POSTFIELDS] = $data;
    curl_setopt_array($ch, $params); //传入curl参数
    $content = curl_exec($ch); //执行
    curl_close($ch); //关闭连接
    return $content;
}

function send($config) {
    $token ="";		//接口调用凭证
    //消息字段值
    $params = array("amount3"=>array("value"=>"11.0"),"amount4"=>array("value"=>"12.2"),"character_string6"=>array("value"=>"test123") ,"amount5"=>array("value"=>"13.0"),"thing8"=>array("value"=>"用户名"));
    $data = array("touser"=>"接收者(用户)的 openid",
    "template_id"=>"所需下发的订阅模板id",
  	"page"=>"index",//点击模板卡片后的跳转页面,仅限本小程序内的页面
  	"miniprogram_state"=>"trial",//跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
  	"lang"=>"zh_CN",	//进入小程序查看”的语言类型
  	"data"=>$news);		//模板内容
    $result=curlPost("https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=$token",json_encode($data));
    print_r($result);
}

$config = selectOne2($conn2);
send($config);
?>

云调用方式:openapi.subscribeMessage.send文章来源地址https://www.toymoban.com/news/detail-483787.html

const cloud = require('wx-server-sdk')
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV,
})
exports.main = async (event, context) => {
  try {
    const result = await cloud.openapi.subscribeMessage.send({
        "touser": 'OPENID',
        "page": 'index',
        "lang": 'zh_CN',
        "data": {
          "number01": {
            "value": '339208499'
          },
          "date01": {
            "value": '2015年01月05日'
          },
          "site01": {
            "value": 'TIT创意园'
          },
          "site02": {
            "value": '广州市新港中路397号'
          }
        },
        "templateId": 'TEMPLATE_ID',
        "miniprogramState": 'developer'
      })
    return result
  } catch (err) {
    return err
  }
}

到了这里,关于小程序进阶-用户消息通知的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp - 微信小程序平台模板消息订阅功能,唤起订阅模板消息弹框、微信公众号向用户发送 “服务通知“ 实现全过程示例代码,支持一次性订阅与永久性订阅(注释详细,一键复制开箱即用)

    本博客实现了uniapp微信小程序端,详细实现公众号订阅通知模板消息完整示例源码,一次性订阅与永久订阅均可,注释详细新手一看就懂! 效果如图所示,uniapp编译的微信小程序内点击按钮后,唤起模板消息订阅申请弹框,后续微信内会收到通知。

    2024年02月13日
    浏览(67)
  • java发送公众号/服务通知模板消息到指定用户(完整流程|亲测可用)

    准备: 获取当前微信小程序appId(小程序appId)获取当前小程序的秘钥secret 新建模板消息 选用后勾选需要的字段并提交 一次订阅: 指用户订阅一次,服务号可不限时间地下发一条对应的订阅通知; 长期订阅: 指用户订阅一次,服务号可长期多次下发通知,长期订阅通知仅

    2024年02月10日
    浏览(43)
  • Redis限流实践:实现用户消息推送每天最多通知2次的功能

    🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 🏆本文已收录于PHP专栏:PHP进阶实战教程。 🏆另有专栏PHP入门基础教程,

    2024年02月09日
    浏览(37)
  • 微信小程序云开发通过服务号给用户推送模板消息

    主要参考下面两个文章 1、云函数接收公众号消息推送 | 微信开放社区 ​​​​​​2、微信小程序通过公众号(服务号)推送通知或提醒步骤及代码(一,获取推送前所需信息)_微信小程序推送服务通知_庆登登登的博客-CSDN博客  一些基本的概念就不讲了,这里主要讲下步骤和我

    2024年02月09日
    浏览(53)
  • SpringBoot整合调用微信模板方法实现微信公众号消息通知推送,Java实现微信公众号给关注用户推送自定义消息通知(手把手从0到1)

    目录 概述 公众号给关注用户推送自定义消息 一、申请公众号模板消息 二、获取安装“web开发者工具” 三、微信网页授权说明 四、微信网页授权 - 流程时序图 五、HTTPClient 实现微信公众号消息推送与发布(四步走) 六、通过weixin-java-mp SDK实现微信公众号消息推送与发布(七

    2024年02月10日
    浏览(45)
  • 微信小程序——订阅通知消息

    1.在微信公众平台的订阅消息页面设置模板消息 2.后端发送订阅消息需要得到用户的唯一id 通过   wx.login() 获取微信的唯一配置 code (每一个微信号只有一个code) 通过接口把获取到的 code 发送给后端 获取openid   3.在登录页面点击登录按钮的时候让用户同意接收订阅消息 使用

    2024年02月13日
    浏览(53)
  • 微信小程序服务通知(订阅消息)定时推送消息功能

    首先先说项目需求:向预约参观的用户提前一天晚上8点推送消息。小程序端主要用到的 API 是我是小程序用到的API。以及服务端用到的 API :我是服务端用到的API。 1. 开通订阅消息功能 (1)、 首先需要在小程序管理后台开通订阅消息功能。没开通前如下图所示: (2)、开通之

    2024年02月08日
    浏览(80)
  • 微信小程序——服务通知,发送订阅消息

    1 小程序开通订阅消息 2 postApi测试效果 这里有个需要特别注意的点,我们要给用户发送消息,就必须引导用户授权,如下 因为用户不点击允许,你是没有办法给用户推送消息的。每一次授权只允许发送一条消息,所以如果你想尽量多的发送消息,就得尽量多的引导用户授权

    2024年02月11日
    浏览(73)
  • 【小程序】微信小程序关联公众号(服务号)推送通知消息

    最近开发的一个小程序项目需要通过服务号来推送通知。但是在最开始开发小程序的时候并没有考虑到这个功能。 预备知识 : 小程序openid:小程序用户的唯一id 公众号openid:公众号用户的唯一id unionid:同一用户,对同一个微信开放平台下的不同应用,unionid是相同的 准备

    2024年01月18日
    浏览(45)
  • 微信小程序添加全局 socket 并接收消息通知

    最近小程序中有使用到socket,来建立长连接,实现消息通知。总结一下实现思路。 首先,在app.js中初始化socket,并处理消息,添加心跳检测。 然后再接收到消息时添加回调方法: 然后再需要进行通知处理的页面添加如下代码: 最后,小程序的socket通知处理就完成了,欢迎各

    2024年02月16日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包