public function build() { if ($this->request->getTransactionReference()) { $transaction = new Transaction(); $transaction->id = $this->request->getTransactionId(); $transaction->guWid = $this->request->getTransactionReference(); $transaction->creditCardData = new CreditCardData(); if ($this->request->getToken()) { $transaction->secure = Secure::createResponse($this->request->getToken()); } } else { $transaction = parent::build(); } /** @var CreditCard $creditCard */ $creditCard = $this->request->getCard(); $transaction->creditCardData->secureCode = $creditCard->getCvv(); return $transaction; }
/** * @depends testBankRequest * @large * @param array $data * @return string */ public function testPurchaseRequest(array $data) { $secure = Secure::createResponse($data['PaRes']); $creditCard = new CreditCardData(); $creditCard->secureCode = '001'; $transaction = new Transaction(); $transaction->id = '9457892347623478'; $transaction->guWid = $data['GuWid']; $transaction->creditCardData = $creditCard; $transaction->secure = $secure; $purchase = new Purchase($transaction); $job = Job::createPurchaseJob(self::SIGNATURE, $purchase); $request = new Request($job); $body = $this->serializer->serialize(WireCard::createWithRequest($request), 'xml'); $response = $this->client->send($this->createRequest($body)); /** @var WireCard $wireCard */ $wireCard = $this->serializer->deserialize($response->getBody(true), 'Wirecard\\Element\\WireCard', 'xml'); $response = $wireCard->response; $this->assertTrue($response->isSuccessful()); $this->assertFalse($response->isRedirect()); $this->assertNull($response->getMessage()); return $response->getProcessingGuWid(); }