改进对退款赠款和报告退款总额的核实
作者: NyanKiyoshi创建于 2026年8月10日更新于 2026年8月11日
售出人应当拒收超过可退还金额的与退款有关的投入.
目前,后端可接受超过订单总额和收取金额的退款赠款(`Grant RefundCreate')。 虽然PSP拒绝,但销售商应适当确保退款不能超过限额
下列地点需要更新:
- https://GitHub.com/saleor/saleor/blob/d7fe298a4752dce158a20e70e91922d7bb22c17/saleor/graphql/pay/mutations/transaction request refund for granted refund.p#L107-L120 -- -- 当前核对将一笔批准的退款与
Transaction item.clear.cled value ' 相比较,但应在交易一行锁下使用剩余的可退还金额,包括现有的refund defending value ' 。 - https://GitHub.com/saleor/saleor/blob/d7fe298a4752dce158a20e70e91922d7bb22c1a7/saleor/graphql/order/mutations/order grant refund create.py#L253-L261 - 应对照订单/交易累计已发放的退款进行验证,而不仅仅是单项输入额.
- https://GitHub.com/saleor/saleor/blob/d7fe298a4752dce158a20e70e91922d7bb22c1a7/saleor/graphql/order/mutations/order grant refund update.py#L352-L356-ditto.
- https://GitHub.com/saleor/saleor/blob/d7fe298a4752dce158a20e70e91922d7bb22c1a7/saleor/pay/transaction time-calcuments.py#L173-L193 - 计算目前允许退款事件将"充值"降至零以下.
- https://GitHub.com/saleor/saleor/blob/d7fe298a4752dce158a20e70e91922d7bbb22c1a7/saleor/graphql/pay/mutations/transaction request action.py#L134-L157 - 应检查问题(
Transaction Action(ActionType:REFUND)'),包括设定为充值'和缺失锁的负值。 - https://GitHub.com/saleor/saleor/blob/d7fe298a4752dce158a20e70e91922d7bb22c17/saleor/graphql/pay/mutations/transaction/transaction L49-L63和https://GitHub.com/saleor/saleor/blob/d7fe198a4752dce158a20e70e912dbb22c1a7/saleor/graphql/pay/mutations/transaction/transaction update.py#L170-L175 - 这些应当检查太过.
范围:
- 增加验证,防止退款赠款超过应退/订单数额
- 增加确认,防止累计成功退款事件超过收取的数额;
- 确保正确获得锁
- 确保无效的退款状态不能驱动收取金额低于零
内容来源: saleor/saleor