发送小程序推送信息

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();
         //模板消息的id
         model.setTemplate_id(template);
         //用户的 openid
         model.setTouser(openid);
         //formid
         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"); //放大标题
          //、模板url拼接上token,最上面的请求的url那样
         String templeteUrl =  TemplateUrl+ accessToken.getAccessToken();
         System.out.println("templete param ========= " + JSON.toJSONString(model));
         //发送httpclient请求
         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")) {
             return false;
         } else {
             return true;
         }
     } else {
         return false;
     }
}

private static AccessToken getAccessToken(String appId, String appSecret, String mchId, String key) {

	try {
		String tokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="
				+ appId + "&secret=" + appSecret;
		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;
	}
}

/**
*
* @param requestUrl请求地址
* @param requestMethod请求方法
* @param outputStr参数
*/
public static String httpRequest(String requestUrl, String requestMethod,
String outputStr,boolean isLoadCert,XcxWxLogin xcxWxLogin) {

	// 创建SSLContext
	StringBuffer buffer = null;
	try {
		URL url = new URL(requestUrl);
		HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
		conn.setRequestMethod(requestMethod);
		conn.setDoOutput(true);
		conn.setDoInput(true);
		if(isLoadCert){
			SSLSocketFactory ssf = CertUtil.initCert(xcxWxLogin);
			conn.setSSLSocketFactory(ssf);
		}
		conn.connect();
		// �?服务器端写内�?
		if (null != outputStr) {
			OutputStream os = conn.getOutputStream();
			//os = new HttpsURLConnection(conn.getOutputStream(),"utf-8");//关键解决
			os.write(outputStr.getBytes("UTF-8"));
			os.close();
		}
		// 读取服务器端返回的内�?
		InputStream is = conn.getInputStream();
		InputStreamReader isr = new InputStreamReader(is, "UTF-8");
		BufferedReader br = new BufferedReader(isr);
		buffer = new StringBuffer();
		String line = null;
		while ((line = br.readLine()) != null) {
			buffer.append(line);
		}
		br.close();
	} catch (Exception e) {
		e.printStackTrace();
	}
	return buffer.toString();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值