200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 微信小程序通过公众号服务号发送消息

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

时间:2021-02-12 22:42:33

相关推荐

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

一、基础概念:

准备条件:

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

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

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

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

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

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

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

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

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

使用:

https://api./cgi-bin/message/wxopen/template/uniform_send?access_token=ACCESS_TOKEN

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

获取token的api:

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

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

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

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

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

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

基本结构参数如下:

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

三、接入相关代码

1、参数实体

@Datapublic class WechatOAMsg implements Serializable {private static final long serialVersionUID = -1012245204329270134L;/*** openid*/private String touser;/*** 公众号模板消息相关的信息*/private MpTemplateMsg mp_template_msg;@Datapublic 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、返回接收

@Datapublic 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;}

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。