遇到的问题:个别退款出现 订单金额或退款金额与之前请求不一致,请核实后再试
解决方法:退款金额参数加上该函数 intval(strval($amount));
public function textWx()
{
$order_info = db('order_superior')->where(['id'=>1242])->find();
$order_info['amount_a'] = $order_info['amount'] * 100;
$order_info['amount_b'] = intval($order_info['amount'] * 100);
$order_info['amount_c'] = intval(strval($order_info['amount'] * 100));
dump($order_info);die();
}
输入的结果如下:
原因:php 浮点型运算丢失精度,float转换为int类型后导致最后一位数值对不上,所以需要intval(strval()) 转换金额数值
$result = $this->app->refund->byOutTradeNumber(
$order_info['order_sn'],
$s_order['refund_order_no'],
intval(strval($order_info['amount']*100)),
intval(strval($order_info['amount']*100)),
[
'refund_desc' => '订单退款',
//'notify_url' => '',//退款结果通知
]
);