public function testGetFormData() { $data = [TokenInterface::TOKEN => 'token', TokenInterface::PAYMENT_METHOD_TYPE => 'type', TokenInterface::CARD_TYPE => 'card type', TokenInterface::NUMBER => '4111 1111 1111 1111', TokenInterface::LAST_FOUR_DIGITS => '1111', TokenInterface::FIRST_SIX_DIGITS => '411111', TokenInterface::VERIFICATION_VALUE => 123, TokenInterface::MONTH => '04', TokenInterface::YEAR => '2019', TokenInterface::FIRST_NAME => 'first name', TokenInterface::LAST_NAME => 'last name', TokenInterface::FULL_NAME => 'full name', TokenInterface::COMPANY => 'company', TokenInterface::ADDRESS1 => 'address', TokenInterface::ADDRESS2 => 'address', TokenInterface::CITY => 'city', TokenInterface::STATE => 'state', TokenInterface::ZIP => 'zip', TokenInterface::COUNTRY => 'country', TokenInterface::PHONE => 'phone', TokenInterface::ELIGIBLE_FOR_CARD_UPDATER => true, TokenInterface::STORAGE_STATE => 'ready', TokenInterface::TEST => 'test', TokenInterface::FINGERPRINT => 'fingerprint', TokenInterface::CREATED_AT => '2016-12-12', TokenInterface::UPDATED_AT => '2016-12-12']; $expectedData = [TokenInterface::NUMBER => '4111 1111 1111 1111', TokenInterface::VERIFICATION_VALUE => 123, TokenInterface::MONTH => '04', TokenInterface::YEAR => '2019', TokenInterface::FIRST_NAME => 'first name', TokenInterface::LAST_NAME => 'last name', TokenInterface::COMPANY => 'company', TokenInterface::ADDRESS1 => 'address', TokenInterface::ADDRESS2 => 'address', TokenInterface::CITY => 'city', TokenInterface::STATE => 'state', TokenInterface::ZIP => 'zip', TokenInterface::COUNTRY => 'country', TokenInterface::PHONE => 'phone']; $this->token->importData($data); $this->assertEquals($expectedData, $this->token->getFormData()); }
/** * @param \SubscribePro\Service\Token\TokenInterface $token * @return \SubscribePro\Service\Token\TokenInterface * @throws \SubscribePro\Exception\EntityInvalidDataException * @throws \SubscribePro\Exception\HttpException */ public function saveToken(TokenInterface $token) { if (!$token->isValid()) { throw new EntityInvalidDataException('Not all required fields are set.'); } $response = $this->httpClient->post('/services/v1/vault/token.json', [self::API_NAME_TOKEN => $token->getFormData()]); return $this->retrieveItem($response, self::API_NAME_TOKEN, $token); }