importcom.aone.app.common.wx.XMLUtils;importcom.aone.app.service.WxH5PayService;importio.swagger.annotations.Api;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.util.StringUtils;import org.springframework.web.bind.annotation.*;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjava.io.BufferedReader;importjava.util.HashMap;importjava.util.Map;
@RestController
@RequestMapping("h5pay")
@Api("H5支付")public classPayH5Controller {private static final Logger log = LoggerFactory.getLogger("PayH5Controller");
@AutowiredprivateWxH5PayService wxH5PayService;/*** H5支付统一下单
*@paramrequest
*@return*@throwsException*/@ResponseBody
@RequestMapping(value= "wxPay")public Map weixinPay(HttpServletRequest request) throwsException{
String type= request.getParameter("type");
String orderNo= request.getParameter("orderNo");
String money= request.getParameter("money");returnwxH5PayService.dounifiedOrder(type,orderNo, money,request);
}/*** H5微信支付异步结果通知
*@paramrequest
*@paramresponse
*@throwsException*/@RequestMapping(value= "notify")public void weixinPayNotify(HttpServletRequest request, HttpServletResponse response) throwsException {
BufferedReader reader=request.getReader();
String line= "";
Map map= newHashMap();
String xml= "";;
StringBuffer inputString= newStringBuffer();while ((line = reader.readLine()) != null) {
inputString.append(line);
}
request.getReader().close();
log.error("----接收到的报文---{}",inputString.toString());if(inputString.toString().length()>0){
map=XMLUtils.parseXmlToList(inputString.toString());
}else{
log.error("接受微信报文为空");
}
log.error("map={}",map);if(map!=null && "SUCCESS".equals(map.get("result_code"))){//成功的业务。。。
xml = "";
String type=map.get("attach").toString();
String orderNo=map.get("out_trade_no").toString();
log.error("订单号{}",map.get("out_trade_no"));log.error("其它必须参数{}",map.get("attach"));if(StringUtils.isEmpty(type)||StringUtils.isEmpty(orderNo)){
log.error("当前参数类型异常");
}else{//回调业务处理
}
}else{//失败的业务。。。
}//告诉微信端已经确认支付成功
response.getWriter().write(xml);
}
}