one(array('mid' => $mid)); if ($merchant) { $per = $merchant['per']; if (!$per) { $yspay = Dever::db('pay/yspay')->one(array('account_id' => $merchant['account_id'])); if ($yspay && $yspay['per']) { $per = $yspay['per']; } } if (!$per || $per <= 0) { $per = 0; } else { $per = $per/100; } $data['merchant_id'] = $merchant['id']; $data['order_num'] = $info['merOrderId']; $data['source_order_num'] = $order_id; $data['cash'] = $info['amount']; $data['fz_cash'] = round($data['cash']*$per, 2); $data['hf_cash'] = round($data['cash'] - $data['fz_cash'], 2); $data['status'] = 1; $id = Dever::db('pay/yspay_cash')->insert($data); return $id; } return false; } # 修改状态 public function up($order_id, $status = 2) { $where['source_order_num'] = $order_id; $info = Dever::db('pay/yspay_cash')->find($where); if ($info) { $update = array('status' => $status, 'where_id' => $info['id']); if ($status == 3) { # 开始分账和划付 $state = $this->tixian($info); if ($state != 'ok') { return false; } $update['rdate'] = time(); } $state = Dever::db('pay/yspay_cash')->update($update); if ($state) { if ($status == 3) { $total = Dever::db('pay/yspay_cash')->getTotal(array('status' => 3, 'merchant_id' => $info['merchant_id'])); if ($total) { Dever::db('pay/yspay_merchant')->update(array('where_id' => $info['merchant_id'], 'cash' => $total['cash'], 'hf_cash' => $total['hf_cash'], 'fz_cash' => $total['fz_cash'])); } } return $state; } } return false; } private function tixian($info) { $merchant = Dever::db('pay/yspay_merchant')->one($info['merchant_id']); if ($merchant) { $config = Dever::db('pay/yspay')->one(array('account_id' => $merchant['account_id'])); if ($config) { return Dever::load('pay/yspay/multi')->huafu($config, $merchant, $info); } } return false; } # 定时获取总额 }