/** * @large */ public function testEnrollmentRequest() { $creditCard = new CreditCardData(); $creditCard->creditCardNumber = 4012000300002001; $creditCard->setExpirationDate('2019-01'); $creditCard->cardHolderName = 'John Doe'; $address = new BillingAddress('John', 'Doe', '550 South Winchester blvd.', 'P.O. Box 850', 'San Jose', '95128', 'CA', 'US', '+1(202)555-1234', '*****@*****.**'); $trustCenter = new TrustCenterData($address); $transaction = new Transaction(); $transaction->mode = Transaction::MODE_LIVE; $transaction->id = '9457892347623478'; $transaction->amount = new Amount(500); $transaction->currency = 'USD'; $transaction->countryCode = 'US'; $transaction->creditCardData = $creditCard; $transaction->trustCenterData = $trustCenter; $check = new EnrollmentCheck($transaction); $job = Job::createEnrollmentJob(self::SIGNATURE, $check); $request = new Request($job); /** @var WireCard $wireCard */ $wireCard = WireCard::createWithRequest($request); $body = $this->serializer->serialize($wireCard, 'xml'); $response = $this->client->send($this->createRequest($body)); $wireCard = $this->serializer->deserialize($response->getBody(true), 'Wirecard\\Element\\WireCard', 'xml'); $response = $wireCard->response; $this->assertTrue($response->isSuccessful()); $this->assertTrue($response->isRedirect()); $this->assertNotNull($response->getUrl()); $this->assertNotNull($response->getToken()); $this->assertNull($response->getMessage()); return $response; }
/** * @return Transaction */ public function build() { /** @var CreditCard $creditCard */ $creditCard = $this->request->getCard(); $creditCardData = new CreditCardData(); $creditCardData->creditCardNumber = $creditCard->getNumber(); $creditCardData->setExpirationDate($creditCard->getExpiryDate('Y-m')); $creditCardData->cardHolderName = $creditCard->getName(); $address = new BillingAddress($creditCard->getFirstName(), $creditCard->getLastName(), $creditCard->getAddress1(), $creditCard->getAddress2(), $creditCard->getCity(), $creditCard->getPostcode(), $creditCard->getState(), $creditCard->getCountry(), $creditCard->getPhone(), $creditCard->getEmail()); $trustCenter = new TrustCenterData($address); $transaction = new Transaction(); $transaction->id = $this->request->getTransactionId(); $transaction->amount = new Amount($this->request->getAmount()); $transaction->currency = $this->request->getCurrency(); $transaction->countryCode = $this->request->getCountryCode(); $transaction->creditCardData = $creditCardData; $transaction->trustCenterData = $trustCenter; return $transaction; }
/** * @dataProvider actionProvider */ public function testSerializeRequest($class, $method, $func) { $address = new BillingAddress('John', 'Doe', '550 South Winchester blvd.', 'P.O. Box 850', 'San Jose', '95128', 'CA', 'US', '+1(202)555-1234', '*****@*****.**'); $trust = new TrustCenterData($address); $card = new CreditCardData(); $card->creditCardNumber = '4200000000000000'; $card->setExpirationDate('2005-01-01'); $card->cardHolderName = 'John Doe'; $card->secureCode = '123'; $contactData = new ContactData('192.168.1.1', 'f-q04u9f'); $recurringTransaction = new RecurringTransaction(RecurringTransaction::TYPE_INITIAL); $transaction = new Transaction(); $transaction->mode = Transaction::MODE_DEMO; $transaction->id = '9457892347623478'; $transaction->guWid = 'C328668112556109425394'; $transaction->commerceType = 'MOTO'; $transaction->referenceId = 'FJQ845GFW4I7FGQ348FQ349Q34'; $transaction->startTime = new \DateTime('2005-12-12'); $transaction->endTime = new \DateTime('2005-12-13'); $transaction->paymentGroupId = '5FW9ERYG'; $transaction->salesDate = new \DateTime('2005-12-11'); $transaction->authorizationCode = 92381; $transaction->amount = new Amount(5); $transaction->currency = 'EUR'; $transaction->countryCode = 'DE'; $transaction->usage = 'OrderNo-FT345S71 Thank you'; $transaction->creditCardData = $card; $transaction->trustCenterData = $trust; $transaction->contactData = $contactData; $transaction->recurringTransaction = $recurringTransaction; $action = new $class($transaction); $action->id = 'authentication 1'; $job = call_user_func_array(['\\Wirecard\\Element\\Job', $method], ['0123456789ABCDEF', $action]); $job->id = 'job 1'; $request = new Request($job); $request = WireCard::createWithRequest($request); $xml = $this->serializer->serialize($request, 'xml'); $xmlString = file_get_contents(__DIR__ . "/data/Request.xml"); $xmlString = str_replace('FNC_CC_', 'FNC_CC_' . $func, $xmlString); $this->assertXmlStringEqualsXmlString($xmlString, $xml); }