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

微信小程序订阅消息

一、小程序订阅模板准备

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

注意点: 消息字段的类型是有校验的,充电度数是number类型,则传入的string中不能使用0.00度。则会报错。

二、Java服务端代码

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

用于保存消息的id和pages

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

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

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)
	}
})

四、测试

经验分享 程序员 微信小程序 职场和发展