欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

目錄

柚子快報(bào)邀請(qǐng)碼778899分享:微信小程序向公眾號(hào)推送消息模板

柚子快報(bào)邀請(qǐng)碼778899分享:微信小程序向公眾號(hào)推送消息模板

http://yzkb.51969.com/

序言

由于微信小程序長(zhǎng)期訂閱的消息模板全部失效以后,對(duì)于小程序的消息推送可以改成往公眾號(hào)推。 這里將介紹如何使用小程序向公眾號(hào)推送消息,并且消息可以跳轉(zhuǎn)到小程序

準(zhǔn)備

1、微信公眾平臺(tái)注冊(cè)服務(wù)號(hào)(訂閱號(hào)是不可以推送的)與小程序,兩者都需要認(rèn)證并且認(rèn)證主體是一致

2、微信開(kāi)放平臺(tái)注冊(cè)賬號(hào)(該賬號(hào)也需要認(rèn)證),綁定小程序與公眾號(hào) 3、公眾號(hào)根據(jù)想要的模板消息綁定服務(wù)類(lèi)目,去模板消息中先挑選你的模板消息。(如果是剛注冊(cè)的公眾號(hào)還需要去新的功能頁(yè)面添加模板消息功能,需要微信審核,不過(guò)很快) 4、微信公眾號(hào)綁定小程序 5、小程序與公眾號(hào)配置服務(wù)器的ip地址白名單

整體實(shí)現(xiàn)流程

通過(guò)在開(kāi)放平臺(tái)綁定的公眾號(hào)與小程序后,我們?cè)谡{(diào)用微信code2Session接口的時(shí)候會(huì)返回unionid(雖然我們推送用不上哈哈),只要綁定以后,就可以通過(guò)小程序的openid調(diào)用微信的下發(fā)統(tǒng)一消息接口推送消息到公眾號(hào)去了

實(shí)現(xiàn)代碼(java)

1、消息推送接口文檔 2、小程序access_token獲取接口文檔

需要先獲取小程序的access_token

private String getAppletAccessToken() {

// 因?yàn)槲⑿庞邢拗拼螖?shù)跟有效期,所以需要存在redis中

String token = redisCache.getCacheObject(CacheConstants.WECHAT_MINI_ACCESS_TOKEN);

// token失效或者為空

if (StringUtils.isEmpty(token)) {

HashMap map = new HashMap<>(3);

map.put("appid", weAppAppId); // 小程序appid

map.put("secret", weAppSecret); // 小程序secret

map.put("grant_type", "client_credential");

// 發(fā)送Http的post請(qǐng)求

String resp = HttpUtils.sendPostJson(GET_ACCESS_TOKEN_URL, JSON.toJSONString(map), null);

log.info("獲取小程序accessToken返回:" + resp);

if (StringUtils.isEmpty(resp) || !resp.contains("access_token")) {

throw new ServiceException("獲取小程序accessToken失敗");

}

token = JSONObject.parseObject(resp).getString("access_token");

// 設(shè)置為1.9h(有效期2h)

redisCache.setCacheObject(CacheConstants.WECHAT_MINI_ACCESS_TOKEN, token,

7100, TimeUnit.SECONDS);

}

return token;

}

封裝下發(fā)消息參數(shù)實(shí)體(僅參考,照著接口文檔封)

/**

* 微信下發(fā)統(tǒng)一消息參數(shù)

*

* @author quan

* @date 2023/9/15 16:42

*/

@Data

@NoArgsConstructor

public class PushMsgParams {

/**

* 用戶(hù)openid,可以是小程序的openid,

* 也可以是mp_template_msg.appid對(duì)應(yīng)的公眾號(hào)的openid

*/

private String touser;

/**

* 公眾號(hào)模板消息

*/

private MpTemplateMsg mp_template_msg;

public PushMsgParams(String touser) {

this.touser = touser;

}

}

/**

* 小程序模板消息相關(guān)的信息,可以參考小程序模板消息接口;

* 有此節(jié)點(diǎn)則優(yōu)先發(fā)送小程序模板消息;

* (小程序模板消息已下線(xiàn),不用傳此節(jié)點(diǎn))

*

* @author quan

* @date 2023/9/15 16:48

*/

@Data

public class MpTemplateMsg {

/**

* 公眾號(hào)appid,要求與小程序有綁定且同主體

*/

private String appid;

/**

* 公眾號(hào)模板id

*/

private String template_id;

/**

* 公眾號(hào)模板消息所要跳轉(zhuǎn)的url

*/

private String url;

/**

* 公眾號(hào)模板消息所要跳轉(zhuǎn)的小程序,

* 小程序的必須與公眾號(hào)具有綁定關(guān)系

*/

private Map miniprogram;

/**

* 公眾號(hào)模板消息的數(shù)據(jù)

*/

private Map> data;

/**

* 構(gòu)建data數(shù)據(jù)

*/

public void createData(Map data) {

if (null == data || data.isEmpty()){

return;

}

Map> map = new HashMap<>(data.size());

for (Map.Entry entry : data.entrySet()) {

Map valMap = new HashMap<>(1);

valMap.put("value", entry.getValue());

map.put(entry.getKey(), valMap);

}

this.data = map;

}

}

消息推送方法封裝

/**

* 下發(fā)統(tǒng)一消息接口

*

* @param pushMsgParams 下發(fā)參數(shù)

* @param data 模板參數(shù)

*/

public void sendUniformMessage(PushMsgParams pushMsgParams, Map data) {

String accessToken = getAppletAccessToken();

MpTemplateMsg templateMsg = new MpTemplateMsg();

// 公眾號(hào)appid

templateMsg.setAppid(mpAppId);

// 前面準(zhǔn)備的模板消息的id

templateMsg.setTemplate_id(templateId);

// 推送參數(shù),格式為keyword,value??煽聪挛⑿盘峁┑膁emo會(huì)清楚點(diǎn)

templateMsg.createData(data);

// 跳轉(zhuǎn)小程序

HashMap miniPro = new HashMap<>(2);

miniPro.put("appid", weAppAppId);

miniPro.put("pagepath", "");

templateMsg.setMiniprogram(miniPro);

pushMsgParams.setMp_template_msg(templateMsg);

// 發(fā)送Http請(qǐng)求

// SEND_UNIFORM_MESSAGE = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token="

String resp = HttpUtils.sendPostJson(SEND_UNIFORM_MESSAGE + accessToken, JSON.toJSONString(pushMsgParams), null);

log.info("微信下發(fā)統(tǒng)一消息接口返回:{}", resp);

JSONObject result = JSON.parseObject(resp);

if (!"0".equals(result.getString("errcode"))) {

throw new ServiceException("微信消息推送失敗," + result.getString("errMsg"));

}

}

業(yè)務(wù)調(diào)用推送代碼

for (SysUser user : users) {

// 小程序或公眾號(hào)用戶(hù)的openid都可以推

PushMsgParams pushMsgParams = new PushMsgParams(user.getOpenid());

HashMap data = new HashMap<>(5);

data.put("character_string2", event.getFlightNo());

data.put("thing10", event.getStartPlace());

data.put("thing11", event.getDestPlace());

data.put("time3", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, event.getFlightStartTime()));

data.put("thing9", "請(qǐng)及時(shí)處理關(guān)注事件");

weChatUtil.sendUniformMessage(pushMsgParams, data);

}

推送效果,可直接跳轉(zhuǎn)小程序

柚子快報(bào)邀請(qǐng)碼778899分享:微信小程序向公眾號(hào)推送消息模板

http://yzkb.51969.com/

參考閱讀

評(píng)論可見(jiàn),查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/17813030.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問(wèn)

文章目錄