https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/subscribe-message.html
一個模板,一次授權只能發送一次消息,下次發送需要重新授權。
一次授權最多可以有三個模板,每個模板發送一條消息就能發送三條消息。如果有4-6條消息需要發送,則至少需要授權2次。
@Data public class WxMssVo { @ApiModelProperty(value = "用戶openid") private String touser; @ApiModelProperty(value = "模版id") private String template_id; @ApiModelProperty(value = "跳轉小程序類型:developer為開發版;trial為體驗版;formal為正式版;默認為正式版") private String miniprogram_state = "developer"; @ApiModelProperty(value = "進入小程序查看”的語言類型,支持zh_CN(簡體中文)、en_US(英文)、zh_HK(繁體中文)、zh_TW(繁體中文),默認為zh_CN") private String lang = "zh_CN"; @ApiModelProperty(value = "推送文字") private Map<String, TemplateData> data; }
@Data public class TemplateData { @ApiModelProperty(value = "文字內容,例如keyword1:訂單類型,keyword2:下單金額,keyword3:配送地址,keyword4:取件地址,keyword5備注, 依次排下去") private String value; }
String openId = "oulnk5ESr34sHogYLke8m4oy6abc"; String templateId = "fjodangdapgpggjpajgpauufUddjfldjagdajpd"; //拼接推送的模版 WxMssVo wxMssVo = new WxMssVo(); //用戶openid wxMssVo.setTouser(openId); //模版id wxMssVo.setTemplate_id(templateId); //模板內容 Map<String, TemplateData> data = new HashMap<>(); //服務項目 TemplateData name1 = new TemplateData(); name1.setValue("XX通知"); data.put("name1",name1); //時間 SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); TemplateData date3 = new TemplateData(); date3.setValue(sf.format(new Date())); data.put("date3",date3); //服務說明 TemplateData thing5 = new TemplateData(); thing5.setValue("您已XX成功。"); data.put("thing5",thing5); wxMssVo.setData(data); //獲取access_token String access_token = getAccess_token(weChatProperties.getAppId(), weChatProperties.getAppSecret()); String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send" + "?access_token=" + access_token; ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, wxMssVo, String.class); if (HttpStatus.OK != responseEntity.getStatusCode()){ log.error("小程序推送結果={}", responseEntity.getBody()); } JSONObject result = JSON.parseObject(responseEntity.getBody()); if(result.getInteger("errcode") != ResultCode.SUCCESS){ log.error("小程序推送結果={}", responseEntity.getBody()); }else{ log.info("小程序推送結果={}", responseEntity.getBody()); }
可以在微信開放社區申請長期模板。
結束