Skip to content

Commit

Permalink
Merge pull request #180 from gocardless/template-changes
Browse files Browse the repository at this point in the history
Changes from gocardless/gocardless-pro-php-template
  • Loading branch information
barrucadu authored Jan 10, 2024
2 parents 370a262 + d50163d commit 56c45d2
Show file tree
Hide file tree
Showing 29 changed files with 105 additions and 66 deletions.
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "gocardless/gocardless-pro",
"description": "GoCardless Pro PHP Client Library",
"version": "5.5.1",
"version": "5.6.0",
"keywords": [
"gocardless",
"direct debit",
Expand Down
4 changes: 2 additions & 2 deletions lib/Client.php
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ public function __construct($config)
'Content-Type' => 'application/json',
'Authorization' => "Bearer " . $access_token,
'GoCardless-Client-Library' => 'gocardless-pro-php',
'GoCardless-Client-Version' => '5.5.1',
'GoCardless-Client-Version' => '5.6.0',
'User-Agent' => $this->getUserAgent()
),
'http_errors' => false,
Expand Down Expand Up @@ -619,7 +619,7 @@ private function getUserAgent()
{
$curlinfo = curl_version();
$uagent = array();
$uagent[] = 'gocardless-pro-php/5.5.1';
$uagent[] = 'gocardless-pro-php/5.6.0';
$uagent[] = 'schema-version/2015-07-06';
if (defined('\GuzzleHttp\Client::MAJOR_VERSION')) {
$uagent[] = 'GuzzleHttp/' . \GuzzleHttp\Client::MAJOR_VERSION;
Expand Down
10 changes: 10 additions & 0 deletions lib/Resources/Mandate.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
* @property-read $links
* @property-read $metadata
* @property-read $next_possible_charge_date
* @property-read $next_possible_standard_ach_charge_date
* @property-read $payments_require_approval
* @property-read $reference
* @property-read $scheme
Expand Down Expand Up @@ -89,6 +90,15 @@ class Mandate extends BaseResource
*/
protected $next_possible_charge_date;

/**
* If this is an an ACH mandate, the earliest date that can be used as a
* `charge_date` on any newly created payment to be charged through standard
* ACH, rather than Faster ACH. This value will change over time.
*
* It is only present in the API response for ACH mandates.
*/
protected $next_possible_standard_ach_charge_date;

/**
* Boolean value showing whether payments and subscriptions under this
* mandate require approval via an automated email before being processed.
Expand Down
9 changes: 9 additions & 0 deletions lib/Resources/Payment.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
* @property-read $created_at
* @property-read $currency
* @property-read $description
* @property-read $faster_ach
* @property-read $fx
* @property-read $id
* @property-read $links
Expand Down Expand Up @@ -71,6 +72,14 @@ class Payment extends BaseResource
*/
protected $description;

/**
* This field indicates whether the ACH payment is processed through Faster
* ACH or standard ACH.
*
* It is only present in the API response for ACH payments.
*/
protected $faster_ach;

/**
*
*/
Expand Down
10 changes: 10 additions & 0 deletions tests/Integration/MandatesIntegrationTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ public function testMandatesCreate()
$this->assertEquals($body->links, $response->links);
$this->assertEquals($body->metadata, $response->metadata);
$this->assertEquals($body->next_possible_charge_date, $response->next_possible_charge_date);
$this->assertEquals($body->next_possible_standard_ach_charge_date, $response->next_possible_standard_ach_charge_date);
$this->assertEquals($body->payments_require_approval, $response->payments_require_approval);
$this->assertEquals($body->reference, $response->reference);
$this->assertEquals($body->scheme, $response->scheme);
Expand Down Expand Up @@ -74,6 +75,7 @@ public function testMandatesCreateWithIdempotencyConflict()
$this->assertEquals($body->links, $response->links);
$this->assertEquals($body->metadata, $response->metadata);
$this->assertEquals($body->next_possible_charge_date, $response->next_possible_charge_date);
$this->assertEquals($body->next_possible_standard_ach_charge_date, $response->next_possible_standard_ach_charge_date);
$this->assertEquals($body->payments_require_approval, $response->payments_require_approval);
$this->assertEquals($body->reference, $response->reference);
$this->assertEquals($body->scheme, $response->scheme);
Expand Down Expand Up @@ -143,6 +145,10 @@ public function testMandatesList()
$this->assertEquals($body[$num]->next_possible_charge_date, $record->next_possible_charge_date);
}

if (isset($body[$num]->next_possible_standard_ach_charge_date)) {
$this->assertEquals($body[$num]->next_possible_standard_ach_charge_date, $record->next_possible_standard_ach_charge_date);
}

if (isset($body[$num]->payments_require_approval)) {
$this->assertEquals($body[$num]->payments_require_approval, $record->payments_require_approval);
}
Expand Down Expand Up @@ -191,6 +197,7 @@ public function testMandatesGet()
$this->assertEquals($body->links, $response->links);
$this->assertEquals($body->metadata, $response->metadata);
$this->assertEquals($body->next_possible_charge_date, $response->next_possible_charge_date);
$this->assertEquals($body->next_possible_standard_ach_charge_date, $response->next_possible_standard_ach_charge_date);
$this->assertEquals($body->payments_require_approval, $response->payments_require_approval);
$this->assertEquals($body->reference, $response->reference);
$this->assertEquals($body->scheme, $response->scheme);
Expand Down Expand Up @@ -224,6 +231,7 @@ public function testMandatesUpdate()
$this->assertEquals($body->links, $response->links);
$this->assertEquals($body->metadata, $response->metadata);
$this->assertEquals($body->next_possible_charge_date, $response->next_possible_charge_date);
$this->assertEquals($body->next_possible_standard_ach_charge_date, $response->next_possible_standard_ach_charge_date);
$this->assertEquals($body->payments_require_approval, $response->payments_require_approval);
$this->assertEquals($body->reference, $response->reference);
$this->assertEquals($body->scheme, $response->scheme);
Expand Down Expand Up @@ -257,6 +265,7 @@ public function testMandatesCancel()
$this->assertEquals($body->links, $response->links);
$this->assertEquals($body->metadata, $response->metadata);
$this->assertEquals($body->next_possible_charge_date, $response->next_possible_charge_date);
$this->assertEquals($body->next_possible_standard_ach_charge_date, $response->next_possible_standard_ach_charge_date);
$this->assertEquals($body->payments_require_approval, $response->payments_require_approval);
$this->assertEquals($body->reference, $response->reference);
$this->assertEquals($body->scheme, $response->scheme);
Expand Down Expand Up @@ -290,6 +299,7 @@ public function testMandatesReinstate()
$this->assertEquals($body->links, $response->links);
$this->assertEquals($body->metadata, $response->metadata);
$this->assertEquals($body->next_possible_charge_date, $response->next_possible_charge_date);
$this->assertEquals($body->next_possible_standard_ach_charge_date, $response->next_possible_standard_ach_charge_date);
$this->assertEquals($body->payments_require_approval, $response->payments_require_approval);
$this->assertEquals($body->reference, $response->reference);
$this->assertEquals($body->scheme, $response->scheme);
Expand Down
10 changes: 10 additions & 0 deletions tests/Integration/PaymentsIntegrationTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ public function testPaymentsCreate()
$this->assertEquals($body->created_at, $response->created_at);
$this->assertEquals($body->currency, $response->currency);
$this->assertEquals($body->description, $response->description);
$this->assertEquals($body->faster_ach, $response->faster_ach);
$this->assertEquals($body->fx, $response->fx);
$this->assertEquals($body->id, $response->id);
$this->assertEquals($body->links, $response->links);
Expand Down Expand Up @@ -72,6 +73,7 @@ public function testPaymentsCreateWithIdempotencyConflict()
$this->assertEquals($body->created_at, $response->created_at);
$this->assertEquals($body->currency, $response->currency);
$this->assertEquals($body->description, $response->description);
$this->assertEquals($body->faster_ach, $response->faster_ach);
$this->assertEquals($body->fx, $response->fx);
$this->assertEquals($body->id, $response->id);
$this->assertEquals($body->links, $response->links);
Expand Down Expand Up @@ -135,6 +137,10 @@ public function testPaymentsList()
$this->assertEquals($body[$num]->description, $record->description);
}

if (isset($body[$num]->faster_ach)) {
$this->assertEquals($body[$num]->faster_ach, $record->faster_ach);
}

if (isset($body[$num]->fx)) {
$this->assertEquals($body[$num]->fx, $record->fx);
}
Expand Down Expand Up @@ -189,6 +195,7 @@ public function testPaymentsGet()
$this->assertEquals($body->created_at, $response->created_at);
$this->assertEquals($body->currency, $response->currency);
$this->assertEquals($body->description, $response->description);
$this->assertEquals($body->faster_ach, $response->faster_ach);
$this->assertEquals($body->fx, $response->fx);
$this->assertEquals($body->id, $response->id);
$this->assertEquals($body->links, $response->links);
Expand Down Expand Up @@ -222,6 +229,7 @@ public function testPaymentsUpdate()
$this->assertEquals($body->created_at, $response->created_at);
$this->assertEquals($body->currency, $response->currency);
$this->assertEquals($body->description, $response->description);
$this->assertEquals($body->faster_ach, $response->faster_ach);
$this->assertEquals($body->fx, $response->fx);
$this->assertEquals($body->id, $response->id);
$this->assertEquals($body->links, $response->links);
Expand Down Expand Up @@ -255,6 +263,7 @@ public function testPaymentsCancel()
$this->assertEquals($body->created_at, $response->created_at);
$this->assertEquals($body->currency, $response->currency);
$this->assertEquals($body->description, $response->description);
$this->assertEquals($body->faster_ach, $response->faster_ach);
$this->assertEquals($body->fx, $response->fx);
$this->assertEquals($body->id, $response->id);
$this->assertEquals($body->links, $response->links);
Expand Down Expand Up @@ -288,6 +297,7 @@ public function testPaymentsRetry()
$this->assertEquals($body->created_at, $response->created_at);
$this->assertEquals($body->currency, $response->currency);
$this->assertEquals($body->description, $response->description);
$this->assertEquals($body->faster_ach, $response->faster_ach);
$this->assertEquals($body->fx, $response->fx);
$this->assertEquals($body->id, $response->id);
$this->assertEquals($body->links, $response->links);
Expand Down
4 changes: 2 additions & 2 deletions tests/fixtures/bank_authorisations.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
"method": "POST",
"path_template": "/bank_authorisations",
"url_params": {},
"body": {"bank_authorisations":{"authorisation_type":"example authorisation_type 8081","authorised_at":"2020-01-01T12:00:00.000Z","created_at":"2024-01-08T10:29:03.568Z","expires_at":"2024-01-08T10:29:03.568Z","id":"BAU123","last_visited_at":"2020-01-01T12:00:00.000Z","links":{"billing_request":"BRQ123","institution":"monzo"},"qr_code_url":"https://pay.gocardless.com/obauth/BAU123/qr_code","redirect_uri":"https://my-website.com/abc/callback","url":"https://pay.gocardless.com/obauth/BAU123"}}
"body": {"bank_authorisations":{"authorisation_type":"example authorisation_type 8081","authorised_at":"2020-01-01T12:00:00.000Z","created_at":"2024-01-09T11:33:15.841Z","expires_at":"2024-01-09T11:33:15.841Z","id":"BAU123","last_visited_at":"2020-01-01T12:00:00.000Z","links":{"billing_request":"BRQ123","institution":"monzo"},"qr_code_url":"https://pay.gocardless.com/obauth/BAU123/qr_code","redirect_uri":"https://my-website.com/abc/callback","url":"https://pay.gocardless.com/obauth/BAU123"}}
},
"get": {
"method": "GET",
"path_template": "/bank_authorisations/:identity",
"url_params": {"identity": "BAU123"},
"body": {"bank_authorisations":{"authorisation_type":"example authorisation_type 7887","authorised_at":"2020-01-01T12:00:00.000Z","created_at":"2024-01-08T10:29:03.568Z","expires_at":"2024-01-08T10:29:03.568Z","id":"BAU123","last_visited_at":"2020-01-01T12:00:00.000Z","links":{"billing_request":"BRQ123","institution":"monzo"},"qr_code_url":"https://pay.gocardless.com/obauth/BAU123/qr_code","redirect_uri":"https://my-website.com/abc/callback","url":"https://pay.gocardless.com/obauth/BAU123"}}
"body": {"bank_authorisations":{"authorisation_type":"example authorisation_type 7887","authorised_at":"2020-01-01T12:00:00.000Z","created_at":"2024-01-09T11:33:15.841Z","expires_at":"2024-01-09T11:33:15.841Z","id":"BAU123","last_visited_at":"2020-01-01T12:00:00.000Z","links":{"billing_request":"BRQ123","institution":"monzo"},"qr_code_url":"https://pay.gocardless.com/obauth/BAU123/qr_code","redirect_uri":"https://my-website.com/abc/callback","url":"https://pay.gocardless.com/obauth/BAU123"}}
}
}

4 changes: 2 additions & 2 deletions tests/fixtures/billing_request_flows.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
"method": "POST",
"path_template": "/billing_request_flows",
"url_params": {},
"body": {"billing_request_flows":{"authorisation_url":"https://monzo.com/abc-123-things","auto_fulfil":false,"created_at":"2024-01-08T10:29:03.573Z","customer_details_captured":true,"exit_uri":"https://my-website.com/abc/callback","expires_at":"2024-01-08T10:29:03.573Z","id":"BRF123","language":"en","links":{"billing_request":"BRQ123"},"lock_bank_account":false,"lock_currency":true,"lock_customer_details":false,"prefilled_bank_account":{"account_type":"savings"},"prefilled_customer":{"address_line1":"221B Baker Street","address_line2":"Marylebone","address_line3":"City of Westminster","city":"London","company_name":"Hamilton Trading Ltd.","country_code":"GB","danish_identity_number":"220550-6218","email":"[email protected]","family_name":"Osborne","given_name":"Frank","postal_code":"NW1 6XE","region":"Greater London","swedish_identity_number":"556564-5404"},"redirect_uri":"https://my-website.com/abc/callback","session_token":"sesh_123","show_redirect_buttons":false,"show_success_redirect_button":false}}
"body": {"billing_request_flows":{"authorisation_url":"https://monzo.com/abc-123-things","auto_fulfil":false,"created_at":"2024-01-09T11:33:15.845Z","customer_details_captured":false,"exit_uri":"https://my-website.com/abc/callback","expires_at":"2024-01-09T11:33:15.845Z","id":"BRF123","language":"en","links":{"billing_request":"BRQ123"},"lock_bank_account":false,"lock_currency":true,"lock_customer_details":false,"prefilled_bank_account":{"account_type":"savings"},"prefilled_customer":{"address_line1":"221B Baker Street","address_line2":"Marylebone","address_line3":"City of Westminster","city":"London","company_name":"Hamilton Trading Ltd.","country_code":"GB","danish_identity_number":"220550-6218","email":"[email protected]","family_name":"Osborne","given_name":"Frank","postal_code":"NW1 6XE","region":"Greater London","swedish_identity_number":"556564-5404"},"redirect_uri":"https://my-website.com/abc/callback","session_token":"sesh_123","show_redirect_buttons":false,"show_success_redirect_button":true}}
},
"initialise": {
"method": "POST",
"path_template": "/billing_request_flows/:identity/actions/initialise",
"url_params": {"identity": "BRF123"},
"body": {"billing_request_flows":{"authorisation_url":"https://monzo.com/abc-123-things","auto_fulfil":true,"created_at":"2024-01-08T10:29:03.573Z","customer_details_captured":false,"exit_uri":"https://my-website.com/abc/callback","expires_at":"2024-01-08T10:29:03.573Z","id":"BRF123","language":"en","links":{"billing_request":"BRQ123"},"lock_bank_account":true,"lock_currency":true,"lock_customer_details":true,"prefilled_bank_account":{"account_type":"savings"},"prefilled_customer":{"address_line1":"221B Baker Street","address_line2":"Marylebone","address_line3":"City of Westminster","city":"London","company_name":"Hamilton Trading Ltd.","country_code":"GB","danish_identity_number":"220550-6218","email":"[email protected]","family_name":"Osborne","given_name":"Frank","postal_code":"NW1 6XE","region":"Greater London","swedish_identity_number":"556564-5404"},"redirect_uri":"https://my-website.com/abc/callback","session_token":"sesh_123","show_redirect_buttons":false,"show_success_redirect_button":false}}
"body": {"billing_request_flows":{"authorisation_url":"https://monzo.com/abc-123-things","auto_fulfil":false,"created_at":"2024-01-09T11:33:15.845Z","customer_details_captured":true,"exit_uri":"https://my-website.com/abc/callback","expires_at":"2024-01-09T11:33:15.845Z","id":"BRF123","language":"en","links":{"billing_request":"BRQ123"},"lock_bank_account":false,"lock_currency":false,"lock_customer_details":true,"prefilled_bank_account":{"account_type":"savings"},"prefilled_customer":{"address_line1":"221B Baker Street","address_line2":"Marylebone","address_line3":"City of Westminster","city":"London","company_name":"Hamilton Trading Ltd.","country_code":"GB","danish_identity_number":"220550-6218","email":"[email protected]","family_name":"Osborne","given_name":"Frank","postal_code":"NW1 6XE","region":"Greater London","swedish_identity_number":"556564-5404"},"redirect_uri":"https://my-website.com/abc/callback","session_token":"sesh_123","show_redirect_buttons":true,"show_success_redirect_button":true}}
}
}

2 changes: 1 addition & 1 deletion tests/fixtures/billing_request_templates.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"method": "GET",
"path_template": "/billing_request_templates",
"url_params": {},
"body": {"billing_request_templates":[{"authorisation_url":"https://pay.gocardless.com/BRT123","created_at":"2021-01-01T12:00:00.000Z","id":"BRT123","mandate_request_currency":"GBP","mandate_request_description":"Top-up Payment","mandate_request_metadata":{},"mandate_request_scheme":"bacs","mandate_request_verify":null,"metadata":{},"name":"12 Month Gold Plan","payment_request_amount":1000,"payment_request_currency":"GBP","payment_request_description":"Top-up Payment","payment_request_metadata":{},"payment_request_scheme":"faster_payments","redirect_uri":"https://my-website.com/abc/callback","updated_at":"2021-01-01T12:00:00.000Z"},{"authorisation_url":"https://pay.gocardless.com/BRT123","created_at":"2021-01-01T12:00:00.000Z","id":"BRT123","mandate_request_currency":"GBP","mandate_request_description":"Top-up Payment","mandate_request_metadata":{},"mandate_request_scheme":"bacs","mandate_request_verify":null,"metadata":{},"name":"12 Month Gold Plan","payment_request_amount":1000,"payment_request_currency":"GBP","payment_request_description":"Top-up Payment","payment_request_metadata":{},"payment_request_scheme":"faster_payments","redirect_uri":"https://my-website.com/abc/callback","updated_at":"2021-01-01T12:00:00.000Z"}],"meta":{"cursors":{"after":"example after 9859","before":"example before 5166"},"limit":50}}
"body": {"billing_request_templates":[{"authorisation_url":"https://pay.gocardless.com/BRT123","created_at":"2021-01-01T12:00:00.000Z","id":"BRT123","mandate_request_currency":"GBP","mandate_request_description":"Top-up Payment","mandate_request_metadata":{},"mandate_request_scheme":"bacs","mandate_request_verify":null,"metadata":{},"name":"12 Month Gold Plan","payment_request_amount":1000,"payment_request_currency":"GBP","payment_request_description":"Top-up Payment","payment_request_metadata":{},"payment_request_scheme":"faster_payments","redirect_uri":"https://my-website.com/abc/callback","updated_at":"2021-01-01T12:00:00.000Z"},{"authorisation_url":"https://pay.gocardless.com/BRT123","created_at":"2021-01-01T12:00:00.000Z","id":"BRT123","mandate_request_currency":"GBP","mandate_request_description":"Top-up Payment","mandate_request_metadata":{},"mandate_request_scheme":"bacs","mandate_request_verify":null,"metadata":{},"name":"12 Month Gold Plan","payment_request_amount":1000,"payment_request_currency":"GBP","payment_request_description":"Top-up Payment","payment_request_metadata":{},"payment_request_scheme":"faster_payments","redirect_uri":"https://my-website.com/abc/callback","updated_at":"2021-01-01T12:00:00.000Z"}],"meta":{"cursors":{"after":"example after 5166","before":"example before 9859"},"limit":50}}
},
"get": {
"method": "GET",
Expand Down
Loading

0 comments on commit 56c45d2

Please sign in to comment.