0


微信小程序通过公众号服务号发送消息

一、基础概念:

准备条件:

 1、公众号和小程序必须在同一个公司主体下。

 2、在公众号后台需要对小程序进程绑定操作。

公众号提供了两种消息,一种是订阅消息,一种是模板消息。

订阅消息需要用户主动订阅,然后才能接收消息,微信提供前端组件用于用户进行订阅。

模板消息,用户只需要关注公众号,就能发送消息给用户。

本文主要介绍后台服务器接入微信openapi发送模板消息。

登录公众号后台,查看模板消息,进行模板消息选择,如果没有模板消息选项,则需要在更多功能和设置中进行模板消息的开通。

二、接入微信OpenApi 发送模板消息。

  微信开发文档相关地址:下发统一消息 | 微信开放文档

  使用:
https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token=ACCESS_TOKEN

进行消息的发送。access_token 采用微信小程序提供的获取token的api获取

获取token的api:

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=SECRET

统一发送消息的的参数说明:

小程序模板消息已经下架,我们使用公众号的消息模板。

参数中,miniprogram是一个关于小程序的结构体,子参数有小程序的appId 和小程序的指定页面,用于用户点击消息,跳转到相应的小程序。

miniprogram未指定的情况下,指定了URL,则点击消息,则会跳转到URL指定的页面。

data参数根据你使用的模板进行参数设置。

基本结构参数如下:

token,参数都组装好后,就可以通过http请求给关注公众号的相应用户发送消息。

三、接入相关代码

1、参数实体

@Data
public class WechatOAMsg implements Serializable {

    private static final long serialVersionUID = -1012245204329270134L;

    /**
     * openid
     */
    private String     touser;

    /**
     * 公众号模板消息相关的信息
     */
    private MpTemplateMsg mp_template_msg;

    @Data
    public static class MpTemplateMsg{

        /**
         * 公众号appid,要求与小程序有绑定且同主体
         */
        private String     appid;

        /**
         * 消息模板ID
         */
        private String template_id;

        /**
         * 公众号模板消息所要跳转的url
         */
        private String url;

        /**
         * 公众号模板消息所要跳转的小程序,小程序的必须与公众号具有绑定关系
         */
        private Map<String,String> miniprogram;

        /**
         * 公众号模板消息的数据,消息json
         */
        private Map<String,Map<String,String>>     data;

    }
}

2、返回接收

@Data
public class WechatOAResult  implements Serializable {

    private static final long serialVersionUID = -8530125244567710894L;

    /**
     * 返回码
     */
    private Integer errcode;

    /**
     * 消息体
     */
    private String errmsg;
}

3、发送方法

    /**
     * 发送微信公众号消息
     * @param wechatOAMsg
     * @return
     */
    public WechatOAResult sendWechatOAMsg(WechatOAMsg wechatOAMsg){
        String postData = JsonUtil.toJsonString(wechatOAMsg);
        String token = getAccessToken(2);
        String getOpenUrl = weChatConfiguration.getSendMsgUrl();
        getOpenUrl = getOpenUrl.replace("ACCESS_TOKEN",token);
        if (null != postData) {
            //http 调用第三方接口
            log.info("send Wechat msg Url :{} postData:{} ", getOpenUrl,postData);
           String result =  HttpUtil.post(getOpenUrl, postData);
            log.info("send wechat msg result:"+result);
            WechatOAResult wechatOAResult = JsonUtil.parseObject(result,WechatOAResult.class);
            return wechatOAResult;
        }
        return null;
    }

其他相关业务代码,请自行补全。


本文转载自: https://blog.csdn.net/wuguangrong888/article/details/127432924
版权归原作者 justforglory 所有, 如有侵权,请联系我们删除。

“微信小程序通过公众号服务号发送消息”的评论:

还没有评论