Esempio n. 1
0
 /**
  * Смена статуса заказа
  *
  * @param $newStatus
  */
 public function changeStatus($newStatus)
 {
     //Не меняем статус с "на возврате" на статус "оплачено"
     if ($this->status == self::C_ORDER_STATUS_RETURNING && $newStatus == self::C_ORDER_STATUS_PAID) {
         return;
     }
     if ($this->status != $newStatus) {
         Order::whereId($this->id)->whereStatus($this->status)->update(array('status' => $newStatus));
     }
     $order = Order::find($this->id);
     $this->status = $order->status;
 }
 /**
  * Проверка статуса возврата с несозданным возвратом
  */
 public function testShowStatusPayReturn()
 {
     App::bind('FintechFab\\QiwiSdk\\Curl', function () {
         $args = array(1, 'GET', null, 1);
         $this->mock->shouldReceive('request')->withArgs($args)->andReturn((object) array('response' => (object) array('result_code' => 0, 'refund' => (object) array('status' => 'processing'))));
         return $this->mock;
     });
     $order = Order::find(1);
     $order->idLastReturn = 1;
     $order->save();
     $payReturn = new PayReturn();
     $payReturn->create(array('order_id' => $order->id, 'sum' => 15, 'status' => 'onReturn'));
     $resp = $this->call('POST', Config::get('ff-qiwi-shop::testConfig.testUrl') . '/action/statusReturn', array('order_id' => '1'));
     $this->assertContains('Текущий статус возврата - на возврате', $resp->original['message']);
 }
Esempio n. 3
0
 /**
  * Обработка callback запроса
  *
  * @return string
  */
 public function processCallback()
 {
     $request = Request::header();
     Log::info('Пришёл запрос callback с такими заголовками ', $request);
     $provider = $this->getProvider();
     $oSettings = Setting::whereGateId($provider['login'])->first();
     $this->setConfigForGateway($oSettings);
     $requestParams = Input::all();
     Log::info('Получены параметры в qiwi-shop для обработки callback:', array('$requestParams' => $requestParams, '$provider' => $provider));
     $gate = new Gateway($this->makeCurl());
     if ($gate->doParseCallback($requestParams)) {
         $order = Order::find($gate->getCallbackOrderId());
         if (!$order) {
             $gate->createCallbackResponse(Gateway::C_BILL_NOT_FOUND);
             return $gate->doCallbackResponse();
         }
         $newStatus = $gate->getValueBillStatus();
         Log::info('Статусы заказов после обработки callback:', array('oldStatus' => $order->status, 'newStatus' => $newStatus));
         if ($order->status != $newStatus) {
             $order->status = $newStatus;
             $order->save();
         }
     }
     return $gate->doCallbackResponse();
 }