微信支付——退款

目录

一、密钥

二、直接上代码

总结


前言

有了之前的微信支付,那退款肯定也是少不了的,有的客户支付后不想要或者买错后就肯定会申请退款,这时候就会用到这个退款功能

一、密钥

之前的支付用到的密钥,在退款这里同样会用到的,一般建议存放到自己项目的某个目录下,用的时候也方便,只需填写自己存放的路径就可以的。

二、直接上代码

单单是退款的话是相对较简单的,看着官方文档就可以写的,

@GetMapping("refund")
    public String refund(RefundInfoDto refundInfoDto) {

        String filePath ="自己的密钥路径";
        if (config == null) {
            config =
                    new RSAAutoCertificateConfig.Builder()
                            .merchantId(mchId)
                            .privateKeyFromPath(filePath)
                            .merchantSerialNumber(merchantSerialNumber)
                            .apiV3Key(apiV3Key)
                            .build();
        }
        // 构建service
        if (refundService == null) {
            refundService = new RefundService.Builder().config(config).build();
        }
        CreateRequest request = new CreateRequest();
        request.setOutTradeNo(refundInfoDto.getOutTradeNo());
        request.setOutRefundNo(refundInfoDto.getOutRefundNo());
        request.setReason(refundInfoDto.getReason());
        AmountReq amountReq = new AmountReq();

        //退款金额(这个金额必须是小于等于原订单金额的,可以分多次退款,但是不能超过原订单金额,根据自己的业务需求定)
        String length = AmountUnitConversionUtil.changeY2F(refundInfoDto.getRefundMoney().toString());
        Long refundMoney = Long.valueOf(length);

        //原订单金额
        String total = AmountUnitConversionUtil.changeY2F(refundInfoDto.getTotalMoney().toString());
        Long totalMoney = Long.valueOf(total);

        amountReq.setRefund(refundMoney);
        amountReq.setTotal(totalMoney);
        amountReq.setCurrency("CNY");
        request.setAmount(amountReq);
        request.setOutRefundNo(IdUtils.getUUID());
        Refund refund = refundService.create(request);
        System.out.println(refund.getStatus().toString());
        //发起退款
        return refund.getStatus().toString();
    }


总结

退款接口相对较简单,就没啥多说的,直接就上了代码,这里只是退款,根据自己的业务需求进行调用即可。有问题可以探讨!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值