微信回调接口java返回true_java 微信支付异步回调接口

本文介绍了微信支付的异步回调接口实现,包括读取请求XML信息、解析参数并验证订单状态。使用Java工具类解析XML,提取统一下单中的关键参数如out_trade_no, result_code, return_code等,实现业务逻辑处理。" 51912372,5683432,图像去噪技术详解与应用,"['图像处理', '信号处理', '噪声抑制', '滤波算法', '图像分析']
摘要由CSDN通过智能技术生成

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()){

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

MapprepayMap = 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  MapgetPrepayMapInfo(String Str)  {

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

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

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

System.out.println(notityXml);

//2.匹配一段一段这样的数据

Pattern pattern = Pattern.compile("");

Matcher matcher = pattern.matcher(notityXml);

//3.配置是否包含 CDATA 包裹的数据

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

MapmapInfo = 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;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值