微信模板推送代码

package com.util;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.model.*;
import org.apache.http.entity.StringEntity;
import org.apache.log4j.Logger;

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

public class SendServiceNotification {

private static Logger logger = Logger.getLogger(SendServiceNotification.class);
public static boolean sendNewUserMessage(ServiceRemindData orderModel, String appId, String appSecret, String mchId, String key,String template) {
	AccessToken accessToken = getAccessToken(appId, appSecret, mchId, key);
	if (null != accessToken) {
		OrderRemindModel model = new OrderRemindModel();
		model.setTemplate_id(template);
		model.setTouser(orderModel.getOpenId());
		model.setForm_id(orderModel.getFormId());
		model.setPage("pages/index/index");

		// Set the param
		Map<String, Object> datas = new HashMap<String, Object>();
		TemplateData keyword1 = new TemplateData();
		keyword1.setValue(orderModel.getKeyword1());
		datas.put("keyword1", keyword1);

		TemplateData keyword2 = new TemplateData();
		keyword2.setValue(orderModel.getKeyword2());
		datas.put("keyword2", keyword2);

		TemplateData keyword3 = new TemplateData();
		keyword3.setValue(orderModel.getKeyword3()); //温馨提示
		datas.put("keyword3", keyword3);

		TemplateData keyword4 = new TemplateData();
		keyword4.setValue(orderModel.getKeyword4());
		datas.put("keyword4", keyword4);

		model.setData(datas);
		model.setEmphasis_keyword("keyword1.DATA"); //放大标题

		String templeteUrl = "";
		System.out.println("templete param ========= " + JSON.toJSONString(model));
		String returnMessage = PayUtil.httpRequest(templeteUrl, "POST", JSON.toJSONString(model), false,
				new XcxWxLogin(appId, appSecret, mchId, key));
		System.out.println("returnMessage ========= " + returnMessage);
		JSONObject jsonObject = JSON.parseObject(returnMessage);
		if (0 != (Integer) jsonObject.get("errcode")) {
			logger.warn("--- Error find while sending the order message. ----");
			return false;
		} else {
			logger.info("--- The order was sent successfully.. ----");
			return true;
		}
	} else {
		logger.error("------ The access token is null. -------");
		return false;
	}
}

public static boolean sendAssembleMessage(ServiceAssembleData orderModel, String appId, String appSecret, String mchId, String key, String template) {
	AccessToken accessToken = getAccessToken(appId, appSecret, mchId, key);
	if (null != accessToken) {
		OrderRemindModel model = new OrderRemindModel();
		model.setTemplate_id(template);
		model.setTouser(orderModel.getOpenId());
		model.setForm_id(orderModel.getFormId());
		model.setPage("pages/index/index");

		// Set the param
		Map<String, Object> datas = new HashMap<String, Object>();
		TemplateData keyword1 = new TemplateData();
		keyword1.setValue(orderModel.getKeyword1());
		datas.put("keyword1", keyword1);

		TemplateData keyword2 = new TemplateData();
		keyword2.setValue(orderModel.getKeyword2());
		datas.put("keyword2", keyword2);

		TemplateData keyword3 = new TemplateData();
		keyword3.setValue(orderModel.getKeyword3()); //温馨提示
		datas.put("keyword3", keyword3);

		TemplateData keyword4 = new TemplateData();
		keyword4.setValue(orderModel.getKeyword4());
		datas.put("keyword4", keyword4);

		TemplateData keyword5 = new TemplateData();
		keyword5.setValue(orderModel.getKeyword5());
		datas.put("keyword5", keyword5);

		TemplateData keyword6 = new TemplateData();
		keyword6.setValue(orderModel.getKeyword6());
		datas.put("keyword6", keyword6);
		model.setData(datas);
	//	model.setEmphasis_keyword("keyword1.DATA"); //放大标题

		String templeteUrl = "";
		System.out.println("templete param ========= " + JSON.toJSONString(model));
		String returnMessage = PayUtil.httpRequest(templeteUrl, "POST", JSON.toJSONString(model),
				false, new XcxWxLogin(appId, appSecret, mchId, key));
		System.out.println("returnMessage ========= " + returnMessage);
		JSONObject jsonObject = JSON.parseObject(returnMessage);
		if (0 != (Integer) jsonObject.get("errcode")) {
			logger.warn("--- Error find while sending the order message. ----");
			return false;
		} else {
			logger.info("--- The order was sent successfully.. ----");
			return true;
		}
	} else {
		logger.error("------ The access token is null. -------");
		return false;
	}
}

public static boolean sendWeekMessage(ServiceAssembleData orderModel, String appId, String appSecret, String mchId, String key, String template) {
	AccessToken accessToken = getAccessToken(appId, appSecret, mchId, key);
	if (null != accessToken) {
		OrderRemindModel model = new OrderRemindModel();
		model.setTemplate_id(template);
		model.setTouser(orderModel.getOpenId());
		model.setForm_id(orderModel.getFormId());
		model.setPage("pages/index/index");

		// Set the param
		Map<String, Object> datas = new HashMap<String, Object>();
		TemplateData keyword1 = new TemplateData();
		keyword1.setValue(orderModel.getKeyword1());
		datas.put("keyword1", keyword1);

		TemplateData keyword2 = new TemplateData();
		keyword2.setValue(orderModel.getKeyword2());
		datas.put("keyword2", keyword2);

		TemplateData keyword3 = new TemplateData();
		keyword3.setValue(orderModel.getKeyword3()); //温馨提示
		datas.put("keyword3", keyword3);

		TemplateData keyword4 = new TemplateData();
		keyword4.setValue(orderModel.getKeyword4());
		datas.put("keyword4", keyword4);

		model.setData(datas);

		String templeteUrl = "|";
		System.out.println("templete param ========= " + JSON.toJSONString(model));
		String returnMessage = PayUtil.httpRequest(templeteUrl, "POST", JSON.toJSONString(model),
				false, new XcxWxLogin(appId, appSecret, mchId, key));
		System.out.println("returnMessage ========= " + returnMessage);
		JSONObject jsonObject = JSON.parseObject(returnMessage);
		if (0 != (Integer) jsonObject.get("errcode")) {
			logger.warn("--- Error find while sending the order message. ----");
			return false;
		} else {
			logger.info("--- The order was sent successfully.. ----");
			return true;
		}
	} else {
		logger.error("------ The access token is null. -------");
		return false;
	}
}

public static boolean sendNewUserMessage(ServiceRemindData orderModel, String appId, String appSecret, String mchId, String key) {
	AccessToken accessToken = getAccessToken(appId, appSecret, mchId, key);
	if (null != accessToken) {
		OrderRemindModel model = new OrderRemindModel();
		model.setTemplate_id("");
		model.setTouser(orderModel.getOpenId());
		model.setForm_id(orderModel.getFormId());
		model.setPage("pages/index/index");

		// Set the param
		Map<String, Object> datas = new HashMap<String, Object>();
		TemplateData keyword1 = new TemplateData();
		keyword1.setValue(orderModel.getKeyword1());
		datas.put("keyword1", keyword1);

		TemplateData keyword2 = new TemplateData();
		keyword2.setValue(orderModel.getKeyword2());
		datas.put("keyword2", keyword2);

		TemplateData keyword3 = new TemplateData();
		keyword3.setValue(orderModel.getKeyword3()); //温馨提示
		datas.put("keyword3", keyword3);

		TemplateData keyword4 = new TemplateData();
		keyword4.setValue(orderModel.getKeyword4());
		datas.put("keyword4", keyword4);

		model.setData(datas);
		model.setEmphasis_keyword("keyword1.DATA"); //放大标题

		String templeteUrl = "";
		System.out.println("templete param ========= " + JSON.toJSONString(model));
		String returnMessage = PayUtil.httpRequest(templeteUrl, "POST", JSON.toJSONString(model), false,
				new XcxWxLogin(appId, appSecret, mchId, key));
		System.out.println("returnMessage ========= " + returnMessage);
		JSONObject jsonObject = JSON.parseObject(returnMessage);
		if (0 != (Integer) jsonObject.get("errcode")) {
			logger.warn("--- Error find while sending the order message. ----");
			return false;
		} else {
			logger.info("--- The order was sent successfully.. ----");
			return true;
		}
	} else {
		logger.error("------ The access token is null. -------");
		return false;
	}
}


/**
 * Get the access token
 * 
 * @return
 */
private static AccessToken getAccessToken(String appId, String appSecret, String mchId, String key) {
	try {
		String tokenUrl = "";
		logger.info("tokenUrl = " + tokenUrl);
		String accessToken = PayUtil.httpRequest(tokenUrl, "POST", null, false, new XcxWxLogin(appId, appSecret, mchId, key));
		JSONObject json = JSON.parseObject(accessToken);
		AccessToken at = new AccessToken();
		at.setAccessToken(json.getString("access_token"));
		at.setExpiresIn(json.getIntValue("expires_in"));
		return at;
	} catch (Exception e) {
		logger.error("------ Get access token error!!! -------");
		return null;
	}
}

}

//构建推送内容
String formId = serviceNotificationService.getFormIdByUserId(user.getUserId(), “_assemble”);
if (!StringUtil.isEmpty(formId)) {
try {
ServiceAssembleData assembleData = new ServiceAssembleData();
assembleData.setOpenId(user.getOpenId());
assembleData.setFormId(formId);

                Object userName = user.getUserName();
                if (userName != null && !"".equals(userName) ) {
                    try {
                        userName = new String((byte[]) userName, "UTF-8");
                        log.info(userName+"");
                     //   user.setUserName(EscapeUnescapeUtil.escape((String)userName));
                        assembleData.setKeyword1(userName+"");
                    } catch (UnsupportedEncodingException e) {
                        log.error("userName convert error - " + e.getMessage());
                    }
                }
                if(userName.equals("{}") || userName.equals("") || null==userName){
                    assembleData.setKeyword1("游客");
                }
                assembleData.setKeyword2(String.valueOf(product.getNumberGroup()));
                assembleData.setKeyword3(product.getDescribe());
                assembleData.setKeyword4(String.valueOf(product.getPrice().divide(new BigDecimal(100),2,BigDecimal.ROUND_HALF_DOWN)));
                StringBuffer sb = new StringBuffer();
                users.forEach(user1 -> {
                    if(!user.getUserName().equals(user1.getUserName())) {
                        sb.append(user1.getUserName().toString()+"  ");
                    }});
                assembleData.setKeyword5(sb.toString());
                assembleData.setKeyword6("拼团成功-待发货");
                SendServiceNotification.sendAssembleMessage(assembleData, appId, appSecret, mchId, key, Constants.GOLDEN_STEP_ASSEMBLE_TEMP);
            } catch (Exception e) {
                log.error("发送拼团模板消息出错:::" + e.getMessage());
            }
        }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值