protected function processDeposition(PayoutAPI $api, PayoutTask $task, PayoutDeposition $deposition) { $depositionParams = new DepositionRequestParams($task->agentId, $deposition->clientOrderId, 'makeDeposition'); $depositionParams->amount = $deposition->amount; $depositionParams->dstAccount = $deposition->dstAccount; $depositionParams->currency = $deposition->currency; $depositionParams->contract = $task->contract; if ($deposition->type == PayoutDeposition::TYPE_MOBILE) { $paymentParams = new MobilePaymentParams(); $paymentParams->operatorCode = $deposition->phoneOperatorCode; $paymentParams->phoneNumber = $deposition->phoneNumber; $depositionParams->setPaymentParams($paymentParams); } elseif ($deposition->type == PayoutDeposition::TYPE_BANK_CARD) { $paymentParams = new BankCardPaymentParams(); $paymentParams->cardSynonim = $deposition->cardSynonim; $paymentParams->lastName = $deposition->payerLastName; $paymentParams->firstName = $deposition->payerFirstName; $paymentParams->middleName = $deposition->payerMiddleName; $paymentParams->birthDate = $deposition->payerBirthDate; $paymentParams->birthPlace = $deposition->payerBirthPlace; $paymentParams->address = $deposition->payerAddress; $paymentParams->city = $deposition->payerCity; $paymentParams->country = $deposition->payerCountry; $paymentParams->postcode = $deposition->payerPostcode; $paymentParams->docNumber = $deposition->payerDocNumber; $paymentParams->docIssueDate = $deposition->payerDocIssueDate; $paymentParams->docIssuedBy = $deposition->payerDocIssuedBy; $paymentParams->smsPhoneNumber = $deposition->smsPhoneNumber; $depositionParams->setPaymentParams($paymentParams); } $response = $api->makeDeposition($depositionParams); switch (intval($response['status'])) { case PayoutAPI::REQ_STATUS_SUCCESS: $deposition->status = PayoutDeposition::STATUS_DONE; break; case PayoutAPI::REQ_STATUS_IN_PROGRESS: $deposition->status = PayoutDeposition::STATUS_IN_PROGRESS; break; case PayoutAPI::REQ_STATUS_REJECTED: $deposition->status = PayoutDeposition::STATUS_REJECTED; break; } if (in_array($deposition->status, array(PayoutDeposition::STATUS_DONE, PayoutDeposition::STATUS_REJECTED))) { $deposition->payerMiddleName = null; $deposition->payerBirthDate = null; $deposition->payerBirthPlace = null; $deposition->payerAddress = null; $deposition->payerCity = null; $deposition->payerCountry = null; $deposition->payerPostcode = null; $deposition->payerDocNumber = null; $deposition->payerDocIssueDate = null; $deposition->payerDocIssuedBy = null; } $deposition->error = $response['error']; $deposition->processedResponse = serialize($response); $deposition->save(); return $deposition; }