2021-01-09 18:35:13 +08:00

297 lines
18 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.tenwa.lease.app.quartzmession;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.UUID;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import com.alibaba.fastjson.JSONObject;
import com.amarsoft.are.jbo.JBOException;
import com.amarsoft.are.util.StringFunction;
import com.amarsoft.awe.util.ASResultSet;
import com.amarsoft.awe.util.SqlObject;
import com.amarsoft.awe.util.Transaction;
import com.amarsoft.dict.als.cache.CacheLoaderFactory;
import com.base.util.QuartzUtil;
import com.tenwa.httpclient.resources.WechatPropertiesUtil;
import com.tenwa.util.SerialNumberUtil;
/**
* 1:微信公众号信息推送
* @author xiezhiwen
*/
public class WechatMessagePush implements Job{
private static final Logger logger = LogManager.getLogger(WechatMessagePush.class);// 引入logger日志
public void execute(JobExecutionContext arg0) throws JobExecutionException {
Transaction Sqlca=null;
String startime = StringFunction.getTodayNow();
Object userId = arg0.getTrigger().getJobDataMap().get("CurUserId");
String curUserId = userId == null? "system" : userId.toString();
try{
Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
// 执行还款消息推送
String result1 = RefundRemindPush(Sqlca);
String result2 = OverdueRefundRemindPush(Sqlca);
Sqlca.commit();
logger.info("还款提醒发送状态<<<<<<<<<<<<<: "+result1);
logger.info("逾期还款提醒发送状态<<<<<<<<<<: "+result2);
QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.WechatMessagePush", "success", "成功", curUserId);
}catch(Exception e){
logger.info("<<<<<<<<<<<<<<<<<<<<<<微信推送定时任务执行异常>>>>>>>>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<微信推送定时任务执行异常>>>>>>>>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<微信推送定时任务执行异常>>>>>>>>>>>>>>>>>>>>>>>");
QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.WechatMessagePush", "error", "失败", curUserId);
try {
Sqlca.rollback();
} catch (JBOException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}finally {
if(Sqlca!=null) {
try {
Sqlca.commit();
Sqlca.disConnect();
} catch (JBOException e) {
e.printStackTrace();
}
}
}
}
/**
* 1: 还款提醒发送
* @return
* @throws Exception
*/
public String RefundRemindPush(Transaction Sqlca) throws Exception {
// 定义全局对象
String contract_number=null;// 合同名称
String customer_num=null; // 客户编码
String cust_name=null; // 客户名称
String plan_list=null; // 客户名称
String mobile=null; // 手机号
String contract_id=null; // 合同id
String customer_id=null; // 客户id
String openid=null; // 微信标识
String link=null; // 详情链接
String type="1"; // 类型
String keyword1=null;// 还款日期
String keyword2=null;// 还款期次
String keyword3=null;// 还款金额
String keyword4=null;//
String uuid=null; // 记录表id
String first="尊敬的客户您好,本期还款信息如下:";// 内容头
String remark="请您在还款日前完成还款,感谢您的支持与配合,祝您生活愉快!";// 备注
String updSql="";
String insertSql="";
String msgid =null;
String result="推送成功";
String batch=SerialNumberUtil.getWechatBatchNumber(Sqlca);
int con=0;
// 查询所有需要发送还款提醒的数据
String selSql="SELECT CI.CUSTOMERNAME AS CUST_NAME,WUI.MOBILE_,WUI.CERTID_,LCI.CONTRACT_NUMBER,CI.CUSTOMER_NUM,LRP.PLAN_LIST,LCI.ID AS CONTRACT_ID,CI.CUSTOMERID,WUI.OPENID,CONCAT('/wechat/menu?type=payments&id=',LCI.CONTRACT_NUMBER) AS LINK,CONCAT(CONVERT(YEAR(LRP.PLAN_DATE), CHAR),'年',CONVERT(MONTH(LRP.PLAN_DATE), CHAR),'月',CONVERT(DAY(LRP.PLAN_DATE), CHAR),'日') AS KEYWORD1,CONCAT('第', LRP.PLAN_LIST, '期') KEYWORD2,CONCAT(IFNULL(LRP.RENT, 0) - IFNULL(LRI.RENT, 0),'元') KEYWORD3 FROM WECHAT_USER_INFO WUI LEFT JOIN CUSTOMER_INFO CI ON CI.CERTID = WUI.CERTID_ LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CUSTOMER_ID = CI.CUSTOMERID AND LUL.IS_MAIN = 'Y' LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LUL.CONTRACT_ID AND LCI.CONTRACT_STATUS = '31' LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO=LCI.DISTRIBUTOR_ID LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID = LCI.ID LEFT JOIN (SELECT CONTRACT_ID,PLAN_LIST,SUM(RENT) AS RENT FROM LC_RENT_INCOME GROUP BY CONTRACT_ID,PLAN_LIST) LRI ON LRI.CONTRACT_ID = LRP.CONTRACT_ID AND LRI.PLAN_LIST = LRP.PLAN_LIST WHERE WUI.BINDING_STATUS = 'Y' AND IFNULL(WUI.ATTENTION_STATUS, 'Y') <> 'N' AND DI.DISTRIBUTOR_NAME<>'辉煌国际融资租赁(天津)有限公司' AND (TIMESTAMPDIFF(DAY,DATE_FORMAT(NOW(), '%Y-%m-%d'),DATE_FORMAT(LRP.PLAN_DATE, '%Y-%m-%d')) <= 3 AND TIMESTAMPDIFF(DAY,DATE_FORMAT(NOW(), '%Y-%m-%d'),DATE_FORMAT(LRP.PLAN_DATE, '%Y-%m-%d')) >= 0) AND IFNULL(LRP.RENT, 0) - IFNULL(LRI.RENT, 0) > 0 AND NOT EXISTS (SELECT 1 FROM WECHAT_MESSAGE_RECORD WHERE OPENID = WUI.OPENID AND SEND_TYPE = '1' AND CONTRACT_NUMBER = LCI.CONTRACT_NUMBER AND PLAN_LIST = LRP.PLAN_LIST AND SEND_STATUS = 'Y') LIMIT 0, 50000 ";
ASResultSet rs = Sqlca.getASResultSet(new SqlObject(selSql));
while(rs.next()) {
// 获取接口推送所需数据
con++;
uuid = UUID.randomUUID().toString().replace("-", "");
openid=rs.getString("openid");
link=rs.getString("link");
keyword1=rs.getString("keyword1");
keyword2=rs.getString("keyword2");
keyword3=rs.getString("keyword3");
contract_number=rs.getString("contract_number");
customer_num=rs.getString("customer_num");
cust_name=rs.getString("cust_name");
mobile=rs.getString("mobile_");
plan_list=rs.getString("plan_list");
contract_id=rs.getString("contract_id");
customer_id=rs.getString("customerid");
// 查寻当条是否是历史失败的
selSql="SELECT openid FROM wechat_message_record WHERE OPENID='"+openid+"' AND CONTRACT_NUMBER='"+contract_number+"' AND PLAN_LIST='"+plan_list+"' AND SEND_TYPE='1'";
ASResultSet rs1 = Sqlca.getASResultSet(new SqlObject(selSql));
if(!rs1.next()) {
insertSql="INSERT INTO WECHAT_MESSAGE_RECORD(ID,BATCH,OPENID,CONTRACT_NUMBER,CUSTOMER_NUM,CUST_NAME,PLAN_LIST,MODILE,SEND_DATE,SEND_TYPE,SEND_CONTENT,SEND_STATUS,CONTRACT_ID,CUSTOMER_ID) VALUES('"+uuid+"',CONCAT('"+batch+"','-','"+con+"'),'"+openid+"','"+contract_number+"','"+customer_num+"','"+cust_name+"','"+plan_list+"','"+mobile+"',DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s'),'1',CONCAT('"+first+"','还款日期: ','"+keyword1+"',',还款期数: ','"+keyword2+"',',还款金额: ','"+keyword3+"',', ','"+remark+"'),'N','"+contract_id+"','"+customer_id+"')";
Sqlca.executeSQL(new SqlObject(insertSql));
}
try {
msgid = WechatMessagePush.WechatPush(openid,link,type,first,keyword1,keyword2,keyword3,keyword4,remark);
System.out.println(con);
} catch (Exception e) {
result="推送失败";
e.printStackTrace();
}
// 成功改状态, 失败改时间
if(msgid!=null) {
updSql="UPDATE wechat_message_record SET MSGID='"+msgid+"',SEND_DATE=DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s'),SEND_STATUS='Y' WHERE OPENID='"+openid+"' AND CONTRACT_NUMBER='"+contract_number+"' AND PLAN_LIST='"+plan_list+"' AND SEND_TYPE='1'";
Sqlca.executeSQL(new SqlObject(updSql));
}else {
result="推送失败";
updSql="UPDATE wechat_message_record SET SEND_DATE=DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s'),SEND_STATUS='N' WHERE OPENID='"+openid+"' AND CONTRACT_NUMBER='"+contract_number+"' AND PLAN_LIST='"+plan_list+"' AND SEND_TYPE='1'";
Sqlca.executeSQL(new SqlObject(updSql));
}
}
return result+String.valueOf(con);
}
/**
* 2: 逾期 还款提醒发送
* @return
* @throws Exception
*/
public String OverdueRefundRemindPush(Transaction Sqlca) throws Exception {
// 定义全局对象
String contract_number=null;// 合同名称
String customer_num=null; // 客户编码
String cust_name=null; // 客户名称
String plan_list=null; // 客户名称
String mobile=null; // 手机号
String contract_id=null; // 合同id
String customer_id=null; // 客户id
String openid=null; // 微信标识
String link=null; // 详情链接
String type="2"; // 类型
String keyword1=null; // 还款日期
String keyword2=null; // 应还金额
String keyword3=null; // 逾期金额
String keyword4=null; // 罚息金额
String uuid=null; // 记录表id
String first="亲爱的用户您好,您本期应还金额尚未归还,以下是您的账单信息:"; // 内容头
String remark="您已逾期,逾期会产生利息并影响您的个人信用。为了更好地维护您的相关权益,请尽快还款。如需协商 ,请联系客服。"; // 备注
String updSql="";
String insertSql="";
String msgid =null;
String result="推送成功";
String batch=SerialNumberUtil.getWechatBatchNumber(Sqlca);
int con=0;
// 查询所有需要发送还款提醒的数据
//String selSql="SELECT CI.CUSTOMERNAME AS CUST_NAME,WUI.MOBILE_,WUI.CERTID_,LCI.CONTRACT_NUMBER,CI.CUSTOMER_NUM,LRP.PLAN_LIST,LCI.ID AS CONTRACT_ID,CI.CUSTOMERID,WUI.OPENID,CONCAT('/wechat/menu?type=payments&id=',LCI.CONTRACT_NUMBER) AS LINK,CONCAT(CONVERT(YEAR(LRP.PLAN_DATE), CHAR),'年',CONVERT(MONTH(LRP.PLAN_DATE), CHAR),'月',CONVERT(DAY(LRP.PLAN_DATE), CHAR),'日') AS KEYWORD1,CONCAT(ROUND((LRP.RENT + ROUND(IFNULL(getRentPenalty3(LRP.PAYMENT_NUMBER,LRP.PLAN_LIST,IFNULL(LRI.HIRE_DATE,DATE_FORMAT(NOW(), '%y/%m/%d'))),0),2)) - (IFNULL(LRI.RENT, 0) + IFNULL(LRI.PENALTY, 0)),2),'元') AS KEYWORD2,CONCAT((LRP.RENT - IFNULL(LRI.RENT, 0)),'元') AS KEYWORD3,CONCAT(ROUND(IFNULL(getRentPenalty(LRP.PAYMENT_NUMBER,LRP.PLAN_LIST,IFNULL(LRI.HIRE_DATE,DATE_FORMAT(NOW(), '%y/%m/%d'))),0),2),'元') AS KEYWORD4 FROM WECHAT_USER_INFO WUI LEFT JOIN CUSTOMER_INFO CI ON CI.CERTID = WUI.CERTID_ LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CUSTOMER_ID = CI.CUSTOMERID AND LUL.IS_MAIN = 'Y' LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LUL.CONTRACT_ID AND LCI.CONTRACT_STATUS = '31' LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO=LCI.DISTRIBUTOR_ID LEFT JOIN (SELECT CONTRACT_ID,PLAN_LIST,MAX(PLAN_DATE) AS PLAN_DATE,MAX(PAYMENT_NUMBER) AS PAYMENT_NUMBER,SUM(RENT) AS RENT,SUM(IFNULL(PENALTY, 0)) AS PENALTY FROM LC_RENT_PLAN WHERE TIMESTAMPDIFF(DAY,DATE_FORMAT(PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(NOW(), '%Y-%m-%d')) >= 3 GROUP BY CONTRACT_ID,PLAN_LIST) LRP ON LRP.CONTRACT_ID = LCI.ID LEFT JOIN (SELECT CONTRACT_ID,PLAN_LIST,SUM(RENT) AS RENT,SUM(IFNULL(PENALTY, 0)) AS PENALTY,MAX(HIRE_DATE) AS HIRE_DATE FROM LC_RENT_INCOME GROUP BY CONTRACT_ID,PLAN_LIST) LRI ON LRI.CONTRACT_ID = LRP.CONTRACT_ID AND LRI.PLAN_LIST = LRP.PLAN_LIST WHERE WUI.BINDING_STATUS = 'Y' AND IFNULL(WUI.ATTENTION_STATUS,'Y')<>'N' AND DI.DISTRIBUTOR_NAME<>'辉煌国际融资租赁(天津)有限公司' AND (IFNULL(LRP.RENT, 0)+ ROUND(IFNULL(getRentPenalty3(LRP.PAYMENT_NUMBER,LRP.PLAN_LIST,IFNULL(LRI.HIRE_DATE,DATE_FORMAT(NOW(), '%y/%m/%d'))),0),2)- IFNULL(LRI.RENT, 0) - IFNULL(LRI.PENALTY, 0)) > 0 AND NOT EXISTS (SELECT 1 FROM WECHAT_MESSAGE_RECORD WHERE OPENID = WUI.OPENID AND SEND_TYPE = '2' AND CONTRACT_NUMBER = LCI.CONTRACT_NUMBER AND PLAN_LIST = LRP.PLAN_LIST AND SEND_STATUS = 'Y') ORDER BY LRP.PLAN_LIST LIMIT 0, 50000 ";
String selSql="SELECT CI.CUSTOMERNAME AS CUST_NAME,WUI.MOBILE_,WUI.CERTID_,LCI.CONTRACT_NUMBER,CI.CUSTOMER_NUM,LRP.PLAN_LIST,LCI.ID AS CONTRACT_ID,CI.CUSTOMERID,WUI.OPENID,CONCAT('/wechat/menu?type=payments&id=',LCI.CONTRACT_NUMBER) AS LINK,CONCAT(CONVERT(YEAR(LRP.PLAN_DATE), CHAR),'年',CONVERT(MONTH(LRP.PLAN_DATE), CHAR),'月',CONVERT(DAY(LRP.PLAN_DATE), CHAR),'日') AS KEYWORD1,CONCAT(ROUND((LRP.RENT + ROUND(IFNULL(getRentPenalty(LRP.PAYMENT_NUMBER,LRP.PLAN_LIST,DATE_FORMAT(NOW(), '%Y/%m/%d')),0),2)) - (IFNULL(LRI.RENT, 0) + IFNULL(LRI.PENALTY, 0)),2),'元') AS KEYWORD2,CONCAT((LRP.RENT - IFNULL(LRI.RENT, 0)),'元') AS KEYWORD3,CONCAT(ROUND(IFNULL(getRentPenalty(LRP.PAYMENT_NUMBER,LRP.PLAN_LIST,DATE_FORMAT(NOW(), '%Y/%m/%d')),0)-IFNULL(LRI.PENALTY, 0),2),'元') AS KEYWORD4 FROM WECHAT_USER_INFO WUI LEFT JOIN CUSTOMER_INFO CI ON CI.CERTID = WUI.CERTID_ LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CUSTOMER_ID = CI.CUSTOMERID AND LUL.IS_MAIN = 'Y' LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LUL.CONTRACT_ID AND LCI.CONTRACT_STATUS = '31' LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO=LCI.DISTRIBUTOR_ID LEFT JOIN (SELECT CONTRACT_ID,PLAN_LIST,MAX(PLAN_DATE) AS PLAN_DATE,MAX(PAYMENT_NUMBER) AS PAYMENT_NUMBER,SUM(RENT) AS RENT,SUM(IFNULL(PENALTY, 0)) AS PENALTY FROM LC_RENT_PLAN WHERE TIMESTAMPDIFF(DAY,DATE_FORMAT(PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(NOW(), '%Y-%m-%d')) >= 3 GROUP BY CONTRACT_ID,PLAN_LIST) LRP ON LRP.CONTRACT_ID = LCI.ID LEFT JOIN (SELECT CONTRACT_ID,PLAN_LIST,SUM(RENT) AS RENT,SUM(IFNULL(PENALTY, 0)) AS PENALTY,MAX(HIRE_DATE) AS HIRE_DATE FROM LC_RENT_INCOME GROUP BY CONTRACT_ID,PLAN_LIST) LRI ON LRI.CONTRACT_ID = LRP.CONTRACT_ID AND LRI.PLAN_LIST = LRP.PLAN_LIST WHERE WUI.BINDING_STATUS = 'Y' AND IFNULL(WUI.ATTENTION_STATUS,'Y')<>'N' AND DI.DISTRIBUTOR_NAME<>'辉煌国际融资租赁(天津)有限公司' AND (IFNULL(LRP.RENT, 0)- IFNULL(LRI.RENT, 0)) > 0 AND NOT EXISTS (SELECT 1 FROM WECHAT_MESSAGE_RECORD WHERE OPENID = WUI.OPENID AND SEND_TYPE = '2' AND CONTRACT_NUMBER = LCI.CONTRACT_NUMBER AND PLAN_LIST = LRP.PLAN_LIST AND SEND_STATUS = 'Y') ORDER BY LRP.PLAN_LIST LIMIT 0, 50000 ";
ASResultSet rs = Sqlca.getASResultSet(new SqlObject(selSql));
// 循环, 逐条发送
while(rs.next()) {
con++;
// 获取接口推送所需数据
uuid = UUID.randomUUID().toString().replace("-", "");
openid=rs.getString("openid");
link=rs.getString("link");
keyword1=rs.getString("keyword1");
keyword2=rs.getString("keyword2");
keyword3=rs.getString("keyword3");
keyword4=rs.getString("keyword4");
contract_number=rs.getString("contract_number");
customer_num=rs.getString("customer_num");
cust_name=rs.getString("cust_name");
mobile=rs.getString("mobile_");
plan_list=rs.getString("plan_list");
contract_id=rs.getString("contract_id");
customer_id=rs.getString("customerid");
// 查寻当条是否是历史失败的
selSql="SELECT openid FROM wechat_message_record WHERE OPENID='"+openid+"' AND CONTRACT_NUMBER='"+contract_number+"' AND PLAN_LIST='"+plan_list+"' AND SEND_TYPE='2'";
ASResultSet rs1 = Sqlca.getASResultSet(new SqlObject(selSql));
if(!rs1.next()) {
insertSql="INSERT INTO WECHAT_MESSAGE_RECORD(ID,BATCH,OPENID,CONTRACT_NUMBER,CUSTOMER_NUM,CUST_NAME,PLAN_LIST,MODILE,SEND_DATE,SEND_TYPE,SEND_CONTENT,SEND_STATUS,CONTRACT_ID,CUSTOMER_ID) VALUES('"+uuid+"',CONCAT('"+batch+"','-','"+con+"'),'"+openid+"','"+contract_number+"','"+customer_num+"','"+cust_name+"','"+plan_list+"','"+mobile+"',DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s'),'2',CONCAT('"+first+"','还款日期: ','"+keyword1+"',',还款金额: ','"+keyword2+"',',逾期金额: ','"+keyword3+"',',罚息金额: ','"+keyword4+"','','"+remark+"'),'N','"+contract_id+"','"+customer_id+"')";
Sqlca.executeSQL(new SqlObject(insertSql));
}
try {
msgid = WechatMessagePush.WechatPush(openid,link,type,first,keyword1,keyword2,keyword3,keyword4,remark);
System.out.println(con);
} catch (Exception e) {
result="推送失败";
e.printStackTrace();
}
// 成功改状态, 失败改时间
if(msgid!=null) {
updSql="UPDATE wechat_message_record SET MSGID='"+msgid+"',SEND_DATE=DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s'),SEND_STATUS='Y' WHERE OPENID='"+openid+"' AND CONTRACT_NUMBER='"+contract_number+"' AND PLAN_LIST='"+plan_list+"' AND SEND_TYPE='2'";
Sqlca.executeSQL(new SqlObject(updSql));
}else {
result="推送失败";
updSql="UPDATE wechat_message_record SET SEND_DATE=DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s'),SEND_STATUS='N' WHERE OPENID='"+openid+"' AND CONTRACT_NUMBER='"+contract_number+"' AND PLAN_LIST='"+plan_list+"' AND SEND_TYPE='2'";
Sqlca.executeSQL(new SqlObject(updSql));
}
}
return result+String.valueOf(con);
}
/**
* 3: 调用消息推送接口
*/
public synchronized static String WechatPush(String openid,String link,String type,String first,String keyword1,String keyword2,String keyword3,String keyword4,String remark) throws Exception {
String strURL = WechatPropertiesUtil.getConfigValue("WechatURL");
URL url = new URL(strURL);
HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
httpConn.setDoOutput(true);
httpConn.setDoInput(true);
httpConn.setRequestProperty("Content-Type", "application/json");
httpConn.setRequestMethod("POST");
httpConn.connect();
OutputStreamWriter out = new OutputStreamWriter(httpConn.getOutputStream(), "UTF-8");
// 发送请求参数
JSONObject json = new JSONObject();
json.put("openid", openid);// 微信的uuid
json.put("type", type);// 推送类型
json.put("link", link);// 推送详情的连接,绑定成功的推送参数为空
JSONObject data = new JSONObject();
data.put("first", first);// 推送的头部
data.put("keyword1", keyword1);// 关键字1
data.put("keyword2", keyword2);// 关键字2
data.put("keyword3", keyword3);// 关键字3
data.put("keyword4", keyword4);// 关键字4
data.put("remark", remark);// 备注
json.put("data", data);
out.write(json.toString());
out.flush();
out.close();
BufferedReader reader = null;
try {
reader = new BufferedReader(new InputStreamReader(httpConn.getInputStream()));
} catch (Exception e) {
e.printStackTrace();
logger.info("<<<<<<<<<<<<<<<获取回执信息失败>>>>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<获取回执信息失败>>>>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<获取回执信息失败>>>>>>>>>>>>>>>>>>>");
throw new Exception("推送失败!");
}
String line;
StringBuffer buffer = new StringBuffer();
while ((line = reader.readLine()) != null) {
buffer.append(line);
}
reader.close();
httpConn.disconnect();
logger.info("微信接口返回信息" + buffer.toString());
JSONObject resultjson = JSONObject.parseObject(buffer.toString());
String msgid = null;
if (resultjson.get("errcode").toString().equals("0")) {// 推送成功
msgid = resultjson.get("msgid").toString();
} else {// 推送失败
throw new Exception("推送失败");
}
return msgid;
}
}