|
@@ -52,13 +52,15 @@ class paymentLogic
|
|
|
$change_type = '';
|
|
|
// 计算运费+订单总额
|
|
|
$total_amount = floatval($order_info['order_amount']) + floatval($order_info['shipping_fee']);
|
|
|
- if (floatval($pd_amount) > floatval($total_amount)) {
|
|
|
- $order_info['pd_amount'] = floatval($total_amount); // 余额大于订单金额的情况
|
|
|
- $pd_amount = floatval($pd_amount) - floatval($order_info['pd_amount']);
|
|
|
+ if ((floatval($pd_amount) + floatval($order_info['pd_amount'])) > floatval($total_amount)) {
|
|
|
+ // 预存款增量, 当二次付款并使用红包的时候, 需要进行二次计算预存款
|
|
|
+ $increment_amount = floatval($total_amount) - floatval($order_info['pd_amount']);
|
|
|
+ $order_info['pd_amount'] += $increment_amount; // 余额大于订单金额的情况
|
|
|
+ $pd_amount = floatval($pd_amount) - floatval($increment_amount);
|
|
|
$change_type = 'order_pay';
|
|
|
} else { // 余额小于等于订单金额的情况, $pd_amount不能等于0
|
|
|
- $order_info['pd_amount'] = floatval($pd_amount);
|
|
|
- $pd_amount = 0;
|
|
|
+ $order_info['pd_amount'] += floatval($pd_amount);
|
|
|
+ $pd_amount = 0.0;
|
|
|
$change_type = 'order_freeze';
|
|
|
}
|
|
|
|