第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > java 微信支付异步回调接口

java 微信支付异步回调接口

时间:2019-05-28 03:29:11

相关推荐

java 微信支付异步回调接口

1.微信支付异步回调接口

@SuppressWarnings("static-access")

@RequestMapping("callback")

@ResponseBody

public Object callback(HttpServletRequest request,HttpServletResponse response) throws Exception{

ResultBean result = new ResultBean();

String inputLine="";

String notityXml = "";

try {

while ((inputLine = request.getReader().readLine()) != null) {

notityXml += inputLine;

}

request.getReader().close();

} catch (Exception e) {

e.printStackTrace();

}

System.out.println("异步回调XML信息:"+notityXml);

if(!notityXml.isEmpty()){

//解析并读取统一下单中的参数信息

Map<String, Object> prepayMap = XmlUtil.getPrepayMapInfo(notityXml);

if(!prepayMap.isEmpty()){

String orderId = prepayMap.get("out_trade_no")+"";

String resCode=prepayMap.get("result_code")+"";

String returnCode=prepayMap.get("return_code")+"";

System.out.println("解析并读取统一下单中的参数信息:"+orderId+"==="+resCode+"==="+returnCode);

}

//回调中业务逻辑完毕

}else{

result.fillCode(ResultBeanCodeEnum.OPERA_FAIL);

}

}else{

result.fillCode(ResultBeanCodeEnum.OPERA_FAIL);

}

return result;

}

2.解析并读取统一下单中的参数信息工具类

//解析xml

public static Map<String, Object> getPrepayMapInfo(String Str) {

//解析并读取统一下单中的参数信息

//1.去掉前后的xml标签

String notityXml = Str.replaceAll("</?xml>", "");

System.out.println(notityXml);

//2.匹配一段一段这样的数据 <attach><![CDATA[支付测试]]></attach>

Pattern pattern = pile("<.*?/.*?>");

Matcher matcher = pattern.matcher(notityXml);

//3.配置是否包含<![CDATA[CNY]]> CDATA 包裹的数据

Pattern pattern2 = pile("!.*]");

Map<String, Object> mapInfo = new HashMap<>();

while(matcher.find()) {

//获取键

String key = matcher.group().replaceAll(".*/", "");

key = key.substring(0, key.length() - 1);

Matcher matcher2 = pattern2.matcher(matcher.group());

String value = matcher.group().replaceAll("</?.*?>", "");

//获取值

if(matcher2.find() && !value.equals("DATA")) {

value = matcher2.group().replaceAll("!.*\\[", "");

value = value.substring(0, value.length() - 2);

}

mapInfo.put(key, value);

}

return mapInfo;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。