getKuaifenChannelId(); if ($kuaifenChannelId != $ordersChannelId) { return; } $kuaifenId = UserVipExtendService::instance()->getUserKuaifenId($userId); if ($kuaifenId) { $data = [ 'orders_id' => $ordersId, 'user_id' => $userId, 'kuaifen_id' => $kuaifenId, 'book_id' => $bookId, 'out_trade_no' => $outTradeNo, 'money' => $money, 'createtime' => time(), 'updatetime' => time(), ]; $this->getOrderKuaifenModel()->insert($data); } } /** * 向快分app上报用户充值 * @param OrderObject $oOrder */ public function reportOrders(OrderObject $oOrder) { $kuaifenChannelId = $this->getKuaifenChannelId(); if ($oOrder->admin_id != $kuaifenChannelId) { return; } if ($oOrder->activity_id) { $bookId = 2; } elseif ($oOrder->book_id) { $bookId = $oOrder->book_id; } else { $bookId = 1; } $kuaifenOrder = $this->getOrderKuaifenModel()->where('orders_id', $oOrder->id)->find(); if (empty($kuaifenOrder)) { return; } $apiUrl = 'https://kf.subno.cn/api/reportIncome.php'; $params = [ 'cid' => $oOrder->id, 'uid' => $kuaifenOrder['kuaifen_id'], 'xsid' => $bookId, 'money' => $oOrder->money, 'seconds' => $oOrder->createtime, 'chargeTime' => date('Y-m-d H:i:s'), ]; ksort($params); $str = http_build_query($params); $str = $str . 'KbGyb9AG'; LogService::info('signOldStr:' . $str); $str = urldecode($str); $sign = md5($str); $params['sign'] = $sign; try { $client = new Http([ 'connect_timeout' => 10, 'timeout' => 30, 'http_errors' => true, //抛出异常 true是 false否 'verify' => false, //不验证ssl证书 ]); $result = $client->post($apiUrl, [RequestOptions::FORM_PARAMS => $params]); if ($result->getStatusCode() != '200') { LogService::error(sprintf('kuaifen report orders error! params:%s,result:%s', json_encode($params, JSON_UNESCAPED_UNICODE), json_encode(var_export($result, true), JSON_UNESCAPED_UNICODE))); } } catch (GuzzleException $e) { LogService::error(sprintf('kuaifen exception report orders error! params:%s,message:%s', json_encode($params, JSON_UNESCAPED_UNICODE), $e->getMessage())); LogService::error($e->getTraceAsString()); } $this->getOrderKuaifenModel()->where('orders_id', $oOrder->id)->update(['state' => 1, 'updatetime' => time()]); } public function getTotalIncomeByUser($kuaifenId, $beginTime, $endTime, $bookId) { $query = $this->getOrderKuaifenModel()->where('kuaifen_id', $kuaifenId)->whereBetween('createtime', "$beginTime, $endTime"); if (!empty($bookId)) { $query->where('book_id', $bookId); } $sumMoney = $query->sum('money'); return $sumMoney; } public function getTotalIncome($beginTime, $endTime, $bookId) { $query = $this->getOrderKuaifenModel()->whereBetween('createtime', "$beginTime, $endTime"); if (!empty($bookId)) { $query->where('book_id', $bookId); } $sumMoney = $query->sum('money'); return $sumMoney; } public function getOrdersKuaifen($ordersId) { $orders = $this->getOrderKuaifenModel()->where('orders_id', $ordersId)->find(); return $orders; } }