field('id,userid,orderid,amount,real_amount,status')->where(['orderid' => $orderid])->find(); if ($payInfo['status'] == 1 && $payInfo['real_amount'] == $real_amount) { return true; } if ($real_amount != '' && $payInfo['real_amount'] != $real_amount) { $result = false; //写入日志 log_message('订单编号:' . $orderid . '支付金额不一致,订单状态更新失败', 'error', LOG_PATH . '../paylog/'); } //待支付状态时 elseif ($payInfo['status'] == 0) { // 启动事务 Db::startTrans(); try { $memberCoinPayModel->where(['id' => $payInfo['id']])->update(['status' => 1, 'pay_time' => NOW_TIMESTAMP, 'callback_order' => $callback_order, 'currency'=> $currency]); $members = $membersModel->field('id,amount')->where('id', $payInfo['userid'])->find(); $coinData = [ 'userid' => $payInfo['userid'], 'orderid' => $payInfo['orderid'], 'start_amount' => $members['amount'], 'amount' => $payInfo['amount'], 'result_amount' => priceFormat($members['amount'] + $payInfo['amount']), 'type' => 1, 'remarks' => '平台币充值', 'create_time' => NOW_TIMESTAMP, ]; $memberCoinInfoModel = new MemberCoinInfo(); if (!$memberCoinInfoModel->insertGetId($coinData)) { Db::rollback(); return false; } if (!$membersModel->where('id', $payInfo['userid'])->update(['amount' => priceFormat($members['amount'] + $payInfo['amount'])])) { Db::rollback(); return false; } // 提交事务 Db::commit(); return true; } catch (\Exception $e) { // 回滚事务 Db::rollback(); //写入日志 log_message('订单编号:' . $orderid . '订单状态更新失败' . $e->getMessage(), 'error', LOG_PATH . '../paylog/'); } } return false; } }