最近在进行微信退款时出现:“订单金额或退款金额与之前请求不一致,请核实后再试”
真奇怪,其他用户都能正常退款,为啥这个用户始终退不了款呢?
看了下源代码:$order['money'] * 100 为退款总金额,$order['money']为数据库decimal类型,保留2位小数。然后传入微信的接口,然后我们用的是EasyWechat组件,发现退款方法中,第4个参数为int类型:
public function byOutTradeNumber(string $number, string $refundNumber, int $totalFee, int $refundFee, array $optional = [])
{
return $this->refund($refundNumber, $totalFee, $refundFee, array_merge($optional, ['out_trade_no' => $number]));
}
于是就试了一下:'137.20' * 100 = 13720,对呀,没错呀,然后再int一下,结果变成了13719,我去,三个同事查了一下午,只有一个细心的同事才发现了这个问题。记录一下。
|