protected function _paySuccess($pay_id, $money, $alipay_trade_no) { // 验证是否重复操作 $payRow = M('loan_pay_alipay')->find($pay_id); if (!$payRow) { return '此交易记录不存在!'; } if ($payRow['is_action'] > 0) { return true; } if (bccomp($money, $payRow['money'], 2) != 0) { return '支付金额与记录不符!'; } if (!M('loan_pay_alipay')->where(['id' => $pay_id, 'is_action' => $payRow['is_action']])->setField('is_action', 1)) { return true; } $orderModel = new \Loan\Model\OrderModel(); $billModel = new \Loan\Model\BillModel(); $order_id = $payRow['order_id']; $month = $payRow['month']; $issue = $payRow['issue']; $money = $payRow['money']; $order = $orderModel->field('status')->where(['id' => $order_id])->field('status')->find(); if (!$order) { return '订单信息不存在!'; } if ($month == 1) { if ($issue == 0) { // 正常支付首付 if ($order['status'] == $orderModel::STATUS_CHECK_SUCCESS) { return true; } if ($orderModel->firstPay($order_id, 1, $alipay_trade_no)) { return true; } else { return $orderModel->getError(); } } else { // 正常支付指定账单 $bill = M('loan_bill')->field('issue,money_total,status')->where(['order_id' => $order_id, 'issue' => $issue])->find(); if (!$bill) { return '找不到此账单信息!'; } // 判断是否已经支付 if ($bill['status'] == 2) { return true; } if ($billModel->repay($order_id, $issue, $money, 1, $alipay_trade_no)) { return true; } else { return $billModel->getError(); } } } elseif ($month < 0) { return '未知month参数:' . $month; } else { if (!$billModel->repayAll($order_id, $month, $money, 1, $alipay_trade_no)) { return $billModel->getError(); } } return true; }