支付宝退款接口分析与实现----springboot项目接入支付宝(五)

一、API介绍

springboot项目接入支付宝(一)

springboot项目接入支付宝(二)

springboot项目接入支付宝(三)

springboot项目接入支付宝(四)

官方API文档

通用场景

当交易发生之后一段时间内,由于买家或者卖家的原因需要退款时,卖家可以通过退款接口将支付款退还给买家,支付宝将在收到退款请求并且验证成功之后,按照退款规则将支付款按原路退到买家帐号上。 交易超过约定时间(签约时设置的可退款时间)的订单无法进行退款。 支付宝退款支持单笔交易分多次退款,多次退款需要提交原支付订单的订单号和设置不同的退款请求号。一笔退款失败后重新提交,要保证重试时退款请求号不能变更,防止该笔交易重复退款。 同一笔交易累计提交的退款金额不能超过原始交易总金额。

二、service

在这里插入图片描述

/**
    * @Description: refund 退款
    * @Param: [outTradeNo 订单编号, tradeNo 交易号, refundAmount 退款金额, outRequestNo 标识一次退款请求,同一笔交易多次退款需要保证唯一,如需部分退款,则此参数必传]
    * @return: java.lang.String
    * @Author: 皮蛋布丁
    * @Date: 2021/6/27 14:31
    */
    String refund(String outTradeNo,String tradeNo,String refundAmount,String outRequestNo);

三、service实现

在这里插入图片描述

@Override
    public String refund(String outTradeNo, String tradeNo, String refundAmount, String outRequestNo) {
        try {
            AlipayTradeRefundResponse response = Factory.Payment.Common()
                    .optional("trade_no", tradeNo)
                    .optional("out_request_no", outRequestNo)
                    .refund(outTradeNo, refundAmount);
            if (ResponseChecker.success(response)) {
                return response.getHttpBody();
            } else {
                log.error("退款调用失败,原因{}",response.getHttpBody());
            }
        } catch (Exception e) {
            log.error("退款调用发生异常,原因{}",e.getMessage());
        }
        return null;
    }

四、controller

在这里插入图片描述

/**
    * @Description: refund 退款
    * @Param: [outTradeNo 订单编号,
     *         tradeNo 交易号,
     *         refundAmount 退款金额,
     *         outRequestNo 标识一次退款请求,同一笔交易多次退款需要保证唯一,如需部分退款,则此参数必传
     *         ]
    * @return: java.lang.String
    * @Author: 皮蛋布丁
    * @Date: 2021/6/27 14:44
    */
    @PostMapping("/refund")
    public String refund(String outTradeNo,String tradeNo,String refundAmount,String outRequestNo) {
        return alipayService.refund(outTradeNo, tradeNo, refundAmount, outRequestNo);
    }

五、运行

1、查看账户余额

登录支付宝开放平台查看。
在这里插入图片描述

2、退款操作

在这里插入图片描述
在这里插入图片描述

3、复查账户余额

发现账户余额由原来的99998.80,变成了现在的99998.81元,退款成功!
在这里插入图片描述

注:能力有限,还请谅解,争取早日能够写出有质量的文章!

我是皮蛋布丁,一位爱吃皮蛋的热爱运动的废铁程序猿。

在这里插入图片描述

感谢各位大佬光临寒舍~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值