第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 微信支付统一下单支付结果回调

微信支付统一下单支付结果回调

时间:2023-12-21 22:50:31

相关推荐

微信支付统一下单支付结果回调

在用户支付完过后微信会调用我们给它的异步通知地址返回支付的结果,需要注意的是我们给的通知地址是可以进行外网访问的

我使用的一些工具类方法大多是从官方给的demo,下面是下载地址

https://pay./wiki/doc/api/native.php?chapter=11_1

好了上代码

@RequestMapping("/wechatpayment")@Transactionalpublic void wechatpayment(HttpServletRequest req, HttpServletResponse resp){//读取参数InputStream inputStream;StringBuffer sb=new StringBuffer();try {inputStream=req.getInputStream();String s ;BufferedReader br=new BufferedReader(new InputStreamReader(inputStream,"UTF-8"));while ((s=br.readLine())!=null) {sb.append(s);}br.close();inputStream.close();boolean verdict;Map<String, String> map;//将参数转换成mapmap= WXPayUtil.xmlToMap(sb.toString());//根据订单id查询订单信息Order order = orderService.selectOrderId(map.get("out_trade_no"));//判断是否处理过该订单信息//已经处理过直接返回成功的消息给微信String xml=null;if (order.getStatus().equals("2")){xml="<xml>" +" <return_code><![CDATA[SUCCESS]]></return_code>" +" <return_msg><![CDATA[OK]]></return_msg>" +"</xml>";}else{//校验签名是否正确(使用HMACSHA256签名算法)verdict=WXPayUtil.isSignatureValid(map, WeixinPayConfig.key,WXPayConstants.SignType.HMACSHA256);Map<String,String> result=new HashMap<>();//判断微信返回的结果是否是交易成功if("SUCCESS".equals(map.get("return_code"))){//判断签名是否校验成功if (verdict) {BigDecimal total_fee=new BigDecimal(map.get("total_fee"));BigDecimal price = order.getPrice();System.out.println(pareTo(price));//判断与订单价格是否一致if (pareTo(price)==0){//交易成功/***修改订单状态* 进行成功后的业务逻辑*/xml="<xml>" +" <return_code><![CDATA[SUCCESS]]></return_code>" +" <return_msg><![CDATA[OK]]></return_msg>" +"</xml>";}else {xml="<xml>" +" <return_code><![CDATA[FAIL]]></return_code>" +" <return_msg><![CDATA[预订单金额不一致]]></return_msg>" +"</xml>";}}else {xml="<xml>" +" <return_code><![CDATA[FAIL]]></return_code>" +" <return_msg><![CDATA[签名失败]]></return_msg>" +"</xml>";}}else {//未收到微信成功状态码xml="<xml>" +" <return_code><![CDATA[FAIL]]></return_code>" +" <return_msg><![CDATA[未收到微信成功状态码]]></return_msg>" +"</xml>";}}PrintWriter out = resp.getWriter();out.print(xml);out.flush();out.close();} catch (Exception e) {e.printStackTrace();}}

微信的回调就这些了

微信统一下单 /weixin_45589505/article/details/105270203

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