Ejemplo n.º 1
0
 /**
  *  返回经纪人钱
  * @param $userId
  * @param $price
  * @param string $userAccountId
  * @param $addNode
  * @param $node
  * @param $requestId
  * @return array
  */
 public function payBackMoney($userId, $price, $userAccountId = "", $addNode, $node, $requestId)
 {
     $result = array('status' => false, 'msg' => '', 'balance' => 0);
     if (empty($userId) || empty($price) || 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('accountId' => $accountId, 'reqId' => $requestId, 'amount' => $price, 'addnote' => $addNode, 'note' => $node);
         $configPayment = Const_PaymentApp::FYK;
         $apiResult = Bll_Service_Payment::restitution($configPayment, $params);
         if ($apiResult->isSucceeded()) {
             $transferInfo = $apiResult->getTransferInfo();
             if ($apiResult['result'] == true) {
                 $result['status'] = true;
                 $balanceData = Bll_Fyk_Payment_Amount::getInstance()->getBalance($userId, $accountId);
                 if ($balanceData['status'] == true) {
                     $result['balance'] = $balanceData['balance'];
                 }
                 $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($result['msg']), 'createTime' => time());
     Bll_Fyk_Payment_Log::getInstance()->insertPayRequestLog($addLogArr);
     return $result;
 }