支付宝退款报错:撤销或退款金额与订单金额不一致

测试分期退款

三期均为支付宝支付,均成功;
退款时,均报 金额不一致 问题;
按理说 退款金额与订单金额 肯定不一致
截取支付宝的参数说明,这里说了退款金额要小于订单金额,看起来并没有问题
很是疑惑,大家有这种问题吗?

参数 类型 是否必填 最大长度 描述 示例值
refund_amount Price 必选 9 需要退款的金额,该金额不能大于订单金额,单位为元,支持两位小数。 200.12

分期付款成功的 Json (以第三期为例子)

{
    "out_trade_no": "20200128194744161748_2",
    "total_amount": "204.35",
    "subject": "\\u652f\\u4ed8 \\u6155\\u9752\\u5546\\u57ce \\u7684\\u5206\\u671f\\u8ba2\\u5355\\uff1a20200128194744161748",
    "product_code": "FAST_INSTANT_TRADE_PAY"
}

退款请求的 JSON

{
    "trade_no": "2020012822001420251000116091",
    "refund_amount": "201.34",
    "out_trade_no": "30bf191c058340d0b9cb6f2cea60059e_2"
}

支付宝返回 JSON

{
    "code": "40004",
    "msg": "Business Failed",
    "sub_code": "ACQ.REFUND_AMT_NOT_EQUAL_TOTAL",
    "sub_msg": "撤销或退款金额与订单金额不一致",
    "out_trade_no": "20200128194744161748_2",
    "refund_fee": "0.00",
    "send_back_fee": "0.00"
}

环境

laravel 5.8
php 7.3

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2
leo

先检查一下这笔订单是不是之前已经退过款了

5年前 评论
ValleyUp (楼主) 5年前

out_request_no(退款请求号)参数详解 1、我们的退款接口可实现全额退款和部分退款,那么这两个功能怎么区分呢?

这个就要说到我们的关键参数:out_request_no 了,全额退款选填,部分退款必传。

2、out_request_no:标识一次退款请求,同一笔交易多次退款需要保证唯一。如需部分退款,则此参数必传。也可以理解为同一笔交易退款,退款金额小于付款金额是必须传这个参数,而且同一笔交易分多次退款的话,out_request_no每次传值都不能重复,必须保证唯一性。

4年前 评论
puzzle9 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!