アプレット購読メッセージ


小プログラムは微信ユーザーに通知をプッシュして、購読メッセージはテンプレートメッセージではありませんて、テンプレートメッセージはすでに使えなくて、これは私自身が会社の小プログラムで書いた練習版で、ボタンをクリックしてからメッセージをプッシュして、wxmlコード:
<button bindtap="aaa">  </button>

jsコード:
  aaa: function () {
    wx.requestSubscribeMessage({
      tmplIds: ['Dw-Dlh5KRd6ce7wUlf259QaaApG7dhdQHN50BOJot1w'],
      success(res) {
        if (res['Dw-Dlh5KRd6ce7wUlf259QaaApG7dhdQHN50BOJot1w'] == 'accept'){
          wx.request({
            url: app.globalData.url + '/appInterface/wxPush.do',
            method: 'POST',
            header: { 'Content-Type': 'application/x-www-form-urlencoded' },
            data: {
              userOpenid: app.globalData.openid
            },
            success: function (res) {
              console.log(res)
            }
          })
        }
      }
    })
  },

JAvaコントローラコード:
@RequestMapping("/wxPush")
	@ResponseBody
	public Json wxPush(String userOpenid){
		logger.info("-----------          -------------");
		Json j = new Json();
		j.setSuccess(false);
		logger.info("userOpenid:" + userOpenid);
		try{
			SendWxMessage sendWxMessage = new SendWxMessage();
			j = sendWxMessage.push(userOpenid);
			if(!PbUtils.isEmpty(j.getObj())){
				j.setMsg("    ");
				j.setSuccess(true);
				logger.error("------------"+j.getMsg()+"------------");
			}else{
				j.setMsg("    ");
				logger.error("------------"+j.getMsg()+"------------");
			}
			
		}catch(Exception e){
			e.printStackTrace();
			j.setMsg("        " + e.getMessage());
			logger.error(e.getMessage());
		}
		logger.info("-----------          -------------");
		return j;
	}

WeChatツールクラスコード:
package com.gt.utils.wx;

import java.util.HashMap;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.google.gson.Gson;
import com.gt.pageModel.Json;

public class SendWxMessage  {
	ConfigInfo configInfo = new ConfigInfo();
    	  /*
         *       
         * */
        public Json push(String openid) {
        	//    id
        	String template_id = "Dw-Dlh5KRd6ce7wUlf259QaaApG7dhdQHN50BOJot1w";
        	Json j = new Json();
            RestTemplate restTemplate = new RestTemplate();
            //                access_token(     ,   access_token         )
            String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" + getAccessToken(configInfo.getWxAppId(),configInfo.getWxAppSecret());
            //       
            WxMssVo wxMssVo = new WxMssVo();
            wxMssVo.setTouser(openid);//   openid(        ,            )
            wxMssVo.setTemplate_id(template_id);//      id
            wxMssVo.setPage("pages/main/main");

            Map<String, TemplateData> m = new HashMap<>(5);
            //    ,      ,map key                    
            m.put("date2", new TemplateData("2019 10 15  00:00:00"));
            m.put("date3", new TemplateData("2019 10 16  00:00:00"));
            m.put("amount4", new TemplateData("¥100"));
            m.put("phrase7", new TemplateData("    "));
            m.put("thing9", new TemplateData("  "));
            wxMssVo.setData(m);
            ResponseEntity<String> responseEntity =
                    restTemplate.postForEntity(url, wxMssVo, String.class);
            j.setObj(responseEntity.getBody());
            return j;
        }

        public String getAccessToken(String appid, String appsecret) {
            RestTemplate restTemplate = new RestTemplate();
            Map<String, String> params = new HashMap<>();
            params.put("APPID", appid);  //
            params.put("APPSECRET", appsecret);  //
            ResponseEntity<String> responseEntity = restTemplate.getForEntity(
                    "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={APPID}&secret={APPSECRET}", String.class, params);
            String body = responseEntity.getBody();
            JSONObject object = JSON.parseObject(body);
            String Access_Token = object.getString("access_token");
            String expires_in = object.getString("expires_in");
            System.out.println("    expires_in:" + expires_in);
            return Access_Token;
        }
    
}