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

测试分期退款

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

参数 类型 是否必填 最大长度 描述 示例值
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

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2
leo

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

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

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

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

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

3年前 评论
puzzle9 3年前

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