uniapp开发微信小程序订阅消息

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

微信小程序订阅消息

一、小程序订阅模板准备

使用微信小程序账号登录微信公众平台,找到如下页面,点击选用,选择自己需要的合适的模板。

微信发送订阅消息接口文档uniapp微信小程序订阅消息,uniapp,微信小程序,uni-app,小程序

1.1、获取模板id及模板字段名称

uniapp微信小程序订阅消息,uniapp,微信小程序,uni-app,小程序
注意点:
消息字段的类型是有校验的,充电度数是number类型,则传入的string中不能使用0.00度。则会报错。

二、Java服务端代码

2.1、编写消息模板配置文件

用于保存消息的id和pages
package com.nis.charge.config.wechat;


import lombok.Getter;

/**
 * <h1>微信订阅消息模板</h1>
 *
 * @author lwj
 */
@Getter
public enum WechatMsgTempConfig {

    /**
     * 开始充电
     */
    START_CHARGE("76-w0HT6wfZVP0F8DtVNuGyOWWMALAmQHPgBBgcQUgY", "/pages/mine/charge-record/charge-record"),
    ;


    /**
     * 缓存键
     */
    private String tempId;

    /**
     * 订阅消息跳转的url
     */
    private String page;

    WechatMsgTempConfig(String tempId, String page) {
        this.tempId = tempId;
        this.page = page;
    }
}

2.2、编写订阅消息请求对象

package com.nis.charge.domain.dto.subscribeMsg.model.wechat;

import lombok.Builder;
import lombok.Data;

/**
 * <h1>微信小程序订阅消息请求参数</h1>
 *
 * @author lwj
 */
@Data
@Builder
public class WechatMiniMsgParams {
    /**
     * 接口调用凭证
     */
    private String access_token;

    /**
     * 模板id
     */
    private String template_id;

    /**
     * 点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转
     */
    private String page;

    /**
     * 接收者(用户)的 openid
     */
    private String touser;

    /**
     * 模板内容,格式形如 { "key1": { "value": any }, "key2": { "value": any } }的object
     */
    private Object data;

    /**
     * 跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
     */
    private String miniprogram_state;

    /**
     * 进入小程序查看”的语言类型,支持zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文),默认为zh_CN
     */
    private String lang;
}

2.3、编写充电开始订阅消息模板对象

2.2.1、DataEntry
package com.nis.charge.domain.dto.subscribeMsg.model;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * @Author 朱潘栋
 * @Data 15:28 2021/8/20
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class DataEntry implements Serializable {

    private static final long serialVersionUID = 7946471752462379765L;
    private String value;
}

2.2.2、ChargeStartModel
package com.nis.charge.domain.dto.subscribeMsg.model.wechat;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.nis.charge.domain.dto.subscribeMsg.model.DataEntry;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * <h1>充电开始微信订阅消息模板</h1>
 * 订单编号{{character_string11.DATA}}
 * 开始时间{{time2.DATA}}
 * 充电站名称{{thing5.DATA}}
 * 充电桩编码{{character_string6.DATA}}
 * 充电插座{{thing7.DATA}}
 *
 * @author lwj
 */

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class ChargeStartModel {
    /**
     * 订单编号
     */
    private DataEntry character_string11;

    /**
     * 开始时间
     */
    private DataEntry time2;
    /**
     * 充电站名称
     */
    private DataEntry thing5;

    /**
     * 充电桩编码
     */
    private DataEntry character_string6;

    /**
     * 充电插座
     */
    private DataEntry thing7;
}

2.4、编写发送接口

   /**
     * 发送充电开始订阅消息
     *
     * @return
     */
    @Override
    public boolean sendChargeStartMsg(String openId, String orderId, String createTime, String placeName, String equipCode, String portName) {
        boolean sendSuccess = false;

        String accessToken = iWechatService.getAccessToken();
        ChargeStartModel startCharge = ChargeStartModel.builder().character_string11(DataEntry.builder().value(orderId).build())
                .time2(DataEntry.builder().value(createTime).build())
                .thing5(DataEntry.builder().value(placeName).build())
                .character_string6(DataEntry.builder().value(equipCode).build())
                .thing7(DataEntry.builder().value(portName).build()).build();
        WechatMiniMsgParams wechatMiniMsgParams = WechatMiniMsgParams.builder()
                .touser(openId).template_id(WechatMsgTempConfig.START_CHARGE.getTempId()).page(WechatMsgTempConfig.START_CHARGE.getPage())
                .data(startCharge).build();
        JSONObject jsonResult = restTemplate.postForObject(WechatConstant.SEND_SUBSCRIBE_URL + "?access_token=" + accessToken, wechatMiniMsgParams, JSONObject.class);
        log.info("充电开始推送消息返回参数:{}", JSON.toJSONString(jsonResult));
        Integer errorCode = jsonResult.getInteger("errcode");
        String errorMessage = jsonResult.getString("errmsg");
        if (errorCode == 0) {
            sendSuccess = true;
            log.info("充电开始推送消息发送成功");
        } else {
            log.info("充电开始推送消息发送失败,errcode:{},errorMessage:{}", errorCode, errorMessage);
        }
        return sendSuccess;
    }

三、uniapp代码

uni.requestSubscribeMessage({
	tmplIds: ['76-w0HT6wfZVP0F8DtVNuGyOWWMALAmQHPgBBgcQUgY'],
	complete(res) {
		//	调用支付接口
		_this.wechatPay(chargeData)
	}
})

四、测试

uniapp微信小程序订阅消息,uniapp,微信小程序,uni-app,小程序文章来源地址https://www.toymoban.com/news/detail-599295.html

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

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

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

相关文章

  • uniapp 微信小程序订阅(一次性订阅消息)

    首先我们需要了解微信小程序的一些基本的,才能知道我们要做什么: 微信小程序消息订阅只有两种形式可以召唤出来: 1、用户手动点击按钮 2、支付回调唤起 一次调用最多可订阅3条消息 小程序弹出后,可点击的情况 1、单纯点击取消/确认键 2、勾选了总是保持以上选择

    2024年02月09日
    浏览(36)
  • uniapp微信小程序消息订阅详解

    注意:订阅信息 这个事件 是 当用户 点击的时候触发 或者 是 支付成功后触发, 用户勾选 “总是保持以上选择,不再询问” 之后或长期订阅,下次订阅调用 wx.requestSubscribeMessage 不会弹窗,保持之前的选择,修改选择需要打开小程序设置进行修改。

    2024年04月09日
    浏览(52)
  • uniapp 小程序订阅消息 一次订阅多个 wx.requestSubscribeMessage 微信小程序订阅消息

    如图所示,订阅消息 官方文档: 小程序订阅消息官方文档 1,消息类型 (1) 一次性订阅消息 用户自主订阅后,开发者可不限时间地下发一条对应的服务消息;每条消息可单独订阅或退订。 (2) 长期订阅消息 用户订阅一次后,开发者可长期下发多条消息。 目前长期性订阅消息

    2024年02月09日
    浏览(40)
  • uniapp微信小程序消息订阅快速上手

    这边的模板id和详细内容后续前后端需要使用 需要是一个button触发 js: 其中thing2、phrase3是模板的字段名,根据自己模板去修改即可 HttpClient.java

    2024年02月12日
    浏览(47)
  • uniapp微信小程序订阅消息发送服务通知--超详细

    由于公司需求,刚学完的小程序的我,要求开发一个直播通知的微信小程序,学了vue的我,选择还是使用uniapp开发,wx原生语法学完已经快忘了。在利用uniapp写代码的过程中,遇到很多问题,通过这篇博客分享一下总体实现思路以及一些小坑。整篇博客以逐步的思路让你完整

    2024年02月06日
    浏览(39)
  • 开发微信小程序消息订阅的步骤

    开发微信小程序消息订阅的步骤如下: 登录微信公众平台,在左侧导航栏中选择 “开放能力”,然后点击 “订阅消息” 进入订阅消息页面。 在页面左侧的 “模板库” 中选择需要使用的模板,然后根据模板的要求填写相应的参数。 在小程序代码中引入 wx.requestSubscribeMessa

    2024年02月15日
    浏览(30)
  • Java开发微信小程序订阅消息推送

    使用到开源工具WxJava 这里环境使用到springboot 框架,废话不多说直接上干货。 pom.xml引用 application配置 templateId具体申请在微信公众平台 具体如下   wx配置代码编写 模板代码编写 这里注意模板对应的字段 具体代码  然后和前端一配合就完事了,非常简单

    2024年02月16日
    浏览(41)
  • uni-app开发微信小程序

    编辑器:HubilderX 运行环境:微信开发者工具 技术栈:uni-app + vue + uView + uCharts + LeanCloud 创建微信小程序项目时,我才用了vue前端框架 PS:用的是HbuilderX编辑器 1. 注册微信小程序 注册完后,获取微信小程序的AppID,并在manifest.json文件配置; 2. 导入uView和uCharts组件库 使用uni-

    2024年02月16日
    浏览(50)
  • uniapp+微信小程序获取openId,获取access_token,订阅消息模板,java后台发送消息

    1.前期准备 2.用户订阅消息 3.获取openId(uniapp) 4.获取access_token 5.发送消息 6.请求的代码Springboot(自己写有发送请求方法的可以不用看) 在微信公众号申请订阅消息 在公共模板这里选用模板, 模板种类跟小程序设置的类目有关,只有特殊的类目有长期订阅模板 类目可以在设

    2024年02月03日
    浏览(37)
  • 如何使用uni-app开发微信小程序

    uni-app 是一个使用 Vue.js 开发所有前端应用的框架。开发者编写一套代码,可发布到 iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)、快应用等多个平台。 详细的 uni-app 官方文档,请翻阅https://uniapp.dcloud.net.cn uni-app 官方推荐使用 HBuilderX 来开发 uni-ap

    2024年02月10日
    浏览(103)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包