java集成微信原路退款功能

java集成微信原路退款功能

 * 注意,微信原路退款需要操作证书,操作证书可以放在项目中,也可以放在远程服务器
     /****
	 * @param transactionID  微信订单号,就是微信支付的流水号
	 * @param outTradeNo     退款订单的订单号 ,也就是交易记录的主键
	 * @param totalFee       订单金额
	 * @param refundFee      退款金额,必须小于或等于用户实际支付的金额
	 * @param outRefundNo    订单退款的单号,也就是订单的主键
	 * @param request
	 * @param response
	 * @return   success 退款成功   error 退款失败
	 * @throws Exception
	 */
	public static String weixinRefund(String transactionID,String outTradeNo,String totalFee,String  refundFee,String outRefundNo,String appVersion,HttpServletRequest request,HttpServletResponse response) throws Exception {
        //获得微信退款操作证书当前目录
        String path =request.getSession().getServletContext().getRealPath("/");

        log.info("当前未处理微信退款买家实际支付金额展示:"+totalFee);
     
        RefundReqData  refundData= new RefundReqData();
        String   refundXml=refundData.RefundReqData(transactionID, outTradeNo, outRefundNo, new BigDecimal(totalFee).multiply(new BigDecimal(100)).intValue(), new BigDecimal(refundFee).multiply(new BigDecimal(100)).intValue(),appVersion,request, response);
        log.info("微信退款请求结果xml展示:"+refundXml);
        log.info("当前未处理微信退款买家实际支付金额转int类型展示:"+new BigDecimal(totalFee).multiply(new BigDecimal(100)).intValue());
        try {
        	WeixinRefundRequest refundRequest = new WeixinRefundRequest();
            String result = refundRequest.httpsRequest("https://api.mch.weixin.qq.com/secapi/pay/refund", refundXml, path,appVersion);
            log.info("微信退款返回结果:"+result);
            Map<String,String> getMap = WeixinMessage.parseXml(new String(result.toString().getBytes(), "utf-8"));
            if("SUCCESS".equals(getMap.get("result_code"))){ 
            	 log.info("微信订单退款原路返回成功!");
                return "success";   //退款成功
            }else{
            	 log.info("微信订单退款原路返回失败了呜呜呜!");
                //返回错误描述
                return "error";    //退款失败
            }
        }catch(Exception e){
        	 log.info("微信订单退款原路返回失败了呜呜呜!");
            e.printStackTrace();
            return "error";       //退款失败
        }
    }

    *  以上所有用到的微信相关工具类都可以去官方网站下载
发布了11 篇原创文章 · 获赞 7 · 访问量 5041

猜你喜欢

转载自blog.csdn.net/rg201612/article/details/95192833
今日推荐