后台接受
InputStream inStream = request.getInputStream(); ByteArrayOutputStream outSteam = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len = 0; while ((len = inStream.read(buffer)) != -1) { outSteam.write(buffer, 0, len); } String resultxml = new String(outSteam.toByteArray(), "utf-8"); Map<String, String> wxRetMap = PayCommonUtil.doXMLParse(resultxml); outSteam.close(); inStream.close(); // 当返回的return_code为SUCCESS则回调成功 if ("SUCCESS".equalsIgnoreCase(wxRetMap.get("return_code"))) { // 通知微信收到回调 String resXml = "<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>"; BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream()); out.write(resXml.getBytes()); out.flush(); out.close(); /** * 执行业务代码 * */ try { ///保存流水业务 //附加数据 用户id json {user_id:'1'} String userId = wxRetMap.get("attach");//attach为xml标签名称 } catch (Exception e) { logger.error(e.getMessage()); e.printStackTrace(); } ------------------------------------------------------------------------xml----------------------------------------参数名称------------------------------------- <xml><appid><![CDATA[wx56232dd67c7e5a18]]></appid> <bank_type><![CDATA[wx56232dd67c7e5a18]]></appid> <bank_type><![CDATA[CFT]]></bank_type> <attach><![CDATA[{userId:2,orderId:20191122211726047}]]></attach> <cash_fee><![CDATA[1]]></cash_fee> <fee_type><![CDATA[CNY]]></fee_type> <is_subscribe><![CDATA[N]]></is_subscribe> <mch_id><![CDATA[1521497251]]></mch_id> <nonce_str><![CDATA[1546088296922]]></nonce_str> <openid><![CDATA[oEHJT1opJZLYBWssRlyjq9bSdnao]]></openid> <out_trade_no><![CDATA[10657298351779092719122609746693]]></out_trade_no> <result_code><![CDATA[SUCCESS]]></result_code> <return_code><![CDATA[SUCCESS]]></return_code> <sign><![CDATA[2EB71F6237E04C3DA4B1509A502E8F62]]></sign> <time_end><![CDATA[20181229205830]]></time_end> <total_fee>1</total_fee> <trade_type><![CDATA[MWEB]]></trade_type> <transaction_id><![CDATA[4200000224201812291041578058]]></transaction_id> </xml>