Esempio n. 1
0
 /**
  * Принимает id счёта и отправляет задачу в очередь
  *
  * @param integer $bill_id
  */
 public static function jobBillToQueue($bill_id)
 {
     $bill = Bill::whereBillId($bill_id)->first();
     $merchant = $bill->merchant;
     $command = 'bill';
     $error = 0;
     $key = $merchant->key;
     $sign = '';
     if ('' != $key) {
         $signData = $bill->amount . '|' . $bill->bill_id . '|' . $bill->ccy . '|' . $command . '|' . $bill->comment . '|' . $error . '|' . $bill->prv_name . '|' . $bill->status . '|' . $bill->user;
         $sign = base64_encode(hash_hmac('sha1', $signData, $key));
     }
     Queue::connection('ff-qiwi-gate')->push('FintechFab\\QiwiGate\\Queue\\SendCallback', array('url' => $merchant->callback_url, 'merchant_id' => $merchant->id, 'merchant_pass' => $merchant->password, 'bill_id' => $bill->bill_id, 'status' => $bill->status, 'error' => $error, 'amount' => $bill->amount, 'user' => $bill->user, 'prv_name' => $bill->prv_name, 'ccy' => $bill->ccy, 'comment' => $bill->comment, 'command' => $command, 'sign' => $sign));
 }
Esempio n. 2
0
 /**
  * Делаает просроченным найденный счёт
  *
  * @param $bill_id
  *
  * @return Bill
  */
 public static function doExpire($bill_id)
 {
     $isUpdate = Bill::whereBillId($bill_id)->whereStatus(self::C_STATUS_WAITING)->update(array('status' => self::C_STATUS_EXPIRED));
     if ($isUpdate) {
         return true;
     }
     return false;
 }
Esempio n. 3
0
 /**
  * Принимает id счёта и отправляет задачу в очередь
  *
  * @param integer $bill_id
  */
 public static function emailToQueue($bill_id)
 {
     $bill = Bill::whereBillId($bill_id)->first();
     $merchant = $bill->merchant;
     Queue::connection('ff-qiwi-gate')->push('FintechFab\\QiwiGate\\Queue\\SendEmail', array('email' => $merchant->email, 'merchant_id' => $merchant->id, 'bill_id' => $bill->bill_id, 'status' => $bill->status, 'amount' => $bill->amount, 'user' => $bill->user, 'prv_name' => $bill->prv_name, 'ccy' => $bill->ccy, 'comment' => $bill->comment));
 }
 /**
  * Отмена счёта (или отправить на создание счёта)
  *
  * @param  int    $provider_id
  * @param  string $bill_id
  *
  * @return Response
  */
 public function update($provider_id, $bill_id)
 {
     //Если это создание - счёта отправляем на создание
     if ($this->isCreateBill()) {
         return $this->store($provider_id, $bill_id);
     }
     if ($this->isCancelBill()) {
         //Находим счёт
         $bill = Bill::getBill($bill_id, $provider_id);
         //Если не нашли - ошибка "Счёт не найден"
         if ($bill == null) {
             $data['error'] = Catalog::C_BILL_NOT_FOUND;
             return $this->responseFromGate($data);
         }
         //Если статус waiting - отменяем счёт, кидаем callback и отдаём счёт в ответе
         if ($bill->isWaiting() && $bill->doCancel($bill_id)) {
             $this->sendCallback($bill_id);
             $canceledBill = Bill::whereBillId($bill_id)->first();
             $data = $this->dataFromObj($canceledBill);
             $data['error'] = 0;
             return $this->responseFromGate($data);
         }
         $data['error'] = Catalog::C_BILL_NOT_FOUND;
         return $this->responseFromGate($data);
     }
     return null;
 }