Skip to content

Commit

Permalink
2.1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
dyd committed Jan 31, 2025
1 parent ed089e6 commit e033431
Show file tree
Hide file tree
Showing 48 changed files with 692 additions and 256 deletions.
29 changes: 29 additions & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
@@ -1,3 +1,32 @@
2.1.0
-----
**Features**:

* Added UCOF parameters support to the following transaction requests:
* Authorize 3D
* Sale 3D
* Init Recurring Sale 3D
* Added Funding Parameters support to the following transaction requests:
* Apple Pay
* Google Pay
* Updated Billing Transaction API with the latest gateway requirements
* Added Tokenized e-commerce support to the following transaction requests:
* Authorize
* Authorize 3D
* Sale
* Sale 3D
* Init Recurring Sale
* Init Recurring Sale 3D
* Updated Online Banking Payout transaction request with:
* Added Document ID parameter support
* Updated allowed Payment Types
* Added Recurring Type parameter support to SCA Checker API request and removed Recurring.

**Fixes**:

* Fixed PHP 8+ compatibility
* Fixed Acs Transaction ID accessor which is part of MPI params

2.0.5
-----
**Features**:
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.0.5
2.1.0
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "genesisgateway/genesis_php",
"description": "PHP Client for Genesis Payment Processing Gateway",
"version": "2.0.5",
"version": "2.1.0",
"license": "MIT",
"keywords": [
"3ds_v2",
Expand Down
7 changes: 6 additions & 1 deletion spec/Genesis/Api/Request/Financial/Cards/Authorize3DSpec.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,15 @@
namespace spec\Genesis\Api\Request\Financial\Cards;

use Genesis\Api\Request\Financial\Cards\Authorize3D;
use Genesis\Api\Traits\Request\Financial\UcofAttributes;
use PhpSpec\ObjectBehavior;
use spec\SharedExamples\Genesis\Api\Request\Financial\AccountOwnerAttributesExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\AllowedZeroAmount;
use spec\SharedExamples\Genesis\Api\Request\Financial\Business\BusinessAttributesExample;
use spec\SharedExamples\Genesis\Api\Request\Financial\Cards\Recurring\ManagedRecurringAttributesExample;
use spec\SharedExamples\Genesis\Api\Request\Financial\Cards\Recurring\RecurringCategoryAttributesExample;
use spec\SharedExamples\Genesis\Api\Request\Financial\Cards\Recurring\RecurringTypeAttributesExample;
use spec\SharedExamples\Genesis\Api\Request\Financial\Cards\SchemeTokenized3DExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\Cards\ThreedsV2DatesExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\CredentialOnFileAttributesExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\CreditCardAttributesExamples;
Expand All @@ -22,6 +24,7 @@
use spec\SharedExamples\Genesis\Api\Request\Financial\ScaAttributesExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\Threeds\V2\ThreedsV2AttributesExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\TokenizationAttributesExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\UcofAttributesExamples;
use spec\SharedExamples\Genesis\Api\Request\RequestExamples;
use spec\SharedExamples\Genesis\Api\Traits\Request\DocumentAttributesExample;

Expand All @@ -46,8 +49,10 @@ class Authorize3DSpec extends ObjectBehavior
use RequestExamples;
use ScaAttributesExamples;
use ThreedsV2AttributesExamples;
use TokenizationAttributesExamples;
use ThreedsV2DatesExamples;
use TokenizationAttributesExamples;
use UcofAttributesExamples;
use SchemeTokenized3DExamples;

public function it_is_initializable()
{
Expand Down
2 changes: 2 additions & 0 deletions spec/Genesis/Api/Request/Financial/Cards/AuthorizeSpec.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
use spec\SharedExamples\Genesis\Api\Request\Financial\Cards\Recurring\ManagedRecurringAttributesExample;
use spec\SharedExamples\Genesis\Api\Request\Financial\Cards\Recurring\RecurringCategoryAttributesExample;
use spec\SharedExamples\Genesis\Api\Request\Financial\Cards\Recurring\RecurringTypeAttributesExample;
use spec\SharedExamples\Genesis\Api\Request\Financial\Cards\SchemeTokenizedExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\CredentialOnFileAttributesExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\CreditCardAttributesExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\CryptoAttributesExamples;
Expand Down Expand Up @@ -44,6 +45,7 @@ class AuthorizeSpec extends ObjectBehavior
use ScaAttributesExamples;
use TokenizationAttributesExamples;
use UcofAttributesExamples;
use SchemeTokenizedExamples;

public function it_is_initializable()
{
Expand Down
12 changes: 12 additions & 0 deletions spec/Genesis/Api/Request/Financial/Cards/PayoutSpec.php
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,18 @@ public function it_should_fail_with_missing_state_for_us_ca_country()
$this->shouldThrow()->during('getDocument');
}

public function it_should_throw_when_set_scheme_tokenized()
{
$this->setRequestParameters();
$this->shouldThrow()->during('setSchemeTokenized');
}

public function it_should_throw_when_get_scheme_tokenized()
{
$this->setRequestParameters();
$this->shouldThrow()->during('getSchemeTokenized');
}

protected function setRequestParameters()
{
$faker = $this->getFaker();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,14 @@
namespace spec\Genesis\Api\Request\Financial\Cards\Recurring;

use Genesis\Api\Request\Financial\Cards\Recurring\InitRecurringSale3D;
use Genesis\Api\Traits\Request\Financial\UcofAttributes;
use PhpSpec\ObjectBehavior;
use spec\SharedExamples\Genesis\Api\Request\Financial\AccountOwnerAttributesExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\AllowedZeroAmount;
use spec\SharedExamples\Genesis\Api\Request\Financial\Business\BusinessAttributesExample;
use spec\SharedExamples\Genesis\Api\Request\Financial\Cards\Recurring\ManagedRecurringAttributesExample;
use spec\SharedExamples\Genesis\Api\Request\Financial\Cards\Recurring\RecurringCategoryAttributesExample;
use spec\SharedExamples\Genesis\Api\Request\Financial\Cards\SchemeTokenized3DExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\Cards\ThreedsV2DatesExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\CredentialOnFileAttributesExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\DescriptorAttributesExample;
Expand All @@ -19,6 +21,7 @@
use spec\SharedExamples\Genesis\Api\Request\Financial\ScaAttributesExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\Threeds\V2\ThreedsV2AttributesExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\TokenizationAttributesExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\UcofAttributesExamples;
use spec\SharedExamples\Genesis\Api\Request\RequestExamples;
use spec\SharedExamples\Genesis\Api\Traits\Request\DocumentAttributesExample;

Expand All @@ -39,8 +42,10 @@ class InitRecurringSale3DSpec extends ObjectBehavior
use RequestExamples;
use ScaAttributesExamples;
use ThreedsV2AttributesExamples;
use TokenizationAttributesExamples;
use ThreedsV2DatesExamples;
use TokenizationAttributesExamples;
use UcofAttributesExamples;
use SchemeTokenized3DExamples;

public function it_is_initializable()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
use spec\SharedExamples\Genesis\Api\Request\Financial\Business\BusinessAttributesExample;
use spec\SharedExamples\Genesis\Api\Request\Financial\Cards\Recurring\ManagedRecurringAttributesExample;
use spec\SharedExamples\Genesis\Api\Request\Financial\Cards\Recurring\RecurringCategoryAttributesExample;
use spec\SharedExamples\Genesis\Api\Request\Financial\Cards\SchemeTokenizedExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\CredentialOnFileAttributesExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\DescriptorAttributesExample;
use spec\SharedExamples\Genesis\Api\Request\Financial\FundingAttributesExamples;
Expand All @@ -33,6 +34,7 @@ class InitRecurringSaleSpec extends ObjectBehavior
use RecurringCategoryAttributesExample;
use RequestExamples;
use TokenizationAttributesExamples;
use SchemeTokenizedExamples;

public function it_is_initializable()
{
Expand Down
7 changes: 6 additions & 1 deletion spec/Genesis/Api/Request/Financial/Cards/Sale3DSpec.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,15 @@
namespace spec\Genesis\Api\Request\Financial\Cards;

use Genesis\Api\Request\Financial\Cards\Sale3D;
use Genesis\Api\Traits\Request\Financial\UcofAttributes;
use PhpSpec\ObjectBehavior;
use spec\SharedExamples\Genesis\Api\Request\Financial\AccountOwnerAttributesExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\AllowedZeroAmount;
use spec\SharedExamples\Genesis\Api\Request\Financial\Business\BusinessAttributesExample;
use spec\SharedExamples\Genesis\Api\Request\Financial\Cards\Recurring\ManagedRecurringAttributesExample;
use spec\SharedExamples\Genesis\Api\Request\Financial\Cards\Recurring\RecurringCategoryAttributesExample;
use spec\SharedExamples\Genesis\Api\Request\Financial\Cards\Recurring\RecurringTypeAttributesExample;
use spec\SharedExamples\Genesis\Api\Request\Financial\Cards\SchemeTokenized3DExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\Cards\ThreedsV2DatesExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\CredentialOnFileAttributesExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\CreditCardAttributesExamples;
Expand All @@ -22,6 +24,7 @@
use spec\SharedExamples\Genesis\Api\Request\Financial\ScaAttributesExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\Threeds\V2\ThreedsV2AttributesExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\TokenizationAttributesExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\UcofAttributesExamples;
use spec\SharedExamples\Genesis\Api\Request\RequestExamples;
use spec\SharedExamples\Genesis\Api\Traits\Request\DocumentAttributesExample;

Expand All @@ -45,8 +48,10 @@ class Sale3DSpec extends ObjectBehavior
use RequestExamples;
use ScaAttributesExamples;
use ThreedsV2AttributesExamples;
use TokenizationAttributesExamples;
use ThreedsV2DatesExamples;
use TokenizationAttributesExamples;
use UcofAttributesExamples;
use SchemeTokenized3DExamples;

public function it_is_initializable()
{
Expand Down
2 changes: 2 additions & 0 deletions spec/Genesis/Api/Request/Financial/Cards/SaleSpec.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
use spec\SharedExamples\Genesis\Api\Request\Financial\Cards\Recurring\ManagedRecurringAttributesExample;
use spec\SharedExamples\Genesis\Api\Request\Financial\Cards\Recurring\RecurringCategoryAttributesExample;
use spec\SharedExamples\Genesis\Api\Request\Financial\Cards\Recurring\RecurringTypeAttributesExample;
use spec\SharedExamples\Genesis\Api\Request\Financial\Cards\SchemeTokenizedExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\CredentialOnFileAttributesExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\CreditCardAttributesExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\CryptoAttributesExamples;
Expand Down Expand Up @@ -44,6 +45,7 @@ class SaleSpec extends ObjectBehavior
use ScaAttributesExamples;
use TokenizationAttributesExamples;
use UcofAttributesExamples;
use SchemeTokenizedExamples;

public function it_is_initializable()
{
Expand Down
4 changes: 3 additions & 1 deletion spec/Genesis/Api/Request/Financial/Mobile/ApplePaySpec.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
use spec\SharedExamples\Genesis\Api\Request\Financial\Cards\Recurring\RecurringTypeAttributesExample;
use spec\SharedExamples\Genesis\Api\Request\Financial\CryptoAttributesExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\DescriptorAttributesExample;
use spec\SharedExamples\Genesis\Api\Request\Financial\FundingAttributesExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\NeighborhoodAttributesExamples;
use spec\SharedExamples\Genesis\Api\Request\RequestExamples;
use spec\SharedExamples\Genesis\Api\Traits\Request\DocumentAttributesExample;
Expand All @@ -23,9 +24,10 @@ class ApplePaySpec extends ObjectBehavior
use CryptoAttributesExamples;
use DescriptorAttributesExample;
use DocumentAttributesExample;
use FundingAttributesExamples;
use NeighborhoodAttributesExamples;
use RequestExamples;
use RecurringTypeAttributesExample;
use RequestExamples;

public function it_is_initializable()
{
Expand Down
4 changes: 3 additions & 1 deletion spec/Genesis/Api/Request/Financial/Mobile/GooglePaySpec.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
use spec\SharedExamples\Genesis\Api\Request\Financial\Cards\Recurring\RecurringTypeAttributesExample;
use spec\SharedExamples\Genesis\Api\Request\Financial\Cards\ThreedsV2DatesExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\DescriptorAttributesExample;
use spec\SharedExamples\Genesis\Api\Request\Financial\FundingAttributesExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\NeighborhoodAttributesExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\NotificationAttributesExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\Threeds\V2\ThreedsV2AttributesExamples;
Expand All @@ -23,12 +24,13 @@ class GooglePaySpec extends ObjectBehavior
use AsyncAttributesExample;
use DescriptorAttributesExample;
use DocumentAttributesExample;
use FundingAttributesExamples;
use NeighborhoodAttributesExamples;
use NotificationAttributesExamples;
use RecurringTypeAttributesExample;
use RequestExamples;
use ThreedsV2AttributesExamples;
use ThreedsV2DatesExamples;
use RecurringTypeAttributesExample;

public function is_it_initializable()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,13 @@
use spec\SharedExamples\Genesis\Api\Request\Financial\NeighborhoodAttributesExamples;
use spec\SharedExamples\Genesis\Api\Request\Financial\UcofAttributesExamples;
use spec\SharedExamples\Genesis\Api\Request\RequestExamples;
use spec\SharedExamples\Genesis\Api\Traits\Request\DocumentAttributesExample;
use spec\SharedExamples\Genesis\Api\Traits\Request\Financial\BirthDateAttributesExample;

class PayoutSpec extends ObjectBehavior
{
use BirthDateAttributesExample;
use DocumentAttributesExample;
use NeighborhoodAttributesExamples;
use RequestExamples;
use UcofAttributesExamples;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,22 @@ public function it_should_fail_when_missing_required_filters()
public function it_should_set_request_filters()
{
$this->setRequestParameters();
$this->setBillingStatementId(['123']);
$this->setBillingStatement(['123']);
$this->setStartDate('2024-05-01');
$this->setEndDate('2024-05-10');
$this->setEndDate('2024-05-08');

$this->shouldNotThrow()->during('getDocument');
}

public function it_should_throw_when_max_days_difference_with_invalid_values()
{
$this->setRequestParameters();
$this->setStartDate('2024-05-01');
$this->setEndDate('2024-05-09');

$this->shouldThrow(ErrorParameter::class)->during('getDocument');
}

public function it_should_fail_with_start_date_and_missing_end_date()
{
$this->setRequestParameters();
Expand All @@ -68,7 +77,7 @@ public function it_should_fail_with_invalid_number_of_billing_statement_ids()
$values = array_fill(0, 15, '100');

$this->setRequestParameters();
$this->setBillingStatementId($values);
$this->setBillingStatement($values);

$this->shouldThrow(ErrorParameter::class)->during('getDocument');
}
Expand Down Expand Up @@ -103,6 +112,38 @@ public function it_should_have_paging()
$this->getDocument()->shouldContain('paging {');
}

public function it_should_have_billing_statement_with_proper_format()
{
$this->setRequestParameters();
$this->setBillingStatement(['1', 2]);

$this->getDocument()->shouldContain(' billingStatement: [\"1\",\"2\"] }');
}

public function it_should_have_unique_id_with_proper_format()
{
$this->setRequestParameters();
$this->setUniqueId(['1', 2]);

$this->getDocument()->shouldContain(' uniqueId: [\"1\",\"2\"] }');
}

public function it_should_have_merchant_transaction_id_with_proper_format()
{
$this->setRequestParameters();
$this->setMerchantTransactionId(['1', 2]);

$this->getDocument()->shouldContain(' merchantTransactionId: [\"1\",\"2\"] }');
}

public function it_should_have_master_account_name_with_proper_format()
{
$this->setRequestParameters();
$this->setMasterAccountName(['Travis Pastrana']);

$this->getDocument()->shouldContain(' masterAccountName: [\"Travis Pastrana\"] }');
}

protected function setRequestParameters()
{
$this->setResponseFields($this->getResponseFieldsAllowedValues());
Expand All @@ -113,7 +154,7 @@ private function getOrderByFieldAllowedValues()
{
$faker = Faker::getInstance();

$values = ['billingStatementId', 'transactionDate', 'transactionCurrency', 'transactionAmount', 'exchangeRate',
$values = ['billingStatement', 'transactionDate', 'transactionCurrency', 'transactionAmount', 'exchangeRate',
'billingAmount', 'transactionFeeAmount', 'commissionPercent', 'commissionAmount', 'interchangeFee',
'region', 'settlementStatus'];

Expand All @@ -124,13 +165,15 @@ private function getResponseFieldsAllowedValues()
{
$faker = Faker::getInstance();

$values = ['uniqueId', 'billingStatementId', 'billingStatementDisplayId', 'transactionType',
'transactionDate', 'transactionCurrency', 'transactionAmount', 'exchangeRate', 'billingCurrency',
'billingAmount', 'transactionFeeCurrency', 'transactionFeeAmount', 'commissionAmount', 'commissionRuleId',
'transactionFeeChargedOnBillingStatementId', 'commissionPercent', 'interchangeFee', 'interchangeCurrency',
'isInterchangeplusplus', 'interchangeplusplusChargedOnBillingStatementId', 'schemeFee', 'vatAmount',
'vatRate', 'schemeFeeCurrency', 'standardDebitCardRate', 'gstAmount', 'gstRate', 'terminalId', 'region',
'settlementStatements', 'settlementDates', 'settlementStatus', 'merchantId', 'merchantName', 'valueDate'];
$values = ['id', 'uniqueId', 'billingStatement', 'arn', 'transactionType', 'transactionDate',
'transactionCurrency', 'transactionAmount', 'exchangeRate', 'billingCurrency', 'billingAmount',
'transactionFeeCurrency', 'transactionFeeAmount', 'transactionFeeChargedOnBillingStatement',
'commissionPercent', 'commissionAmount', 'interchangeFee', 'interchangeCurrency', 'isInterchangeplusplus',
'interchangeplusplusChargedOnBillingStatement', 'schemeFee', 'schemeFeeCurrency', 'standardDebitCardRate',
'gstAmount', 'gstRate', 'vatAmount', 'vatRate', 'terminalName', 'region', 'settlementBillingStatements',
'settlementDates', 'settlementStatus', 'merchantId', 'merchantName', 'merchantTransactionId',
'masterAccountName', 'valueDate', 'documentId', 'referenceId', 'authCode', 'paymentType', 'cardBrand',
'cardNumber', 'cardHolder', 'cardType', 'cardSubtype'];

return $faker->randomElements($values, 5);
}
Expand Down
Loading

0 comments on commit e033431

Please sign in to comment.