微信小程序退款

项目中抽出来的,改改就能用。

public HttpResult refundAfterSaleOrder(TCourseOrder courseOrder) throws WxPayException {
        if (courseRefund(courseOrder)){    //退款成功
            courseOrderLogRepository.save(TCourseOrderLog.builder() //记录订单操作日志
                    .orderId(courseOrder.getOrderId())
                    .createTime(new Date())
                    .gkId(courseOrder.getGkId())
                    .scUserId(courseOrder.getScUserId())
                    .courseType(courseOrder.getCourseType())
                    .remark("平台退款")
                    .delFlag(0)
                    .build());
            return HttpResult.ok();
        }else {
            return HttpResult.build(6002,"数据操作失败");
        }
    }
private boolean courseRefund(TCourseOrder courseOrder) {
        String reason = "平台退款";
        String moneyTmp = courseOrder.getPayMoney()
                .multiply(new BigDecimal("100")).stripTrailingZeros().toPlainString();
        Integer amountMoney = Integer.parseInt(moneyTmp);
        WxPayRefundRequest.WxPayRefundRequestBuilder builder = WxPayRefundRequest.newBuilder();
        WxPayRefundRequest refundRequest = builder
                .transactionId(courseOrder.getWxTransactionId())
                .outRefundNo(courseOrder.getOrderId())
                .totalFee(amountMoney)
                .refundFee(amountMoney)
                .refundDesc(reason).build();
        refundRequest.setSignType("MD5");
        //refundRequest.setNotifyUrl("https://*****/***/ListenDelCourseMarketRefund");  //监听退款回调通知
        try {
            WxStoreAndCoachPayConfiguration sc = new WxStoreAndCoachPayConfiguration();
            WxPayRefundResult wxPayRefundResult = sc.wxService().refund(refundRequest);
            if (wxPayRefundResult.getResultCode().equals("SUCCESS")) {
                //修改状态为退款中
                courseOrderRepository.updateRefundStatusByOrderId(courseOrder.getOrderId(),courseOrder.getWxRealPayAmount());
            }
            return true;
        } catch (WxPayException e) {
//            e.getStackTrace();
            e.printStackTrace();
            //log.debug(e.getCustomErrorMsg());
            return false;
        }

    }

1.需要使用依赖,需要的东西和小程序支付一样。(退款需要证书)
https://blog.csdn.net/qq_38314062/article/details/120222120?spm=1001.2014.3001.5501

 		<!--支付sdk依赖-->
        <dependency>
            <groupId>com.github.binarywang</groupId>
            <artifactId>wx-java-pay-spring-boot-starter</artifactId>
            <version>4.0.0</version>
        </dependency>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值