Exemplo n.º 1
0
 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;
 }