/** * 扣费 * @param $userId * @param $price * @param string $userAccountId * @param $note * @param $requestId * @return array */ public function chargeMoney($userId, $price, $userAccountId = "", $note, $requestId) { $result = array('status' => false, 'balance' => 0, 'msg' => ''); if (empty($userId) || empty($price) || empty($note) || empty($requestId)) { $result['msg'] = "参数不正确"; return $result; } if (empty($userAccountId)) { // 获取到支付账户Id $accountId = Bll_Fyk_Payment_User::getInstance()->getUserAccountId($userId); } else { $accountId = $userAccountId; } $count = 0; while (true) { if ($count >= 3) { break; } // 调用api,开始扣钱 $params = array('account' => $accountId, 'requestid' => $requestId, 'amount' => $price, 'note' => $note, 'addnote' => ""); $configPayment = Const_PaymentApp::FYK; $apiResult = Bll_Service_Payment::pay($configPayment, $params); if ($apiResult->isSucceeded()) { $transferInfo = $apiResult->getTransferInfo(); if ($apiResult['result'] == true) { $result['status'] = true; $result['balance'] = $apiResult['amount']; $result['msg'] = array('response' => $apiResult->getResponse(), 'transferInfo' => array('url' => $transferInfo['url'], 'content_type' => $transferInfo['content_type'], 'http_code' => $transferInfo['http_code'])); break; } else { $result['msg'] = array('response' => $apiResult->getResponse(), 'transferInfo' => array('url' => $transferInfo['url'], 'content_type' => $transferInfo['content_type'], 'http_code' => $transferInfo['http_code'])); $count++; } } else { $result['msg'] = '链接失败'; $count++; } } // 记录请求支付中心日志 $addLogArr = array('userId' => $userId, 'accountId' => $accountId, 'price' => $price, 'amount' => $result['balance'], 'requestId' => $requestId, 'status' => $result['status'] ? 2 : 1, 'msg' => json_encode($apiResult), 'createTime' => time()); Bll_Fyk_Payment_Log::getInstance()->insertPayRequestLog($addLogArr); return $result; }