/** * @dataProvider callbacks */ public function testCallback($post, $error, $xml, $message = null) { $connector = new Gateway($this->mock); $result = $connector->doParseCallback($post); if ($error) { $this->assertFalse($result, print_r($post, true)); } else { $this->assertTrue($result, print_r($post, true)); $this->assertEquals($post['bill_id'], $connector->getCallbackOrderId()); $this->assertEquals($post['amount'], $connector->getCallbackAmount()); $this->assertEquals($post['status'], $connector->getValueBillStatus()); $this->assertEquals($message, $connector->getError()); } $this->assertEquals($xml, $connector->getCallbackResponse()); }
/** * Проверка статуса возврат оплаты * * @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, 'Сообщение'); }