アプレット購読メッセージ
小プログラムは微信ユーザーに通知をプッシュして、購読メッセージはテンプレートメッセージではありませんて、テンプレートメッセージはすでに使えなくて、これは私自身が会社の小プログラムで書いた練習版で、ボタンをクリックしてからメッセージをプッシュして、wxmlコード:
jsコード:
JAvaコントローラコード:
WeChatツールクラスコード:
<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;
}
}