You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将cancle_order_reason字段值替换退款transID的默认internal值

正确实现方案

错误方案根因

  • 方案1参数顺序传递错误:savePayment方法的第三个参数为$credit(固定传2标记退款),第四个参数才是$transID,你将退款原因放到第三个参数位置,第四个参数仍使用默认值internal,所以未生效。
  • 方案2破坏了方法兼容性:移除$transID的默认值后,所有原有只传3个参数的历史调用都会触发参数不足报错,影响其他业务逻辑。

最终修改代码

无需修改savePayment方法的原有定义,仅需调整add_refund_order方法内的savePayment调用逻辑即可:

// 原有代码不变
$amount = money_format('%(#4n',$this->post('credit_amount'));
// 新增读取退款原因,为空时兜底保留internal避免空值
$transID = trim($this->request('cancle_order_reason')) ?: 'internal';
// 按参数顺序传值,第3位固定传2标记退款,第4位传退款原因
$ak->getController()->savePayment($avID, $amount, 2, $transID);

修改后会自动将模态框提交的cancle_order_reason字段值写入交易表的transactionID字段,同时兼容所有现有业务逻辑。


内容的提问来源于stack exchange,提问作者Justyn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 04:48:01