微信小程序订阅号

人在家中坐,班从天上来

一直以来,微信Api一直很强势。这次也不例外。

在这里插入图片描述
既然模板消息不能使用了,那只能加班改为订阅消息。

一、微信公众平台部分

1.1 要想使用微信订阅号功能,首先你要在微信公众平台申请开启订阅号功能。
在这里插入图片描述
1.2 开通成功后,添加订阅模板。这里的模板id是用来推送消息的。
在这里插入图片描述
模板添加完成以后,微信公众平台的操作就已经完成了。

二、前端部分

微信订阅号的前端部分是很简单的,只需要用户也必须用户触发点击操作以后,调用一个接口就行了
在这里插入图片描述
wxml

 <view class="reservation-btn" bindtap="reservationBtnClik">立即预订</view>

js

 //预定
  reservationBtnClik(){
    let that=this;
    wx.requestSubscribeMessage({
      tmplIds: ['ra8YQ4iPXXUH-QyEo7qQAJTCg1p4qCwCtoD9PxgVR2Q'],
      success(res) {
        console.log(res);
        if (res.errMsg =="requestSubscribeMessage:ok"){
          that.reservationBtnClik1();
        }
     
      },
      fail(err) {
        console.log(err);
      }
    })
  },

至此,前端部分已经完成。不过这里需要注意的是,一次点击最多有三个模板id
在这里插入图片描述

后台

后台和模板消息大体一样

  //测试订阅号消息
            if($type == 'subscribeMessage'){
                $main_data = [
                    'character_string1' => ['value' => 'r123456'],
                    'thing2' => ['value' => 'r123456'],
                    'name3' => ['value' => '十个以内的纯汉字'],
                    'number5' => ['value' => '110'],
                    'thing6' => ['value' => 'r123456']
                ];
                $url = 'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token='.$access_token;
                $data = array(
                    'touser' => $userModel->getOpenid(),
                    'template_id' =>'ra8YQ4iPXXUH-QyEo7qQAJTCg1p4qCwCtoD9PxgVR2Q',
                    'page' => 'pages/orderDetail/orderDetail?order_no='.$order_info['order_no'],
                    'data' => $main_data
                );
            }

            $content = json_encode($data, JSON_UNESCAPED_UNICODE);
            log_info('请求链接为:'.$url);
            log_info('请求参数为:'.$content);
            $res = _curl_post($url, $content);

注意:这里比较坑的是,模板消息一定要严格按照微信公众平台要求的字段的类型填写。否则就是47003
例如character_string1就代表,你只能填写数字、字母、符号;不能填写汉字。
在这里插入图片描述

在这里插入图片描述

此外,还需要特别注意的是。和模板消息不同的是,微信订阅号消息用户虽然点击同意一次,但是可以多次推送。不像模板消息中的formid一旦使用就不能再次推送了。所以后台一定要做好推送的限制,避免频繁重复推送。

### 微信小程序实现订阅消息功能 #### 启用并配置消息推送 为了使微信小程序能够发送订阅消息,需先完成一些准备工作。这包括但不限于准备小程序账、搭建开发环境,并确保所使用的框架(如uniapp)和后端技术栈(如Spring Boot)都已就绪[^1]。 #### 订阅消息的工作流程 订阅消息的功能允许小程序向用户传递特定的信息,而这一过程依赖于微信的服务通知机制来最终触达用户设备。具体来说,当小程序希望传达某条信息时,它会将所需的数据连同目标用户的唯一标识一同提交给微信服务器;随后,由微信服务器负责验证这些信息的有效性和合法性,在确认无误之后再转发至对应的微信客户端上显示出来[^3]。 #### 开发指南概览 对于开发者而言,想要成功集成此特性,则需要遵循官方文档指导下的几个关键环节: - **后端部分**:构建接口用于组装待发送的消息体结构并向微信公众平台API发起调用来触发实际的通知动作。 ```javascript // 前端示例代码 (UniApp) wx.requestSubscribeMessage({ tmplIds: ['your_template_id'], success(res){ console.log('用户同意订阅', res); }, fail(err){ console.error('获取权限失败', err); } }); ``` ```java // 后端示例代码片段 (Spring Boot) @PostMapping("/sendTemplateMsg") public ResponseEntity<String> sendTemplateMsg(@RequestBody Map<String, String> params) { // 构建HTTP POST 请求... } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值