/** * Проверка статуса возврата с несозданным возвратом */ 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']); }
/** * @param $order * @param $sumReturn * * @return bool */ public static function isAllowedSum($order, $sumReturn) { $returnsBefore = PayReturn::whereOrderId($order->id)->get(); $sumOldReturn = 0; foreach ($returnsBefore as $one) { $sumOldReturn += $one->sum; } $possibleReturn = $order->sum - $sumOldReturn; return $sumReturn <= $possibleReturn; }
public function changeStatus($newReturnStatus) { if ($this->status != $newReturnStatus) { $isUpdate = PayReturn::whereId($this->id)->whereStatus($this->status)->update(array('status' => $newReturnStatus)); if ($isUpdate) { return $newReturnStatus; } } return $this->status; }
/** * Проверка статуса возврат оплаты * * @param Order $order * * @return array */ public function statusReturn($order) { $payReturn = PayReturn::find($order->idLastReturn); if (!$payReturn) { return $this->resultMessage('Нет такого возврата'); } $gate = new Gateway($this->makeCurl()); $isSuccess = $gate->doRequestReturnStatus($payReturn->order_id, $payReturn->id); if (!$isSuccess) { return $this->resultMessage($gate->getError()); } $newReturnStatus = $payReturn->changeStatus($gate->getValuePayReturnStatus()); $message = 'Текущий статус возврата - ' . Dictionary::statusRussian($newReturnStatus); return $this->resultMessage($message, 'Сообщение'); }
/** * Создание нового заказа * * @return void */ public function testCreateOrderSuccess() { PayReturn::truncate(); $resp = $this->call('POST', Config::get('ff-qiwi-shop::testConfig.testUrl') . '/create', array('item' => 'qwerty', 'sum' => '123', 'tel' => '+123', 'comment' => 'test')); $this->assertContains('ok', $resp->original['result']); }