From fa6f1faeda4c0d2591e6383828d5c4a2f2074764 Mon Sep 17 00:00:00 2001 From: Dylan Date: Mon, 13 May 2019 09:40:58 +1000 Subject: [PATCH 01/17] modelled around stripe and has backwards compatibility --- src/Message/ChargeRequest.php | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/src/Message/ChargeRequest.php b/src/Message/ChargeRequest.php index 6efcd74..63f97b0 100755 --- a/src/Message/ChargeRequest.php +++ b/src/Message/ChargeRequest.php @@ -121,6 +121,14 @@ public function setNote($value) return $this->setParameter('note', $value); } + public function setSource($value){ + return $this->setParameter('source', $value); + } + + public function getSource(){ + return $this->getParameter('source'); + } + public function getData() { $data = []; @@ -130,9 +138,29 @@ public function getData() 'amount' => $this->getAmountInteger(), 'currency' => $this->getCurrency() ]; - $data['card_nonce'] = $this->getNonce(); - $data['customer_id'] = $this->getCustomerReference(); - $data['customer_card_id'] = $this->getCustomerCardId(); + + + if ($this->getSource()) { + $data['card_nonce'] = $this->getSource(); + } elseif ($this->getCardReference()) { + $data['customer_card_id'] = $this->getCardReference(); + if ($this->getCustomerReference()) { + $data['customer_id'] = $this->getCustomerReference(); + } + } elseif ($this->getNonce()) { + $data['card_nonce'] = $this->getToken(); + if ($this->getCustomerReference()) { + $data['customer_id'] = $this->getCustomerReference(); + } + } else { + $data['customer_id'] = $this->getCustomerReference(); + // one of cardReference, token, or card is required +// $this->validate('source'); + } + +// $data['card_nonce'] = $this->getNonce(); +// $data['customer_id'] = $this->getCustomerReference(); +// $data['customer_card_id'] = $this->getCustomerCardId(); $data['reference_id'] = $this->getReferenceId(); $data['order_id'] = $this->getOrderId(); $data['note'] = $this->getNote(); From 55a7da6ddf05943b2fb02afadc4700bf5f84c4a4 Mon Sep 17 00:00:00 2001 From: deckbooks Date: Mon, 28 Jun 2021 17:19:22 +0100 Subject: [PATCH 02/17] Use Square PHP SDK --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index f05a701..0ffe8ca 100644 --- a/composer.json +++ b/composer.json @@ -27,7 +27,7 @@ }, "require": { "omnipay/common": "~3.0", - "square/connect": "*" + "square/square": "12.0.0.20210616" }, "require-dev": { "omnipay/tests": "~3.0" From 5a84ffc7c34a796fca04962c954d16c30d1faeae Mon Sep 17 00:00:00 2001 From: deckbooks Date: Mon, 28 Jun 2021 17:19:52 +0100 Subject: [PATCH 03/17] Update ChargeRequest to new Square API --- src/Message/ChargeRequest.php | 38 +++++++++++++++++------------------ 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/src/Message/ChargeRequest.php b/src/Message/ChargeRequest.php index 1a55f7b..7eb4f44 100755 --- a/src/Message/ChargeRequest.php +++ b/src/Message/ChargeRequest.php @@ -3,16 +3,16 @@ namespace Omnipay\Square\Message; use Omnipay\Common\Message\AbstractRequest; -use SquareConnect; +use Square\Environment; +use Square\SquareClient; +use Square\Models\CreatePaymentRequest; +use Square\Models\Money; /** * Square Purchase Request */ class ChargeRequest extends AbstractRequest { - protected $liveEndpoint = 'https://connect.squareup.com'; - protected $testEndpoint = 'https://connect.squareupsandbox.com'; - public function getAccessToken() { return $this->getParameter('accessToken'); @@ -124,32 +124,30 @@ public function setNote($value) return $this->setParameter('note', $value); } - public function getEndpoint() + public function getEnvironment() { - return $this->getTestMode() === true ? $this->testEndpoint : $this->liveEndpoint; + return $this->getTestMode() === true ? Environment::SANDBOX : Environment::PRODUCTION; } private function getApiInstance() { - $api_config = new \SquareConnect\Configuration(); - $api_config->setHost($this->getEndpoint()); - $api_config->setAccessToken($this->getAccessToken()); - $api_client = new \SquareConnect\ApiClient($api_config); + $api_client = new SquareClient([ + 'accessToken' => $this->getAccessToken(), + 'environment' => $this->getEnvironment() + ]); - return new \SquareConnect\Api\PaymentsApi($api_client); + return $api_client->getPaymentsApi(); } public function getData() { - $amountMoney = new \SquareConnect\Model\Money(); + $amountMoney = new Money(); $amountMoney->setAmount($this->getAmountInteger()); $amountMoney->setCurrency($this->getCurrency()); - $data = new SquareConnect\Model\CreatePaymentRequest(); - $data->setSourceId($this->getNonce() ?? $this->getCustomerCardId()); + $sourceId = $this->getNonce() ?? $this->getCustomerCardId(); + $data = new CreatePaymentRequest($sourceId, $this->getIdempotencyKey(), $amountMoney); $data->setCustomerId($this->getCustomerReference()); - $data->setIdempotencyKey($this->getIdempotencyKey()); - $data->setAmountMoney($amountMoney); $data->setLocationId($this->getLocationId()); $data->setNote($this->getNote()); @@ -172,10 +170,10 @@ public function sendData($data) } else { $response = [ 'status' => 'success', - 'transactionId' => $result->getPayment()->getId(), - 'referenceId' => $result->getPayment()->getReferenceId(), - 'created_at' => $result->getPayment()->getCreatedAt(), - 'orderId' => $result->getPayment()->getOrderId() + 'transactionId' => $result->getResult()->getPayment()->getId(), + 'referenceId' => $result->getResult()->getPayment()->getReferenceId(), + 'created_at' => $result->getResult()->getPayment()->getCreatedAt(), + 'orderId' => $result->getResult()->getPayment()->getOrderId() ]; } } catch (\Exception $e) { From 6dea04519da92df89d1e448bee43d6a479b01c16 Mon Sep 17 00:00:00 2001 From: deckbooks Date: Mon, 28 Jun 2021 18:20:16 +0100 Subject: [PATCH 04/17] Update ChargeRequest to support Verification Token --- src/Message/ChargeRequest.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/Message/ChargeRequest.php b/src/Message/ChargeRequest.php index 7eb4f44..d095f87 100755 --- a/src/Message/ChargeRequest.php +++ b/src/Message/ChargeRequest.php @@ -124,6 +124,16 @@ public function setNote($value) return $this->setParameter('note', $value); } + public function getVerificationToken() + { + return $this->getParameter('verification_token'); + } + + public function setVerificationToken($verificationToken) + { + return $this->setParameter('verification_token', $verificationToken); + } + public function getEnvironment() { return $this->getTestMode() === true ? Environment::SANDBOX : Environment::PRODUCTION; @@ -151,6 +161,10 @@ public function getData() $data->setLocationId($this->getLocationId()); $data->setNote($this->getNote()); + if ($this->getVerificationToken()) { + $data->setVerificationToken($this->getVerificationToken()); + } + return $data; } From 3b845579e58672f6516f5a746fc25f7952ea9dbe Mon Sep 17 00:00:00 2001 From: deckbooks Date: Mon, 28 Jun 2021 18:20:59 +0100 Subject: [PATCH 05/17] Change case of verification token --- src/Message/ChargeRequest.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Message/ChargeRequest.php b/src/Message/ChargeRequest.php index d095f87..458b482 100755 --- a/src/Message/ChargeRequest.php +++ b/src/Message/ChargeRequest.php @@ -126,12 +126,12 @@ public function setNote($value) public function getVerificationToken() { - return $this->getParameter('verification_token'); + return $this->getParameter('verificationToken'); } public function setVerificationToken($verificationToken) { - return $this->setParameter('verification_token', $verificationToken); + return $this->setParameter('verificationToken', $verificationToken); } public function getEnvironment() From 7b08873011af4dfae71f91b6f8af0d75cd1337c6 Mon Sep 17 00:00:00 2001 From: deckbooks Date: Mon, 28 Jun 2021 19:47:59 +0100 Subject: [PATCH 06/17] Update all requests to use Square PHP SDK --- src/Message/ChargeRequest.php | 7 +-- src/Message/CreateCardRequest.php | 25 +++++----- src/Message/CreateCustomerRequest.php | 40 +++++++--------- src/Message/DeleteCardRequest.php | 29 +++++++----- src/Message/DeleteCustomerRequest.php | 43 ++++++++--------- src/Message/FetchCardRequest.php | 37 ++++++++------- src/Message/FetchCustomerRequest.php | 22 ++++----- src/Message/ListRefundsRequest.php | 26 ++++++----- src/Message/ListTransactionsRequest.php | 26 ++++++----- src/Message/RefundRequest.php | 47 +++++++++---------- src/Message/TransactionRequest.php | 28 ++++++++--- src/Message/UpdateCustomerRequest.php | 53 +++++++++------------ src/Message/WebPaymentRequest.php | 62 ++++++++++++++----------- 13 files changed, 223 insertions(+), 222 deletions(-) diff --git a/src/Message/ChargeRequest.php b/src/Message/ChargeRequest.php index 458b482..b5065a9 100755 --- a/src/Message/ChargeRequest.php +++ b/src/Message/ChargeRequest.php @@ -5,8 +5,6 @@ use Omnipay\Common\Message\AbstractRequest; use Square\Environment; use Square\SquareClient; -use Square\Models\CreatePaymentRequest; -use Square\Models\Money; /** * Square Purchase Request @@ -78,7 +76,6 @@ public function setCustomerReference($value) return $this->setParameter('customerReference', $value); } - public function getCustomerReference() { return $this->getParameter('customerReference'); @@ -151,12 +148,12 @@ private function getApiInstance() public function getData() { - $amountMoney = new Money(); + $amountMoney = new \Square\Models\Money(); $amountMoney->setAmount($this->getAmountInteger()); $amountMoney->setCurrency($this->getCurrency()); $sourceId = $this->getNonce() ?? $this->getCustomerCardId(); - $data = new CreatePaymentRequest($sourceId, $this->getIdempotencyKey(), $amountMoney); + $data = new \Square\Models\CreatePaymentRequest($sourceId, $this->getIdempotencyKey(), $amountMoney); $data->setCustomerId($this->getCustomerReference()); $data->setLocationId($this->getLocationId()); $data->setNote($this->getNote()); diff --git a/src/Message/CreateCardRequest.php b/src/Message/CreateCardRequest.php index 49dd0d6..1efcbaa 100644 --- a/src/Message/CreateCardRequest.php +++ b/src/Message/CreateCardRequest.php @@ -3,16 +3,14 @@ namespace Omnipay\Square\Message; use Omnipay\Common\Message\AbstractRequest; -use SquareConnect; +use Square\Environment; +use Square\SquareClient; /** * Square Create Credit Card Request */ class CreateCardRequest extends AbstractRequest { - protected $liveEndpoint = 'https://connect.squareup.com'; - protected $testEndpoint = 'https://connect.squareupsandbox.com'; - public function getAccessToken() { return $this->getParameter('accessToken'); @@ -53,25 +51,24 @@ public function setCardholderName($value) return $this->setParameter('cardholderName', $value); } - public function getEndpoint() + public function getEnvironment() { - return $this->getTestMode() === true ? $this->testEndpoint : $this->liveEndpoint; + return $this->getTestMode() === true ? Environment::SANDBOX : Environment::PRODUCTION; } private function getApiInstance() { - $api_config = new \SquareConnect\Configuration(); - $api_config->setHost($this->getEndpoint()); - $api_config->setAccessToken($this->getAccessToken()); - $api_client = new \SquareConnect\ApiClient($api_config); + $api_client = new SquareClient([ + 'accessToken' => $this->getAccessToken(), + 'environment' => $this->getEnvironment() + ]); - return new \SquareConnect\Api\CustomersApi($api_client); + return $api_client->getCustomersApi(); } public function getData() { - $data = new SquareConnect\Model\CreateCustomerCardRequest(); - $data->setCardNonce($this->getCard()); + $data = new \Square\Models\CreateCustomerCardRequest($this->getCard()); $data->setCardholderName($this->getCardholderName()); return $data; @@ -93,7 +90,7 @@ public function sendData($data) } else { $response = [ 'status' => 'success', - 'card' => $result->getCard(), + 'card' => $result->getResult()->getCard(), 'customerId' => $this->getCustomerReference() ]; } diff --git a/src/Message/CreateCustomerRequest.php b/src/Message/CreateCustomerRequest.php index 02ca3ae..076424b 100644 --- a/src/Message/CreateCustomerRequest.php +++ b/src/Message/CreateCustomerRequest.php @@ -3,16 +3,14 @@ namespace Omnipay\Square\Message; use Omnipay\Common\Message\AbstractRequest; -use SquareConnect; +use Square\Environment; +use Square\SquareClient; /** * Square Create Customer Request */ class CreateCustomerRequest extends AbstractRequest { - protected $liveEndpoint = 'https://connect.squareup.com'; - protected $testEndpoint = 'https://connect.squareupsandbox.com'; - public function getAccessToken() { return $this->getParameter('accessToken'); @@ -63,7 +61,7 @@ public function setEmail($value) return $this->setParameter('email', $value); } - public function setAddress(SquareConnect\Model\Address $value) + public function setAddress(\Square\Models\Address $value) { return $this->setParameter('address', $value); } @@ -83,32 +81,30 @@ public function setReferenceId($value) return $this->setParameter('referenceId', $value); } - public function getEndpoint() + public function getEnvironment() { - return $this->getTestMode() === true ? $this->testEndpoint : $this->liveEndpoint; + return $this->getTestMode() === true ? Environment::SANDBOX : Environment::PRODUCTION; } private function getApiInstance() { - $api_config = new \SquareConnect\Configuration(); - $api_config->setHost($this->getEndpoint()); - $api_config->setAccessToken($this->getAccessToken()); - $api_client = new \SquareConnect\ApiClient($api_config); + $api_client = new SquareClient([ + 'accessToken' => $this->getAccessToken(), + 'environment' => $this->getEnvironment() + ]); - return new \SquareConnect\Api\CustomersApi($api_client); + return $api_client->getCustomersApi(); } public function getData() { - $data = []; - - $data['given_name'] = $this->getFirstName(); - $data['family_name'] = $this->getLastName(); - $data['company_name'] = $this->getCompanyName(); - $data['email_address'] = $this->getEmail(); - $data['reference_id'] = $this->getReferenceId(); - - $data['address'] = $this->getAddress(); + $data = new \Square\Models\CreateCustomerRequest(); + $data->setGivenName($this->getFirstName()); + $data->setFamilyName($this->getLastName()); + $data->setCompanyName($this->getCompanyName()); + $data->setEmailAddress($this->getEmail()); + $data->setReferenceId($this->getReferenceId()); + $data->setAddress($this->getAddress()); return $data; } @@ -129,7 +125,7 @@ public function sendData($data) } else { $response = [ 'status' => 'success', - 'customer' => $result->getCustomer() + 'customer' => $result->getResult()->getCustomer() ]; } } catch (\Exception $e) { diff --git a/src/Message/DeleteCardRequest.php b/src/Message/DeleteCardRequest.php index af14f73..5198aed 100644 --- a/src/Message/DeleteCardRequest.php +++ b/src/Message/DeleteCardRequest.php @@ -1,17 +1,11 @@ setParameter('customerReference', $value); } - public function getCustomerReference() { return $this->getParameter('customerReference'); @@ -57,6 +50,20 @@ public function setCardReference($value) return $this->setParameter('cardReference', $value); } + public function getEnvironment() + { + return $this->getTestMode() === true ? Environment::SANDBOX : Environment::PRODUCTION; + } + + private function getApiInstance() + { + $api_client = new SquareClient([ + 'accessToken' => $this->getAccessToken(), + 'environment' => $this->getEnvironment() + ]); + + return $api_client->getCustomersApi(); + } public function getData() { @@ -70,9 +77,7 @@ public function getData() public function sendData($data) { - SquareConnect\Configuration::getDefaultConfiguration()->setAccessToken($this->getAccessToken()); - - $api_instance = new SquareConnect\Api\CustomersApi(); + $api_instance = $this->getApiInstance(); try { $result = $api_instance->deleteCustomerCard($data['customer_id'], $data['card_id']); diff --git a/src/Message/DeleteCustomerRequest.php b/src/Message/DeleteCustomerRequest.php index a76ddc2..5421617 100644 --- a/src/Message/DeleteCustomerRequest.php +++ b/src/Message/DeleteCustomerRequest.php @@ -1,17 +1,11 @@ setParameter('customerReference', $value); } - public function getCustomerReference(){ return $this->getParameter('customerReference'); } - /** - * Get the raw data array for this message. The format of this varies from gateway to - * gateway, but will usually be either an associative array, or a SimpleXMLElement. - * - * @return mixed - */ + + public function getEnvironment() + { + return $this->getTestMode() === true ? Environment::SANDBOX : Environment::PRODUCTION; + } + + private function getApiInstance() + { + $api_client = new SquareClient([ + 'accessToken' => $this->getAccessToken(), + 'environment' => $this->getEnvironment() + ]); + + return $api_client->getCustomersApi(); + } + public function getData() { $data = []; @@ -49,17 +52,9 @@ public function getData() return $data; } - /** - * Send the request with specified data - * - * @param mixed $data The data to send - * @return ResponseInterface - */ public function sendData($data) { - SquareConnect\Configuration::getDefaultConfiguration()->setAccessToken($this->getAccessToken()); - - $api_instance = new SquareConnect\Api\CustomersApi(); + $api_instance = $this->getApiInstance(); try { $result = $api_instance->deleteCustomer($data['customer_id']); diff --git a/src/Message/FetchCardRequest.php b/src/Message/FetchCardRequest.php index f829b29..26da982 100644 --- a/src/Message/FetchCardRequest.php +++ b/src/Message/FetchCardRequest.php @@ -1,16 +1,11 @@ setParameter('card', $value); } - /** - * Get the raw data array for this message. The format of this varies from gateway to - * gateway, but will usually be either an associative array, or a SimpleXMLElement. - * - * @return mixed - */ + + public function getEnvironment() + { + return $this->getTestMode() === true ? Environment::SANDBOX : Environment::PRODUCTION; + } + + private function getApiInstance() + { + $api_client = new SquareClient([ + 'accessToken' => $this->getAccessToken(), + 'environment' => $this->getEnvironment() + ]); + + return $api_client->getCustomersApi(); + } + public function getData() { $data = []; @@ -67,9 +72,7 @@ public function getData() */ public function sendData($data) { - SquareConnect\Configuration::getDefaultConfiguration()->setAccessToken($this->getAccessToken()); - - $api_instance = new SquareConnect\Api\CustomersApi(); + $api_instance = $this->getApiInstance(); try { $result = $api_instance->retrieveCustomer($data['customer_id']); @@ -82,7 +85,7 @@ public function sendData($data) ]; } else { $cardId = $this->getCard(); - $cards = array_filter($result->getCustomer()->getCards(), function ($cur) use ($cardId){ + $cards = array_filter($result->getResult()->getCustomer()->getCards(), function ($cur) use ($cardId){ return $cur->getId() == $cardId; }); diff --git a/src/Message/FetchCustomerRequest.php b/src/Message/FetchCustomerRequest.php index 2001e7a..f5f1d71 100644 --- a/src/Message/FetchCustomerRequest.php +++ b/src/Message/FetchCustomerRequest.php @@ -4,13 +4,11 @@ use Omnipay\Common\Message\AbstractRequest; use Omnipay\Common\Message\ResponseInterface; -use SquareConnect; +use Square\Environment; +use Square\SquareClient; class FetchCustomerRequest extends AbstractRequest { - protected $liveEndpoint = 'https://connect.squareup.com'; - protected $testEndpoint = 'https://connect.squareupsandbox.com'; - public function getAccessToken() { return $this->getParameter('accessToken'); @@ -31,19 +29,19 @@ public function getCustomerReference() return $this->getParameter('customerReference'); } - public function getEndpoint() + public function getEnvironment() { - return $this->getTestMode() === true ? $this->testEndpoint : $this->liveEndpoint; + return $this->getTestMode() === true ? Environment::SANDBOX : Environment::PRODUCTION; } private function getApiInstance() { - $api_config = new \SquareConnect\Configuration(); - $api_config->setHost($this->getEndpoint()); - $api_config->setAccessToken($this->getAccessToken()); - $api_client = new \SquareConnect\ApiClient($api_config); + $api_client = new SquareClient([ + 'accessToken' => $this->getAccessToken(), + 'environment' => $this->getEnvironment() + ]); - return new \SquareConnect\Api\CustomersApi($api_client); + return $api_client->getCustomersApi(); } public function getData() @@ -71,7 +69,7 @@ public function sendData($data) } else { $response = [ 'status' => 'success', - 'customer' => $result->getCustomer() + 'customer' => $result->getResult()->getCustomer() ]; } } catch (\Exception $e) { diff --git a/src/Message/ListRefundsRequest.php b/src/Message/ListRefundsRequest.php index 62d11ca..42ffa97 100644 --- a/src/Message/ListRefundsRequest.php +++ b/src/Message/ListRefundsRequest.php @@ -3,7 +3,8 @@ namespace Omnipay\Square\Message; use Omnipay\Common\Message\AbstractRequest; -use SquareConnect; +use Square\Environment; +use Square\SquareClient; /** * Square List Refunds Request @@ -70,28 +71,29 @@ public function setCursor($value) return $this->setParameter('cursor', $value); } - /* - public function getCheckoutId() + public function getEnvironment() { - return $this->getParameter('checkOutId'); + return $this->getTestMode() === true ? Environment::SANDBOX : Environment::PRODUCTION; } - public function setCheckoutId($value) + private function getApiInstance() { - return $this->setParameter('checkOutId', $value); + $api_client = new SquareClient([ + 'accessToken' => $this->getAccessToken(), + 'environment' => $this->getEnvironment() + ]); + + return $api_client->getTransactionsApi(); } - */ public function getData() { return []; } - public function sendData() + public function sendData($data = '') { - SquareConnect\Configuration::getDefaultConfiguration()->setAccessToken($this->getAccessToken()); - - $api_instance = new SquareConnect\Api\TransactionsApi(); + $api_instance = $this->getApiInstance(); try { $result = $api_instance->listRefunds( @@ -110,7 +112,7 @@ public function sendData() ]; } else { $refunds = []; - $refundItems = $result->getRefunds(); + $refundItems = $result->getResult()->getRefunds(); if ($refundItems === null) { $refundItems = []; } diff --git a/src/Message/ListTransactionsRequest.php b/src/Message/ListTransactionsRequest.php index e6823fd..245b80f 100644 --- a/src/Message/ListTransactionsRequest.php +++ b/src/Message/ListTransactionsRequest.php @@ -3,7 +3,8 @@ namespace Omnipay\Square\Message; use Omnipay\Common\Message\AbstractRequest; -use SquareConnect; +use Square\Environment; +use Square\SquareClient; /** * Square List Transactions Request @@ -70,28 +71,29 @@ public function setCursor($value) return $this->setParameter('cursor', $value); } - /* - public function getCheckoutId() + public function getEnvironment() { - return $this->getParameter('checkOutId'); + return $this->getTestMode() === true ? Environment::SANDBOX : Environment::PRODUCTION; } - public function setCheckoutId($value) + private function getApiInstance() { - return $this->setParameter('checkOutId', $value); + $api_client = new SquareClient([ + 'accessToken' => $this->getAccessToken(), + 'environment' => $this->getEnvironment() + ]); + + return $api_client->getTransactionsApi(); } - */ public function getData() { return []; } - public function sendData() + public function sendData($data = '') { - SquareConnect\Configuration::getDefaultConfiguration()->setAccessToken($this->getAccessToken()); - - $api_instance = new SquareConnect\Api\TransactionsApi(); + $api_instance = $this->getApiInstance(); try { $result = $api_instance->listTransactions( @@ -110,7 +112,7 @@ public function sendData() ]; } else { $transactions = []; - $transactionList = $result->getTransactions(); + $transactionList = $result->getResult()->getTransactions(); if ($transactionList === null) { $transactionList = []; } diff --git a/src/Message/RefundRequest.php b/src/Message/RefundRequest.php index 4e77a63..35d63bd 100755 --- a/src/Message/RefundRequest.php +++ b/src/Message/RefundRequest.php @@ -3,16 +3,14 @@ namespace Omnipay\Square\Message; use Omnipay\Common\Message\AbstractRequest; -use SquareConnect; +use Square\Environment; +use Square\SquareClient; /** * Square Refund Request */ class RefundRequest extends AbstractRequest { - protected $liveEndpoint = 'https://connect.squareup.com'; - protected $testEndpoint = 'https://connect.squareupsandbox.com'; - public function getAccessToken() { return $this->getParameter('accessToken'); @@ -73,32 +71,29 @@ public function setReason($value) return $this->setParameter('reason', $value); } - public function getEndpoint() + public function getEnvironment() { - return $this->getTestMode() === true ? $this->testEndpoint : $this->liveEndpoint; + return $this->getTestMode() === true ? Environment::SANDBOX : Environment::PRODUCTION; } private function getApiInstance() { - $api_config = new \SquareConnect\Configuration(); - $api_config->setHost($this->getEndpoint()); - $api_config->setAccessToken($this->getAccessToken()); - $api_client = new \SquareConnect\ApiClient($api_config); + $api_client = new SquareClient([ + 'accessToken' => $this->getAccessToken(), + 'environment' => $this->getEnvironment() + ]); - return new \SquareConnect\Api\RefundsApi($api_client); + return $api_client->getRefundsApi(); } public function getData() { - $amountMoney = new \SquareConnect\Model\Money(); + $amountMoney = new \Square\Models\Money(); $amountMoney->setAmount($this->getAmountInteger()); $amountMoney->setCurrency($this->getCurrency()); - $data = new \SquareConnect\Model\RefundPaymentRequest(); - $data->setPaymentId($this->getTransactionId()); - $data->setIdempotencyKey($this->getIdempotencyKey()); + $data = new \Square\Models\RefundPaymentRequest($this->getIdempotencyKey(), $amountMoney, $this->getTransactionId()); $data->setReason($this->getReason()); - $data->setAmountMoney($amountMoney); return $data; } @@ -118,17 +113,17 @@ public function sendData($data) ]; } else { $response = [ - 'status' => $result->getRefund()->getStatus(), - 'id' => $result->getRefund()->getId(), - 'location_id' => $result->getRefund()->getLocationId(), - 'transaction_id' => $result->getRefund()->getPaymentId(), - 'tender_id' => $result->getRefund()->getOrderid(), - 'created_at' => $result->getRefund()->getCreatedAt(), - 'reason' => $result->getRefund()->getReason(), - 'amount' => $result->getRefund()->getAmountMoney()->getAmount(), - 'currency' => $result->getRefund()->getAmountMoney()->getCurrency(), + 'status' => $result->getResult()->getRefund()->getStatus(), + 'id' => $result->getResult()->getRefund()->getId(), + 'location_id' => $result->getResult()->getRefund()->getLocationId(), + 'transaction_id' => $result->getResult()->getRefund()->getPaymentId(), + 'tender_id' => $result->getResult()->getRefund()->getOrderid(), + 'created_at' => $result->getResult()->getRefund()->getCreatedAt(), + 'reason' => $result->getResult()->getRefund()->getReason(), + 'amount' => $result->getResult()->getRefund()->getAmountMoney()->getAmount(), + 'currency' => $result->getResult()->getRefund()->getAmountMoney()->getCurrency(), ]; - $processing_fee = $result->getRefund()->getProcessingFee(); + $processing_fee = $result->getResult()->getRefund()->getProcessingFee(); if (!empty($processing_fee)) { $response['processing_fee'] = $processing_fee->getAmount(); } diff --git a/src/Message/TransactionRequest.php b/src/Message/TransactionRequest.php index 4045acd..54ad463 100644 --- a/src/Message/TransactionRequest.php +++ b/src/Message/TransactionRequest.php @@ -3,7 +3,8 @@ namespace Omnipay\Square\Message; use Omnipay\Common\Message\AbstractRequest; -use SquareConnect; +use Square\Environment; +use Square\SquareClient; /** * Square Purchase Request @@ -51,6 +52,21 @@ public function setTransactionId($value) return $this->setParameter('transactionId', $value); } + public function getEnvironment() + { + return $this->getTestMode() === true ? Environment::SANDBOX : Environment::PRODUCTION; + } + + private function getApiInstance() + { + $api_client = new SquareClient([ + 'accessToken' => $this->getAccessToken(), + 'environment' => $this->getEnvironment() + ]); + + return $api_client->getTransactionsApi(); + } + public function getData() { $data = []; @@ -63,16 +79,14 @@ public function getData() public function sendData($data) { - SquareConnect\Configuration::getDefaultConfiguration()->setAccessToken($this->getAccessToken()); - - $api_instance = new SquareConnect\Api\TransactionsApi(); + $api_instance = $this->getApiInstance(); try { $result = $api_instance->retrieveTransaction($this->getLocationId(), $data['transactionId']); $orders = []; - $lineItems = $result->getTransaction()->getTenders(); + $lineItems = $result->getResult()->getTransaction()->getTenders(); if (count($lineItems) > 0) { foreach ($lineItems as $key => $value) { $data = []; @@ -92,8 +106,8 @@ public function sendData($data) } else { $response = [ 'status' => 'success', - 'transactionId' => $result->getTransaction()->getId(), - 'referenceId' => $result->getTransaction()->getReferenceId(), + 'transactionId' => $result->getResult()->getTransaction()->getId(), + 'referenceId' => $result->getResult()->getTransaction()->getReferenceId(), 'orders' => $orders ]; } diff --git a/src/Message/UpdateCustomerRequest.php b/src/Message/UpdateCustomerRequest.php index 1444792..9983d73 100644 --- a/src/Message/UpdateCustomerRequest.php +++ b/src/Message/UpdateCustomerRequest.php @@ -1,22 +1,14 @@ getParameter('accessToken'); @@ -32,7 +24,6 @@ public function setCustomerReference($value) return $this->setParameter('customerReference', $value); } - public function getCustomerReference() { return $this->getParameter('customerReference'); @@ -78,7 +69,7 @@ public function setEmail($value) return $this->setParameter('email', $value); } - public function setAddress(SquareConnect\Model\Address $value) + public function setAddress(\Square\Models\Address $value) { return $this->setParameter('address', $value); } @@ -108,7 +99,6 @@ public function setPhoneNumber($value) return $this->setParameter('phoneNumber', $value); } - public function getNote() { return $this->getParameter('note'); @@ -129,19 +119,19 @@ public function setReferenceId($value) return $this->setParameter('referenceId', $value); } - public function getEndpoint() + public function getEnvironment() { - return $this->getTestMode() === true ? $this->testEndpoint : $this->liveEndpoint; + return $this->getTestMode() === true ? Environment::SANDBOX : Environment::PRODUCTION; } private function getApiInstance() { - $api_config = new \SquareConnect\Configuration(); - $api_config->setHost($this->getEndpoint()); - $api_config->setAccessToken($this->getAccessToken()); - $api_client = new \SquareConnect\ApiClient($api_config); + $api_client = new SquareClient([ + 'accessToken' => $this->getAccessToken(), + 'environment' => $this->getEnvironment() + ]); - return new \SquareConnect\Api\CustomersApi($api_client); + return $api_client->getCustomersApi(); } /** @@ -152,18 +142,17 @@ private function getApiInstance() */ public function getData() { - $data = []; - - $data['given_name'] = $this->getFirstName(); - $data['family_name'] = $this->getLastName(); - $data['company_name'] = $this->getCompanyName(); - $data['email_address'] = $this->getEmail(); + $data = new \Square\Models\UpdateCustomerRequest(); + $data->setGivenName($this->getFirstName()); + $data->setFamilyName($this->getLastName()); + $data->setCompanyName($this->getCompanyName()); + $data->setEmailAddress($this->getEmail()); - $data['address'] = $this->getAddress(); - $data['nickname'] = $this->getEmail(); - $data['phone_number'] = $this->getPhoneNumber(); - $data['reference_id'] = $this->getReferenceId(); - $data['note'] = $this->getNote(); + $data->setAddress($this->getAddress()); + $data->setNickname($this->getEmail()); + $data->setPhoneNumber($this->getPhoneNumber()); + $data->setReferenceId($this->getReferenceId()); + $data->setNote($this->getNote()); return $data; } @@ -191,7 +180,7 @@ public function sendData($data) } else { $response = [ 'status' => 'success', - 'customer' => $result->getCustomer() + 'customer' => $result->getResult()->getCustomer() ]; } } catch (\Exception $e) { diff --git a/src/Message/WebPaymentRequest.php b/src/Message/WebPaymentRequest.php index 32fbf09..77462ac 100644 --- a/src/Message/WebPaymentRequest.php +++ b/src/Message/WebPaymentRequest.php @@ -3,7 +3,8 @@ namespace Omnipay\Square\Message; use Omnipay\Common\Message\AbstractRequest; -use SquareConnect; +use Square\Environment; +use Square\SquareClient; /** * Square Purchase Request @@ -30,6 +31,21 @@ public function setLocationId($value) return $this->setParameter('locationId', $value); } + public function getEnvironment() + { + return $this->getTestMode() === true ? Environment::SANDBOX : Environment::PRODUCTION; + } + + private function getApiInstance() + { + $api_client = new SquareClient([ + 'accessToken' => $this->getAccessToken(), + 'environment' => $this->getEnvironment() + ]); + + return $api_client->getCheckoutApi(); + } + public function getData() { $items = $this->getItems(); @@ -38,45 +54,37 @@ public function getData() if (!empty($items) && count($items) > 0) { foreach ($items as $index => $item) { - $items_list[$index] = new SquareConnect\Model\OrderLineItem( - [ - 'name' => $item->getName(), - 'quantity' => (string) $item->getQuantity(), - 'base_price_money' => new SquareConnect\Model\Money( - [ - 'amount' => $item->getPrice() * 100, - 'currency' => $this->getCurrency() - ] - ) - ] - ); + $base_price_money = new \Square\Models\Money(); + $base_price_money->setAmount($item->getPrice() * 100); + $base_price_money->setCurrency($this->getCurrency()); + + $items_list[$index] = new \Square\Models\OrderLineItem((string) $item->getQuantity()); + $items_list[$index]->setName($item->getName()); + $items_list[$index]->setBasePriceMoney($base_price_money); } } - $data_array = [ - 'idempotency_key' => uniqid(), - 'order' => new SquareConnect\Model\Order([ - 'reference_id' => $this->getTransactionReference(), - 'line_items' => $items_list - ]), - 'ask_for_shipping_address' => false, - 'redirect_url' => $this->getReturnUrl() - ]; + $order = new \Square\Models\Order($this->getLocationId()); + $order->setReferenceId($this->getTransactionReference()); + $order->setLineItems($items_list); - $data = new \SquareConnect\Model\CreateCheckoutRequest($data_array); + $order_request = new \Square\Models\CreateOrderRequest(); + $order_request->setOrder($order); + + $data = new \Square\Models\CreateCheckoutRequest(uniqid(), $order_request); + $data->setAskForShippingAddress(false); + $data->setRedirectUrl($this->getReturnUrl()); return $data; } public function sendData($data) { - SquareConnect\Configuration::getDefaultConfiguration()->setAccessToken($this->getAccessToken()); - - $api_instance = new SquareConnect\Api\CheckoutApi(); + $api_instance = $this->getApiInstance(); try { $result = $api_instance->createCheckout($this->getLocationId(), $data); - $result = $result->getCheckout(); + $result = $result->getResult()->getCheckout(); $response = [ 'id' => $result->getId(), 'checkout_url' => $result->getCheckoutPageUrl() From 9d38b46a789c45dcad696e5b58f869057af89e23 Mon Sep 17 00:00:00 2001 From: Dylan Date: Fri, 30 Jul 2021 14:19:29 +1000 Subject: [PATCH 07/17] Merge branch 'feature/square-php-sdk' of https://github.com/deckbooks/omnipay-square into deckbooks-feature/square-php-sdk # Conflicts: # src/Message/ChargeRequest.php --- composer.json | 2 +- src/Message/ChargeRequest.php | 70 ++++++++++-------------- src/Message/CreateCardRequest.php | 25 ++++----- src/Message/CreateCustomerRequest.php | 46 +++++++++------- src/Message/DeleteCardRequest.php | 29 +++++----- src/Message/DeleteCustomerRequest.php | 43 +++++++-------- src/Message/FetchCardRequest.php | 37 +++++++------ src/Message/FetchCustomerRequest.php | 22 ++++---- src/Message/ListRefundsRequest.php | 26 ++++----- src/Message/ListTransactionsRequest.php | 26 ++++----- src/Message/RefundRequest.php | 47 ++++++++-------- src/Message/TransactionRequest.php | 28 +++++++--- src/Message/UpdateCustomerRequest.php | 71 ++++++++++++++----------- src/Message/WebPaymentRequest.php | 62 +++++++++++---------- 14 files changed, 278 insertions(+), 256 deletions(-) diff --git a/composer.json b/composer.json index f05a701..0ffe8ca 100644 --- a/composer.json +++ b/composer.json @@ -27,7 +27,7 @@ }, "require": { "omnipay/common": "~3.0", - "square/connect": "*" + "square/square": "12.0.0.20210616" }, "require-dev": { "omnipay/tests": "~3.0" diff --git a/src/Message/ChargeRequest.php b/src/Message/ChargeRequest.php index 3eadf4d..b5065a9 100755 --- a/src/Message/ChargeRequest.php +++ b/src/Message/ChargeRequest.php @@ -3,16 +3,14 @@ namespace Omnipay\Square\Message; use Omnipay\Common\Message\AbstractRequest; -use SquareConnect; +use Square\Environment; +use Square\SquareClient; /** * Square Purchase Request */ class ChargeRequest extends AbstractRequest { - protected $liveEndpoint = 'https://connect.squareup.com'; - protected $testEndpoint = 'https://connect.squareupsandbox.com'; - public function getAccessToken() { return $this->getParameter('accessToken'); @@ -78,7 +76,6 @@ public function setCustomerReference($value) return $this->setParameter('customerReference', $value); } - public function getCustomerReference() { return $this->getParameter('customerReference'); @@ -124,55 +121,46 @@ public function setNote($value) return $this->setParameter('note', $value); } - public function getEndpoint() + public function getVerificationToken() { - return $this->getTestMode() === true ? $this->testEndpoint : $this->liveEndpoint; + return $this->getParameter('verificationToken'); } - private function getApiInstance() + public function setVerificationToken($verificationToken) { - $api_config = new \SquareConnect\Configuration(); - $api_config->setHost($this->getEndpoint()); - $api_config->setAccessToken($this->getAccessToken()); - $api_client = new \SquareConnect\ApiClient($api_config); - - return new \SquareConnect\Api\PaymentsApi($api_client); + return $this->setParameter('verificationToken', $verificationToken); } - public function setSource($value){ - return $this->setParameter('source', $value); + public function getEnvironment() + { + return $this->getTestMode() === true ? Environment::SANDBOX : Environment::PRODUCTION; } - public function getSource(){ - return $this->getParameter('source'); + private function getApiInstance() + { + $api_client = new SquareClient([ + 'accessToken' => $this->getAccessToken(), + 'environment' => $this->getEnvironment() + ]); + + return $api_client->getPaymentsApi(); } public function getData() { - $amountMoney = new \SquareConnect\Model\Money(); + $amountMoney = new \Square\Models\Money(); $amountMoney->setAmount($this->getAmountInteger()); $amountMoney->setCurrency($this->getCurrency()); - $data = new SquareConnect\Model\CreatePaymentRequest(); + $sourceId = $this->getNonce() ?? $this->getCustomerCardId(); + $data = new \Square\Models\CreatePaymentRequest($sourceId, $this->getIdempotencyKey(), $amountMoney); + $data->setCustomerId($this->getCustomerReference()); + $data->setLocationId($this->getLocationId()); + $data->setNote($this->getNote()); - if ($this->getSource()) { - $data->setSourceId($this->getSource()); - } elseif ($this->getCardReference()) { - $data->setSourceId($this->getCardReference()); - if ($this->getCustomerReference()) { - $data->setCustomerId($this->getCustomerReference()); - } - } elseif ($this->getNonce()) { - $data->setSourceId($this->getToken()); - if ($this->getCustomerReference()) { - $data->setCustomerId($this->getCustomerReference()); - } - } else { - $data->setCustomerId($this->getCustomerReference()); + if ($this->getVerificationToken()) { + $data->setVerificationToken($this->getVerificationToken()); } - $data->setIdempotencyKey($this->getIdempotencyKey()); - $data->setAmountMoney($amountMoney); - $data->setLocationId($this->getLocationId()); return $data; } @@ -193,10 +181,10 @@ public function sendData($data) } else { $response = [ 'status' => 'success', - 'transactionId' => $result->getPayment()->getId(), - 'referenceId' => $result->getPayment()->getReferenceId(), - 'created_at' => $result->getPayment()->getCreatedAt(), - 'orderId' => $result->getPayment()->getOrderId() + 'transactionId' => $result->getResult()->getPayment()->getId(), + 'referenceId' => $result->getResult()->getPayment()->getReferenceId(), + 'created_at' => $result->getResult()->getPayment()->getCreatedAt(), + 'orderId' => $result->getResult()->getPayment()->getOrderId() ]; } } catch (\Exception $e) { diff --git a/src/Message/CreateCardRequest.php b/src/Message/CreateCardRequest.php index 49dd0d6..1efcbaa 100644 --- a/src/Message/CreateCardRequest.php +++ b/src/Message/CreateCardRequest.php @@ -3,16 +3,14 @@ namespace Omnipay\Square\Message; use Omnipay\Common\Message\AbstractRequest; -use SquareConnect; +use Square\Environment; +use Square\SquareClient; /** * Square Create Credit Card Request */ class CreateCardRequest extends AbstractRequest { - protected $liveEndpoint = 'https://connect.squareup.com'; - protected $testEndpoint = 'https://connect.squareupsandbox.com'; - public function getAccessToken() { return $this->getParameter('accessToken'); @@ -53,25 +51,24 @@ public function setCardholderName($value) return $this->setParameter('cardholderName', $value); } - public function getEndpoint() + public function getEnvironment() { - return $this->getTestMode() === true ? $this->testEndpoint : $this->liveEndpoint; + return $this->getTestMode() === true ? Environment::SANDBOX : Environment::PRODUCTION; } private function getApiInstance() { - $api_config = new \SquareConnect\Configuration(); - $api_config->setHost($this->getEndpoint()); - $api_config->setAccessToken($this->getAccessToken()); - $api_client = new \SquareConnect\ApiClient($api_config); + $api_client = new SquareClient([ + 'accessToken' => $this->getAccessToken(), + 'environment' => $this->getEnvironment() + ]); - return new \SquareConnect\Api\CustomersApi($api_client); + return $api_client->getCustomersApi(); } public function getData() { - $data = new SquareConnect\Model\CreateCustomerCardRequest(); - $data->setCardNonce($this->getCard()); + $data = new \Square\Models\CreateCustomerCardRequest($this->getCard()); $data->setCardholderName($this->getCardholderName()); return $data; @@ -93,7 +90,7 @@ public function sendData($data) } else { $response = [ 'status' => 'success', - 'card' => $result->getCard(), + 'card' => $result->getResult()->getCard(), 'customerId' => $this->getCustomerReference() ]; } diff --git a/src/Message/CreateCustomerRequest.php b/src/Message/CreateCustomerRequest.php index aaf2d28..076424b 100644 --- a/src/Message/CreateCustomerRequest.php +++ b/src/Message/CreateCustomerRequest.php @@ -3,16 +3,14 @@ namespace Omnipay\Square\Message; use Omnipay\Common\Message\AbstractRequest; -use SquareConnect; +use Square\Environment; +use Square\SquareClient; /** * Square Create Customer Request */ class CreateCustomerRequest extends AbstractRequest { - protected $liveEndpoint = 'https://connect.squareup.com'; - protected $testEndpoint = 'https://connect.squareupsandbox.com'; - public function getAccessToken() { return $this->getParameter('accessToken'); @@ -63,6 +61,16 @@ public function setEmail($value) return $this->setParameter('email', $value); } + public function setAddress(\Square\Models\Address $value) + { + return $this->setParameter('address', $value); + } + + public function getAddress() + { + return $this->getParameter('address'); + } + public function getReferenceId() { return $this->getParameter('referenceId'); @@ -73,30 +81,30 @@ public function setReferenceId($value) return $this->setParameter('referenceId', $value); } - public function getEndpoint() + public function getEnvironment() { - return $this->getTestMode() === true ? $this->testEndpoint : $this->liveEndpoint; + return $this->getTestMode() === true ? Environment::SANDBOX : Environment::PRODUCTION; } private function getApiInstance() { - $api_config = new \SquareConnect\Configuration(); - $api_config->setHost($this->getEndpoint()); - $api_config->setAccessToken($this->getAccessToken()); - $api_client = new \SquareConnect\ApiClient($api_config); + $api_client = new SquareClient([ + 'accessToken' => $this->getAccessToken(), + 'environment' => $this->getEnvironment() + ]); - return new \SquareConnect\Api\CustomersApi($api_client); + return $api_client->getCustomersApi(); } public function getData() { - $data = []; - - $data['given_name'] = $this->getFirstName(); - $data['family_name'] = $this->getLastName(); - $data['company_name'] = $this->getCompanyName(); - $data['email_address'] = $this->getEmail(); - $data['reference_id'] = $this->getReferenceId(); + $data = new \Square\Models\CreateCustomerRequest(); + $data->setGivenName($this->getFirstName()); + $data->setFamilyName($this->getLastName()); + $data->setCompanyName($this->getCompanyName()); + $data->setEmailAddress($this->getEmail()); + $data->setReferenceId($this->getReferenceId()); + $data->setAddress($this->getAddress()); return $data; } @@ -117,7 +125,7 @@ public function sendData($data) } else { $response = [ 'status' => 'success', - 'customer' => $result->getCustomer() + 'customer' => $result->getResult()->getCustomer() ]; } } catch (\Exception $e) { diff --git a/src/Message/DeleteCardRequest.php b/src/Message/DeleteCardRequest.php index af14f73..5198aed 100644 --- a/src/Message/DeleteCardRequest.php +++ b/src/Message/DeleteCardRequest.php @@ -1,17 +1,11 @@ setParameter('customerReference', $value); } - public function getCustomerReference() { return $this->getParameter('customerReference'); @@ -57,6 +50,20 @@ public function setCardReference($value) return $this->setParameter('cardReference', $value); } + public function getEnvironment() + { + return $this->getTestMode() === true ? Environment::SANDBOX : Environment::PRODUCTION; + } + + private function getApiInstance() + { + $api_client = new SquareClient([ + 'accessToken' => $this->getAccessToken(), + 'environment' => $this->getEnvironment() + ]); + + return $api_client->getCustomersApi(); + } public function getData() { @@ -70,9 +77,7 @@ public function getData() public function sendData($data) { - SquareConnect\Configuration::getDefaultConfiguration()->setAccessToken($this->getAccessToken()); - - $api_instance = new SquareConnect\Api\CustomersApi(); + $api_instance = $this->getApiInstance(); try { $result = $api_instance->deleteCustomerCard($data['customer_id'], $data['card_id']); diff --git a/src/Message/DeleteCustomerRequest.php b/src/Message/DeleteCustomerRequest.php index a76ddc2..5421617 100644 --- a/src/Message/DeleteCustomerRequest.php +++ b/src/Message/DeleteCustomerRequest.php @@ -1,17 +1,11 @@ setParameter('customerReference', $value); } - public function getCustomerReference(){ return $this->getParameter('customerReference'); } - /** - * Get the raw data array for this message. The format of this varies from gateway to - * gateway, but will usually be either an associative array, or a SimpleXMLElement. - * - * @return mixed - */ + + public function getEnvironment() + { + return $this->getTestMode() === true ? Environment::SANDBOX : Environment::PRODUCTION; + } + + private function getApiInstance() + { + $api_client = new SquareClient([ + 'accessToken' => $this->getAccessToken(), + 'environment' => $this->getEnvironment() + ]); + + return $api_client->getCustomersApi(); + } + public function getData() { $data = []; @@ -49,17 +52,9 @@ public function getData() return $data; } - /** - * Send the request with specified data - * - * @param mixed $data The data to send - * @return ResponseInterface - */ public function sendData($data) { - SquareConnect\Configuration::getDefaultConfiguration()->setAccessToken($this->getAccessToken()); - - $api_instance = new SquareConnect\Api\CustomersApi(); + $api_instance = $this->getApiInstance(); try { $result = $api_instance->deleteCustomer($data['customer_id']); diff --git a/src/Message/FetchCardRequest.php b/src/Message/FetchCardRequest.php index f829b29..26da982 100644 --- a/src/Message/FetchCardRequest.php +++ b/src/Message/FetchCardRequest.php @@ -1,16 +1,11 @@ setParameter('card', $value); } - /** - * Get the raw data array for this message. The format of this varies from gateway to - * gateway, but will usually be either an associative array, or a SimpleXMLElement. - * - * @return mixed - */ + + public function getEnvironment() + { + return $this->getTestMode() === true ? Environment::SANDBOX : Environment::PRODUCTION; + } + + private function getApiInstance() + { + $api_client = new SquareClient([ + 'accessToken' => $this->getAccessToken(), + 'environment' => $this->getEnvironment() + ]); + + return $api_client->getCustomersApi(); + } + public function getData() { $data = []; @@ -67,9 +72,7 @@ public function getData() */ public function sendData($data) { - SquareConnect\Configuration::getDefaultConfiguration()->setAccessToken($this->getAccessToken()); - - $api_instance = new SquareConnect\Api\CustomersApi(); + $api_instance = $this->getApiInstance(); try { $result = $api_instance->retrieveCustomer($data['customer_id']); @@ -82,7 +85,7 @@ public function sendData($data) ]; } else { $cardId = $this->getCard(); - $cards = array_filter($result->getCustomer()->getCards(), function ($cur) use ($cardId){ + $cards = array_filter($result->getResult()->getCustomer()->getCards(), function ($cur) use ($cardId){ return $cur->getId() == $cardId; }); diff --git a/src/Message/FetchCustomerRequest.php b/src/Message/FetchCustomerRequest.php index 2001e7a..f5f1d71 100644 --- a/src/Message/FetchCustomerRequest.php +++ b/src/Message/FetchCustomerRequest.php @@ -4,13 +4,11 @@ use Omnipay\Common\Message\AbstractRequest; use Omnipay\Common\Message\ResponseInterface; -use SquareConnect; +use Square\Environment; +use Square\SquareClient; class FetchCustomerRequest extends AbstractRequest { - protected $liveEndpoint = 'https://connect.squareup.com'; - protected $testEndpoint = 'https://connect.squareupsandbox.com'; - public function getAccessToken() { return $this->getParameter('accessToken'); @@ -31,19 +29,19 @@ public function getCustomerReference() return $this->getParameter('customerReference'); } - public function getEndpoint() + public function getEnvironment() { - return $this->getTestMode() === true ? $this->testEndpoint : $this->liveEndpoint; + return $this->getTestMode() === true ? Environment::SANDBOX : Environment::PRODUCTION; } private function getApiInstance() { - $api_config = new \SquareConnect\Configuration(); - $api_config->setHost($this->getEndpoint()); - $api_config->setAccessToken($this->getAccessToken()); - $api_client = new \SquareConnect\ApiClient($api_config); + $api_client = new SquareClient([ + 'accessToken' => $this->getAccessToken(), + 'environment' => $this->getEnvironment() + ]); - return new \SquareConnect\Api\CustomersApi($api_client); + return $api_client->getCustomersApi(); } public function getData() @@ -71,7 +69,7 @@ public function sendData($data) } else { $response = [ 'status' => 'success', - 'customer' => $result->getCustomer() + 'customer' => $result->getResult()->getCustomer() ]; } } catch (\Exception $e) { diff --git a/src/Message/ListRefundsRequest.php b/src/Message/ListRefundsRequest.php index 62d11ca..42ffa97 100644 --- a/src/Message/ListRefundsRequest.php +++ b/src/Message/ListRefundsRequest.php @@ -3,7 +3,8 @@ namespace Omnipay\Square\Message; use Omnipay\Common\Message\AbstractRequest; -use SquareConnect; +use Square\Environment; +use Square\SquareClient; /** * Square List Refunds Request @@ -70,28 +71,29 @@ public function setCursor($value) return $this->setParameter('cursor', $value); } - /* - public function getCheckoutId() + public function getEnvironment() { - return $this->getParameter('checkOutId'); + return $this->getTestMode() === true ? Environment::SANDBOX : Environment::PRODUCTION; } - public function setCheckoutId($value) + private function getApiInstance() { - return $this->setParameter('checkOutId', $value); + $api_client = new SquareClient([ + 'accessToken' => $this->getAccessToken(), + 'environment' => $this->getEnvironment() + ]); + + return $api_client->getTransactionsApi(); } - */ public function getData() { return []; } - public function sendData() + public function sendData($data = '') { - SquareConnect\Configuration::getDefaultConfiguration()->setAccessToken($this->getAccessToken()); - - $api_instance = new SquareConnect\Api\TransactionsApi(); + $api_instance = $this->getApiInstance(); try { $result = $api_instance->listRefunds( @@ -110,7 +112,7 @@ public function sendData() ]; } else { $refunds = []; - $refundItems = $result->getRefunds(); + $refundItems = $result->getResult()->getRefunds(); if ($refundItems === null) { $refundItems = []; } diff --git a/src/Message/ListTransactionsRequest.php b/src/Message/ListTransactionsRequest.php index e6823fd..245b80f 100644 --- a/src/Message/ListTransactionsRequest.php +++ b/src/Message/ListTransactionsRequest.php @@ -3,7 +3,8 @@ namespace Omnipay\Square\Message; use Omnipay\Common\Message\AbstractRequest; -use SquareConnect; +use Square\Environment; +use Square\SquareClient; /** * Square List Transactions Request @@ -70,28 +71,29 @@ public function setCursor($value) return $this->setParameter('cursor', $value); } - /* - public function getCheckoutId() + public function getEnvironment() { - return $this->getParameter('checkOutId'); + return $this->getTestMode() === true ? Environment::SANDBOX : Environment::PRODUCTION; } - public function setCheckoutId($value) + private function getApiInstance() { - return $this->setParameter('checkOutId', $value); + $api_client = new SquareClient([ + 'accessToken' => $this->getAccessToken(), + 'environment' => $this->getEnvironment() + ]); + + return $api_client->getTransactionsApi(); } - */ public function getData() { return []; } - public function sendData() + public function sendData($data = '') { - SquareConnect\Configuration::getDefaultConfiguration()->setAccessToken($this->getAccessToken()); - - $api_instance = new SquareConnect\Api\TransactionsApi(); + $api_instance = $this->getApiInstance(); try { $result = $api_instance->listTransactions( @@ -110,7 +112,7 @@ public function sendData() ]; } else { $transactions = []; - $transactionList = $result->getTransactions(); + $transactionList = $result->getResult()->getTransactions(); if ($transactionList === null) { $transactionList = []; } diff --git a/src/Message/RefundRequest.php b/src/Message/RefundRequest.php index 4e77a63..35d63bd 100755 --- a/src/Message/RefundRequest.php +++ b/src/Message/RefundRequest.php @@ -3,16 +3,14 @@ namespace Omnipay\Square\Message; use Omnipay\Common\Message\AbstractRequest; -use SquareConnect; +use Square\Environment; +use Square\SquareClient; /** * Square Refund Request */ class RefundRequest extends AbstractRequest { - protected $liveEndpoint = 'https://connect.squareup.com'; - protected $testEndpoint = 'https://connect.squareupsandbox.com'; - public function getAccessToken() { return $this->getParameter('accessToken'); @@ -73,32 +71,29 @@ public function setReason($value) return $this->setParameter('reason', $value); } - public function getEndpoint() + public function getEnvironment() { - return $this->getTestMode() === true ? $this->testEndpoint : $this->liveEndpoint; + return $this->getTestMode() === true ? Environment::SANDBOX : Environment::PRODUCTION; } private function getApiInstance() { - $api_config = new \SquareConnect\Configuration(); - $api_config->setHost($this->getEndpoint()); - $api_config->setAccessToken($this->getAccessToken()); - $api_client = new \SquareConnect\ApiClient($api_config); + $api_client = new SquareClient([ + 'accessToken' => $this->getAccessToken(), + 'environment' => $this->getEnvironment() + ]); - return new \SquareConnect\Api\RefundsApi($api_client); + return $api_client->getRefundsApi(); } public function getData() { - $amountMoney = new \SquareConnect\Model\Money(); + $amountMoney = new \Square\Models\Money(); $amountMoney->setAmount($this->getAmountInteger()); $amountMoney->setCurrency($this->getCurrency()); - $data = new \SquareConnect\Model\RefundPaymentRequest(); - $data->setPaymentId($this->getTransactionId()); - $data->setIdempotencyKey($this->getIdempotencyKey()); + $data = new \Square\Models\RefundPaymentRequest($this->getIdempotencyKey(), $amountMoney, $this->getTransactionId()); $data->setReason($this->getReason()); - $data->setAmountMoney($amountMoney); return $data; } @@ -118,17 +113,17 @@ public function sendData($data) ]; } else { $response = [ - 'status' => $result->getRefund()->getStatus(), - 'id' => $result->getRefund()->getId(), - 'location_id' => $result->getRefund()->getLocationId(), - 'transaction_id' => $result->getRefund()->getPaymentId(), - 'tender_id' => $result->getRefund()->getOrderid(), - 'created_at' => $result->getRefund()->getCreatedAt(), - 'reason' => $result->getRefund()->getReason(), - 'amount' => $result->getRefund()->getAmountMoney()->getAmount(), - 'currency' => $result->getRefund()->getAmountMoney()->getCurrency(), + 'status' => $result->getResult()->getRefund()->getStatus(), + 'id' => $result->getResult()->getRefund()->getId(), + 'location_id' => $result->getResult()->getRefund()->getLocationId(), + 'transaction_id' => $result->getResult()->getRefund()->getPaymentId(), + 'tender_id' => $result->getResult()->getRefund()->getOrderid(), + 'created_at' => $result->getResult()->getRefund()->getCreatedAt(), + 'reason' => $result->getResult()->getRefund()->getReason(), + 'amount' => $result->getResult()->getRefund()->getAmountMoney()->getAmount(), + 'currency' => $result->getResult()->getRefund()->getAmountMoney()->getCurrency(), ]; - $processing_fee = $result->getRefund()->getProcessingFee(); + $processing_fee = $result->getResult()->getRefund()->getProcessingFee(); if (!empty($processing_fee)) { $response['processing_fee'] = $processing_fee->getAmount(); } diff --git a/src/Message/TransactionRequest.php b/src/Message/TransactionRequest.php index 4045acd..54ad463 100644 --- a/src/Message/TransactionRequest.php +++ b/src/Message/TransactionRequest.php @@ -3,7 +3,8 @@ namespace Omnipay\Square\Message; use Omnipay\Common\Message\AbstractRequest; -use SquareConnect; +use Square\Environment; +use Square\SquareClient; /** * Square Purchase Request @@ -51,6 +52,21 @@ public function setTransactionId($value) return $this->setParameter('transactionId', $value); } + public function getEnvironment() + { + return $this->getTestMode() === true ? Environment::SANDBOX : Environment::PRODUCTION; + } + + private function getApiInstance() + { + $api_client = new SquareClient([ + 'accessToken' => $this->getAccessToken(), + 'environment' => $this->getEnvironment() + ]); + + return $api_client->getTransactionsApi(); + } + public function getData() { $data = []; @@ -63,16 +79,14 @@ public function getData() public function sendData($data) { - SquareConnect\Configuration::getDefaultConfiguration()->setAccessToken($this->getAccessToken()); - - $api_instance = new SquareConnect\Api\TransactionsApi(); + $api_instance = $this->getApiInstance(); try { $result = $api_instance->retrieveTransaction($this->getLocationId(), $data['transactionId']); $orders = []; - $lineItems = $result->getTransaction()->getTenders(); + $lineItems = $result->getResult()->getTransaction()->getTenders(); if (count($lineItems) > 0) { foreach ($lineItems as $key => $value) { $data = []; @@ -92,8 +106,8 @@ public function sendData($data) } else { $response = [ 'status' => 'success', - 'transactionId' => $result->getTransaction()->getId(), - 'referenceId' => $result->getTransaction()->getReferenceId(), + 'transactionId' => $result->getResult()->getTransaction()->getId(), + 'referenceId' => $result->getResult()->getTransaction()->getReferenceId(), 'orders' => $orders ]; } diff --git a/src/Message/UpdateCustomerRequest.php b/src/Message/UpdateCustomerRequest.php index 766f58e..9983d73 100644 --- a/src/Message/UpdateCustomerRequest.php +++ b/src/Message/UpdateCustomerRequest.php @@ -1,17 +1,11 @@ setParameter('customerReference', $value); } - public function getCustomerReference() { return $this->getParameter('customerReference'); @@ -76,7 +69,7 @@ public function setEmail($value) return $this->setParameter('email', $value); } - public function setAddress(SquareConnect\Model\Address $value) + public function setAddress(\Square\Models\Address $value) { return $this->setParameter('address', $value); } @@ -106,9 +99,8 @@ public function setPhoneNumber($value) return $this->setParameter('phoneNumber', $value); } - - - public function getNote(){ + public function getNote() + { return $this->getParameter('note'); } @@ -117,7 +109,8 @@ public function setNote($value) return $this->setParameter('note', $value); } - public function getReferenceId(){ + public function getReferenceId() + { return $this->getParameter('referenceId'); } @@ -125,6 +118,22 @@ public function setReferenceId($value) { return $this->setParameter('referenceId', $value); } + + public function getEnvironment() + { + return $this->getTestMode() === true ? Environment::SANDBOX : Environment::PRODUCTION; + } + + private function getApiInstance() + { + $api_client = new SquareClient([ + 'accessToken' => $this->getAccessToken(), + 'environment' => $this->getEnvironment() + ]); + + return $api_client->getCustomersApi(); + } + /** * Get the raw data array for this message. The format of this varies from gateway to * gateway, but will usually be either an associative array, or a SimpleXMLElement. @@ -133,33 +142,31 @@ public function setReferenceId($value) */ public function getData() { - $data = []; - - $data['given_name'] = $this->getFirstName(); - $data['family_name'] = $this->getLastName(); - $data['company_name'] = $this->getCompanyName(); - $data['email_address'] = $this->getEmail(); + $data = new \Square\Models\UpdateCustomerRequest(); + $data->setGivenName($this->getFirstName()); + $data->setFamilyName($this->getLastName()); + $data->setCompanyName($this->getCompanyName()); + $data->setEmailAddress($this->getEmail()); - $data['address'] = $this->getAddress(); - $data['nickname'] = $this->getEmail(); - $data['phone_number'] = $this->getPhoneNumber(); - $data['reference_id'] = $this->getReferenceId(); - $data['note'] = $this->getNote(); + $data->setAddress($this->getAddress()); + $data->setNickname($this->getEmail()); + $data->setPhoneNumber($this->getPhoneNumber()); + $data->setReferenceId($this->getReferenceId()); + $data->setNote($this->getNote()); return $data; } + /** * Send the request with specified data * - * @param mixed $data The data to send + * @param mixed $data The data to send * @return ResponseInterface */ public function sendData($data) { - SquareConnect\Configuration::getDefaultConfiguration()->setAccessToken($this->getAccessToken()); - - $api_instance = new SquareConnect\Api\CustomersApi(); + $api_instance = $this->getApiInstance(); try { $result = $api_instance->updateCustomer($this->getCustomerReference(), $data); @@ -173,13 +180,13 @@ public function sendData($data) } else { $response = [ 'status' => 'success', - 'customer' => $result->getCustomer() + 'customer' => $result->getResult()->getCustomer() ]; } } catch (\Exception $e) { $response = [ 'status' => 'error', - 'detail' => 'Exception when creating customer: ' . $e->getMessage() + 'detail' => 'Exception when updating customer: ' . $e->getMessage() ]; } @@ -190,4 +197,4 @@ public function createResponse($response) { return $this->response = new CustomerResponse($this, $response); } -} \ No newline at end of file +} diff --git a/src/Message/WebPaymentRequest.php b/src/Message/WebPaymentRequest.php index 32fbf09..77462ac 100644 --- a/src/Message/WebPaymentRequest.php +++ b/src/Message/WebPaymentRequest.php @@ -3,7 +3,8 @@ namespace Omnipay\Square\Message; use Omnipay\Common\Message\AbstractRequest; -use SquareConnect; +use Square\Environment; +use Square\SquareClient; /** * Square Purchase Request @@ -30,6 +31,21 @@ public function setLocationId($value) return $this->setParameter('locationId', $value); } + public function getEnvironment() + { + return $this->getTestMode() === true ? Environment::SANDBOX : Environment::PRODUCTION; + } + + private function getApiInstance() + { + $api_client = new SquareClient([ + 'accessToken' => $this->getAccessToken(), + 'environment' => $this->getEnvironment() + ]); + + return $api_client->getCheckoutApi(); + } + public function getData() { $items = $this->getItems(); @@ -38,45 +54,37 @@ public function getData() if (!empty($items) && count($items) > 0) { foreach ($items as $index => $item) { - $items_list[$index] = new SquareConnect\Model\OrderLineItem( - [ - 'name' => $item->getName(), - 'quantity' => (string) $item->getQuantity(), - 'base_price_money' => new SquareConnect\Model\Money( - [ - 'amount' => $item->getPrice() * 100, - 'currency' => $this->getCurrency() - ] - ) - ] - ); + $base_price_money = new \Square\Models\Money(); + $base_price_money->setAmount($item->getPrice() * 100); + $base_price_money->setCurrency($this->getCurrency()); + + $items_list[$index] = new \Square\Models\OrderLineItem((string) $item->getQuantity()); + $items_list[$index]->setName($item->getName()); + $items_list[$index]->setBasePriceMoney($base_price_money); } } - $data_array = [ - 'idempotency_key' => uniqid(), - 'order' => new SquareConnect\Model\Order([ - 'reference_id' => $this->getTransactionReference(), - 'line_items' => $items_list - ]), - 'ask_for_shipping_address' => false, - 'redirect_url' => $this->getReturnUrl() - ]; + $order = new \Square\Models\Order($this->getLocationId()); + $order->setReferenceId($this->getTransactionReference()); + $order->setLineItems($items_list); - $data = new \SquareConnect\Model\CreateCheckoutRequest($data_array); + $order_request = new \Square\Models\CreateOrderRequest(); + $order_request->setOrder($order); + + $data = new \Square\Models\CreateCheckoutRequest(uniqid(), $order_request); + $data->setAskForShippingAddress(false); + $data->setRedirectUrl($this->getReturnUrl()); return $data; } public function sendData($data) { - SquareConnect\Configuration::getDefaultConfiguration()->setAccessToken($this->getAccessToken()); - - $api_instance = new SquareConnect\Api\CheckoutApi(); + $api_instance = $this->getApiInstance(); try { $result = $api_instance->createCheckout($this->getLocationId(), $data); - $result = $result->getCheckout(); + $result = $result->getResult()->getCheckout(); $response = [ 'id' => $result->getId(), 'checkout_url' => $result->getCheckoutPageUrl() From b11bcd69901cceb7be8d7f7dbf47945ffd828fd8 Mon Sep 17 00:00:00 2001 From: Dylan Aird Date: Wed, 4 Aug 2021 13:58:13 +1000 Subject: [PATCH 08/17] update charge request to return first error --- src/Message/ChargeRequest.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Message/ChargeRequest.php b/src/Message/ChargeRequest.php index b5065a9..796b721 100755 --- a/src/Message/ChargeRequest.php +++ b/src/Message/ChargeRequest.php @@ -172,11 +172,11 @@ public function sendData($data) $result = $api_instance->createPayment($data); - if ($error = $result->getErrors()) { + if ($error = $result->getErrors() && count($result->getErrors()) > 0) { $response = [ 'status' => 'error', - 'code' => $error['code'], - 'detail' => $error['detail'] + 'code' => $error[0]['code'], + 'detail' => $error[0]['detail'] ]; } else { $response = [ From f5893de934d9c8207c2e940b415f6b503751ce72 Mon Sep 17 00:00:00 2001 From: Dylan Aird Date: Wed, 4 Aug 2021 15:29:29 +1000 Subject: [PATCH 09/17] fix grabbing private var --- src/Message/ChargeRequest.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Message/ChargeRequest.php b/src/Message/ChargeRequest.php index 796b721..8b88fc7 100755 --- a/src/Message/ChargeRequest.php +++ b/src/Message/ChargeRequest.php @@ -175,8 +175,8 @@ public function sendData($data) if ($error = $result->getErrors() && count($result->getErrors()) > 0) { $response = [ 'status' => 'error', - 'code' => $error[0]['code'], - 'detail' => $error[0]['detail'] + 'code' => $error[0]->getCode(), + 'detail' => $error[0]->getDetail() ]; } else { $response = [ From 3304ab01f92d7655302aefd9ca7cd59ee3f1f6e1 Mon Sep 17 00:00:00 2001 From: Dylan Aird Date: Wed, 4 Aug 2021 16:19:44 +1000 Subject: [PATCH 10/17] fixes --- src/Message/ChargeRequest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Message/ChargeRequest.php b/src/Message/ChargeRequest.php index 8b88fc7..306a024 100755 --- a/src/Message/ChargeRequest.php +++ b/src/Message/ChargeRequest.php @@ -172,7 +172,7 @@ public function sendData($data) $result = $api_instance->createPayment($data); - if ($error = $result->getErrors() && count($result->getErrors()) > 0) { + if ($error = $result->getErrors() && is_array($error) && count($error) > 0) { $response = [ 'status' => 'error', 'code' => $error[0]->getCode(), From 338407f25803ffd772e3680b6158c9fdb3a34663 Mon Sep 17 00:00:00 2001 From: deckbooks Date: Sun, 22 Aug 2021 10:36:59 +0100 Subject: [PATCH 11/17] Remove $liveEndpoint and $testEndpoint variables as these are not needed and are handled by getEnvironment() --- src/Message/ListTransactionsRequest.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/Message/ListTransactionsRequest.php b/src/Message/ListTransactionsRequest.php index 8d40da6..245b80f 100644 --- a/src/Message/ListTransactionsRequest.php +++ b/src/Message/ListTransactionsRequest.php @@ -11,9 +11,6 @@ */ class ListTransactionsRequest extends AbstractRequest { - protected $liveEndpoint = 'https://connect.squareup.com'; - protected $testEndpoint = 'https://connect.squareupsandbox.com'; - public function getAccessToken() { return $this->getParameter('accessToken'); From 8c134c0660c1e0c5a1cbeda26385c3cc1c4e019c Mon Sep 17 00:00:00 2001 From: Mike Beck Date: Mon, 23 Aug 2021 11:35:20 +1200 Subject: [PATCH 12/17] fix: Update listTransactions endpoint to no longer use deprecated API The new Square API deprecates the Transactions API, so use the Payments API instead. --- src/Message/ListTransactionsRequest.php | 69 ++++--------------------- 1 file changed, 11 insertions(+), 58 deletions(-) diff --git a/src/Message/ListTransactionsRequest.php b/src/Message/ListTransactionsRequest.php index 245b80f..d8c1062 100644 --- a/src/Message/ListTransactionsRequest.php +++ b/src/Message/ListTransactionsRequest.php @@ -4,6 +4,7 @@ use Omnipay\Common\Message\AbstractRequest; use Square\Environment; +use Square\Models\ListPaymentsResponse; use Square\SquareClient; /** @@ -83,7 +84,7 @@ private function getApiInstance() 'environment' => $this->getEnvironment() ]); - return $api_client->getTransactionsApi(); + return $api_client->getPaymentsApi(); } public function getData() @@ -96,12 +97,12 @@ public function sendData($data = '') $api_instance = $this->getApiInstance(); try { - $result = $api_instance->listTransactions( - $this->getLocationId(), + $result = $api_instance->listPayments( $this->getBeginTime(), $this->getEndTime(), $this->getSortOrder(), - $this->getCursor() + $this->getCursor(), + $this->getLocationId() ); if ($error = $result->getErrors()) { @@ -112,72 +113,24 @@ public function sendData($data = '') ]; } else { $transactions = []; - $transactionList = $result->getResult()->getTransactions(); + $transactionList = $result->getResult()->getPayments(); if ($transactionList === null) { $transactionList = []; } + /** @var \Square\Models\Payment $transaction */ foreach ($transactionList as $transaction) { $trans = new \stdClass(); $trans->id = $transaction->getID(); $trans->orderId = $transaction->getOrderId(); - $trans->clientId = $transaction->getClientId(); + $trans->clientId = $transaction->getCustomerId(); $trans->referenceId = $transaction->getReferenceId(); $trans->locationId = $transaction->getLocationId(); $trans->createdAt = $transaction->getCreatedAt(); $trans->shippingAddress = $transaction->getShippingAddress(); - $trans->product = $transaction->getProduct(); + $trans->amount = $transaction->getAmountMoney()->getAmount(); + $trans->status = $transaction->getStatus(); $trans->items = []; - $tenderList = $transaction->getTenders(); - if ($tenderList === null) { - $tenderList = []; - } - foreach ($tenderList as $tender) { - $item = new \stdClass(); - $item->id = $tender->getId(); - $item->quantity = 1; - $item->amount = $tender->getAmountMoney()->getAmount(); - $item->currency = $tender->getAmountMoney()->getCurrency(); - if ($tender->getTipMoney() !== null) { - $item->tipAmount = $tender->getTipMoney()->getAmount(); - } - $item->processingFee = $tender->getProcessingFeeMoney()->getAmount(); - $item->note = $tender->getNote(); - $item->type = $tender->getType(); - $item->customerId = $tender->getCustomerId(); - $item->cardDetails = new \stdClass(); - $cardDetails = $tender->getCardDetails(); - if (!empty($cardDetails)) { - $item->cardDetails->status = $cardDetails->getStatus(); - $item->cardDetails->card = $cardDetails->getCard(); - $item->cardDetails->entryMethod = $cardDetails->getEntryMethod(); - } - $item->cashDetails = new \stdClass(); - $cashDetails = $tender->getcashDetails(); - if (!empty($cashDetails)) { - $item->cashDetails->buyerTenderedMoney = $cashDetails->getBuyerTenderedMoney()->getAmount(); - $item->cashDetails->chargeBackMoney = $cashDetails->getChangeBackMoney()->getAmount(); - } - $trans->items[] = $item; - } $trans->refunds = []; - $refundList = $transaction->getRefunds(); - if ($refundList === null) { - $refundList = []; - } - foreach ($refundList as $refund) { - $item = new \stdClass(); - $item->id = $refund->getId(); - $item->tenderId = $refund->getTenderId(); - $item->locationId = $refund->getLocationId(); - $item->transactionId = $refund->getTransactionId(); - $item->createdAt = $refund->getCreatedAt(); - $item->reason = $refund->getReason(); - $item->status = $refund->getStatus(); - $item->amount = $refund->getAmountMoney()->getAmount(); - $item->processingFee = $refund->getProcessingFeeMoney(); - $item->currency = $refund->getAmountMoney()->getCurrency(); - $trans->items[] = $item; - } $transactions[] = $trans; } $response = [ @@ -189,7 +142,7 @@ public function sendData($data = '') } catch (\Exception $e) { $response = [ 'status' => 'error', - 'detail' => 'Exception when calling TransactionsApi->listTransactions: ' . $e->getMessage() + 'detail' => 'Exception when calling PaymentsApi->listPayments: ' . $e->getMessage() ]; } From a7fd9db54698cab6e28b42b646e8bc0a5e6beaf7 Mon Sep 17 00:00:00 2001 From: Mike Beck Date: Mon, 23 Aug 2021 16:33:57 +1200 Subject: [PATCH 13/17] fix: Update new card endpoints to be compatible with Square SDK --- src/Message/CardResponse.php | 19 +++++++++---------- src/Message/CreateCardRequest.php | 16 ++++++++++++---- src/Message/CustomerResponse.php | 10 +++++----- src/Message/UpdateCustomerRequest.php | 1 + 4 files changed, 27 insertions(+), 19 deletions(-) diff --git a/src/Message/CardResponse.php b/src/Message/CardResponse.php index bbbc682..32fea3a 100644 --- a/src/Message/CardResponse.php +++ b/src/Message/CardResponse.php @@ -4,6 +4,7 @@ use Omnipay\Common\Message\AbstractResponse; use Omnipay\Common\Message\RedirectResponseInterface; +use Square\Models\Card; /** * Square Purchase Response @@ -26,23 +27,21 @@ public function getErrorCode() return $this->data['code']; } - public function getCard() + public function getCard(): ?Card { - if(isset($this->data['card'])){ - if(!empty($this->data['card'])){ - return $this->data['card']; - } + if(!empty($this->data['card'])) { + return $this->data['card']; } + return null; } - public function getCardReference() + public function getCardReference(): ?string { - if(isset($this->data['card'])){ - if(!empty($this->data['card'])){ - return $this->data['card']['id']; - } + if(!empty($this->data['card'])) { + return $this->data['card']->getId(); } + return null; } } diff --git a/src/Message/CreateCardRequest.php b/src/Message/CreateCardRequest.php index 1efcbaa..3bda348 100644 --- a/src/Message/CreateCardRequest.php +++ b/src/Message/CreateCardRequest.php @@ -3,7 +3,10 @@ namespace Omnipay\Square\Message; use Omnipay\Common\Message\AbstractRequest; +use Square\Apis\CardsApi; use Square\Environment; +use Square\Models\Card; +use Square\Models\CreateCardRequest as CreateSquareCardRequest; use Square\SquareClient; /** @@ -63,23 +66,28 @@ private function getApiInstance() 'environment' => $this->getEnvironment() ]); - return $api_client->getCustomersApi(); + return $api_client->getCardsApi(); } public function getData() { - $data = new \Square\Models\CreateCustomerCardRequest($this->getCard()); - $data->setCardholderName($this->getCardholderName()); + $idempotencyKey = uniqid(); + $sourceId = $this->getCard(); // Card nonce + $card = new Card; + $card->setCustomerId($this->getCustomerReference()); + + $data = new CreateSquareCardRequest($idempotencyKey, $sourceId, $card); return $data; } public function sendData($data) { + /** @var CardsApi $api_instance */ $api_instance = $this->getApiInstance(); try { - $result = $api_instance->createCustomerCard($this->getCustomerReference(), $data); + $result = $api_instance->createCard($data); if ($error = $result->getErrors()) { $response = [ diff --git a/src/Message/CustomerResponse.php b/src/Message/CustomerResponse.php index 964cd7c..ec92f2c 100644 --- a/src/Message/CustomerResponse.php +++ b/src/Message/CustomerResponse.php @@ -4,6 +4,7 @@ use Omnipay\Common\Message\AbstractResponse; use Omnipay\Common\Message\RedirectResponseInterface; +use Square\Models\Customer; /** * Square Purchase Response @@ -26,13 +27,12 @@ public function getErrorCode() return $this->data['code']; } - public function getCustomer() + public function getCustomer(): ?Customer { - if(isset($this->data['customer'])){ - if(!empty($this->data['customer'])){ - return $this->data['customer']; - } + if(!empty($this->data['customer'])){ + return $this->data['customer']; } + return null; } diff --git a/src/Message/UpdateCustomerRequest.php b/src/Message/UpdateCustomerRequest.php index 9983d73..2538144 100644 --- a/src/Message/UpdateCustomerRequest.php +++ b/src/Message/UpdateCustomerRequest.php @@ -5,6 +5,7 @@ use Omnipay\Common\Message\AbstractRequest; use Omnipay\Common\Message\ResponseInterface; use Square\Environment; +use Square\Models\Address; use Square\SquareClient; class UpdateCustomerRequest extends AbstractRequest From 55106f984936d1a96e107ab4bbf1a863301e0ac1 Mon Sep 17 00:00:00 2001 From: Mike Beck Date: Mon, 23 Aug 2021 16:45:03 +1200 Subject: [PATCH 14/17] fix: Fix undefined index exception when handling error The `getErrors` function returns an array of errors; this commit gets the details for the first error in the array. --- src/Message/ChargeRequest.php | 8 +++++--- src/Message/CreateCardRequest.php | 8 +++++--- src/Message/CreateCustomerRequest.php | 8 +++++--- src/Message/DeleteCardRequest.php | 8 +++++--- src/Message/DeleteCustomerRequest.php | 8 +++++--- src/Message/FetchCardRequest.php | 8 +++++--- src/Message/FetchCustomerRequest.php | 8 +++++--- src/Message/ListRefundsRequest.php | 8 +++++--- src/Message/ListTransactionsRequest.php | 8 +++++--- src/Message/RefundRequest.php | 8 +++++--- src/Message/TransactionRequest.php | 8 +++++--- src/Message/UpdateCustomerRequest.php | 8 +++++--- 12 files changed, 60 insertions(+), 36 deletions(-) diff --git a/src/Message/ChargeRequest.php b/src/Message/ChargeRequest.php index b5065a9..40cc9e5 100755 --- a/src/Message/ChargeRequest.php +++ b/src/Message/ChargeRequest.php @@ -172,11 +172,13 @@ public function sendData($data) $result = $api_instance->createPayment($data); - if ($error = $result->getErrors()) { + if ($errors = $result->getErrors()) { $response = [ 'status' => 'error', - 'code' => $error['code'], - 'detail' => $error['detail'] + 'code' => $errors[0]->getCode(), + 'detail' => $errors[0]->getDetail(), + 'field' => $errors[0]->getField(), + 'category' => $errors[0]->getCategory() ]; } else { $response = [ diff --git a/src/Message/CreateCardRequest.php b/src/Message/CreateCardRequest.php index 3bda348..747c4bd 100644 --- a/src/Message/CreateCardRequest.php +++ b/src/Message/CreateCardRequest.php @@ -89,11 +89,13 @@ public function sendData($data) try { $result = $api_instance->createCard($data); - if ($error = $result->getErrors()) { + if ($errors = $result->getErrors()) { $response = [ 'status' => 'error', - 'code' => $error['code'], - 'detail' => $error['detail'] + 'code' => $errors[0]->getCode(), + 'detail' => $errors[0]->getDetail(), + 'field' => $errors[0]->getField(), + 'category' => $errors[0]->getCategory() ]; } else { $response = [ diff --git a/src/Message/CreateCustomerRequest.php b/src/Message/CreateCustomerRequest.php index 076424b..fbe9ca8 100644 --- a/src/Message/CreateCustomerRequest.php +++ b/src/Message/CreateCustomerRequest.php @@ -116,11 +116,13 @@ public function sendData($data) try { $result = $api_instance->createCustomer($data); - if ($error = $result->getErrors()) { + if ($errors = $result->getErrors()) { $response = [ 'status' => 'error', - 'code' => $error['code'], - 'detail' => $error['detail'] + 'code' => $errors[0]->getCode(), + 'detail' => $errors[0]->getDetail(), + 'field' => $errors[0]->getField(), + 'category' => $errors[0]->getCategory() ]; } else { $response = [ diff --git a/src/Message/DeleteCardRequest.php b/src/Message/DeleteCardRequest.php index 5198aed..207b151 100644 --- a/src/Message/DeleteCardRequest.php +++ b/src/Message/DeleteCardRequest.php @@ -82,11 +82,13 @@ public function sendData($data) try { $result = $api_instance->deleteCustomerCard($data['customer_id'], $data['card_id']); - if ($error = $result->getErrors()) { + if ($errors = $result->getErrors()) { $response = [ 'status' => 'error', - 'code' => $error['code'], - 'detail' => $error['detail'] + 'code' => $errors[0]->getCode(), + 'detail' => $errors[0]->getDetail(), + 'field' => $errors[0]->getField(), + 'category' => $errors[0]->getCategory() ]; } else { $response = [ diff --git a/src/Message/DeleteCustomerRequest.php b/src/Message/DeleteCustomerRequest.php index 5421617..8ff19c6 100644 --- a/src/Message/DeleteCustomerRequest.php +++ b/src/Message/DeleteCustomerRequest.php @@ -59,11 +59,13 @@ public function sendData($data) try { $result = $api_instance->deleteCustomer($data['customer_id']); - if ($error = $result->getErrors()) { + if ($errors = $result->getErrors()) { $response = [ 'status' => 'error', - 'code' => $error['code'], - 'detail' => $error['detail'] + 'code' => $errors[0]->getCode(), + 'detail' => $errors[0]->getDetail(), + 'field' => $errors[0]->getField(), + 'category' => $errors[0]->getCategory() ]; } else { $response = [ diff --git a/src/Message/FetchCardRequest.php b/src/Message/FetchCardRequest.php index 26da982..ef768fa 100644 --- a/src/Message/FetchCardRequest.php +++ b/src/Message/FetchCardRequest.php @@ -77,11 +77,13 @@ public function sendData($data) try { $result = $api_instance->retrieveCustomer($data['customer_id']); - if ($error = $result->getErrors()) { + if ($errors = $result->getErrors()) { $response = [ 'status' => 'error', - 'code' => $error['code'], - 'detail' => $error['detail'] + 'code' => $errors[0]->getCode(), + 'detail' => $errors[0]->getDetail(), + 'field' => $errors[0]->getField(), + 'category' => $errors[0]->getCategory() ]; } else { $cardId = $this->getCard(); diff --git a/src/Message/FetchCustomerRequest.php b/src/Message/FetchCustomerRequest.php index f5f1d71..f020de7 100644 --- a/src/Message/FetchCustomerRequest.php +++ b/src/Message/FetchCustomerRequest.php @@ -60,11 +60,13 @@ public function sendData($data) $result = $api_instance->retrieveCustomer($data['customer_id']); - if ($error = $result->getErrors()) { + if ($errors = $result->getErrors()) { $response = [ 'status' => 'error', - 'code' => $error['code'], - 'detail' => $error['detail'] + 'code' => $errors[0]->getCode(), + 'detail' => $errors[0]->getDetail(), + 'field' => $errors[0]->getField(), + 'category' => $errors[0]->getCategory() ]; } else { $response = [ diff --git a/src/Message/ListRefundsRequest.php b/src/Message/ListRefundsRequest.php index 42ffa97..66e7e36 100644 --- a/src/Message/ListRefundsRequest.php +++ b/src/Message/ListRefundsRequest.php @@ -104,11 +104,13 @@ public function sendData($data = '') $this->getCursor() ); - if ($error = $result->getErrors()) { + if ($errors = $result->getErrors()) { $response = [ 'status' => 'error', - 'code' => $error['code'], - 'detail' => $error['detail'] + 'code' => $errors[0]->getCode(), + 'detail' => $errors[0]->getDetail(), + 'field' => $errors[0]->getField(), + 'category' => $errors[0]->getCategory() ]; } else { $refunds = []; diff --git a/src/Message/ListTransactionsRequest.php b/src/Message/ListTransactionsRequest.php index d8c1062..77b7280 100644 --- a/src/Message/ListTransactionsRequest.php +++ b/src/Message/ListTransactionsRequest.php @@ -105,11 +105,13 @@ public function sendData($data = '') $this->getLocationId() ); - if ($error = $result->getErrors()) { + if ($errors = $result->getErrors()) { $response = [ 'status' => 'error', - 'code' => $error['code'], - 'detail' => $error['detail'] + 'code' => $errors[0]->getCode(), + 'detail' => $errors[0]->getDetail(), + 'field' => $errors[0]->getField(), + 'category' => $errors[0]->getCategory() ]; } else { $transactions = []; diff --git a/src/Message/RefundRequest.php b/src/Message/RefundRequest.php index 35d63bd..35af415 100755 --- a/src/Message/RefundRequest.php +++ b/src/Message/RefundRequest.php @@ -105,11 +105,13 @@ public function sendData($data) $result = $api_instance->refundPayment($data); - if ($error = $result->getErrors()) { + if ($errors = $result->getErrors()) { $response = [ 'status' => 'error', - 'code' => $error['code'], - 'detail' => $error['detail'] + 'code' => $errors[0]->getCode(), + 'detail' => $errors[0]->getDetail(), + 'field' => $errors[0]->getField(), + 'category' => $errors[0]->getCategory() ]; } else { $response = [ diff --git a/src/Message/TransactionRequest.php b/src/Message/TransactionRequest.php index 54ad463..c613eff 100644 --- a/src/Message/TransactionRequest.php +++ b/src/Message/TransactionRequest.php @@ -97,11 +97,13 @@ public function sendData($data) } } - if ($error = $result->getErrors()) { + if ($errors = $result->getErrors()) { $response = [ 'status' => 'error', - 'code' => $error['code'], - 'detail' => $error['detail'] + 'code' => $errors[0]->getCode(), + 'detail' => $errors[0]->getDetail(), + 'field' => $errors[0]->getField(), + 'category' => $errors[0]->getCategory() ]; } else { $response = [ diff --git a/src/Message/UpdateCustomerRequest.php b/src/Message/UpdateCustomerRequest.php index 2538144..b92b043 100644 --- a/src/Message/UpdateCustomerRequest.php +++ b/src/Message/UpdateCustomerRequest.php @@ -172,11 +172,13 @@ public function sendData($data) try { $result = $api_instance->updateCustomer($this->getCustomerReference(), $data); - if ($error = $result->getErrors()) { + if ($errors = $result->getErrors()) { $response = [ 'status' => 'error', - 'code' => $error['code'], - 'detail' => $error['detail'] + 'code' => $errors[0]->getCode(), + 'detail' => $errors[0]->getDetail(), + 'field' => $errors[0]->getField(), + 'category' => $errors[0]->getCategory() ]; } else { $response = [ From 663957ea8e8bca684fbd8b4ed2a66e1092c5fb6f Mon Sep 17 00:00:00 2001 From: Dylan Date: Mon, 4 Oct 2021 12:23:14 +1100 Subject: [PATCH 15/17] fix charge request and fix CustomerResponse.php using customer object as an array. --- src/Message/ChargeRequest.php | 2 +- src/Message/CustomerResponse.php | 24 ++++++------------------ 2 files changed, 7 insertions(+), 19 deletions(-) diff --git a/src/Message/ChargeRequest.php b/src/Message/ChargeRequest.php index 306a024..a84c290 100755 --- a/src/Message/ChargeRequest.php +++ b/src/Message/ChargeRequest.php @@ -172,7 +172,7 @@ public function sendData($data) $result = $api_instance->createPayment($data); - if ($error = $result->getErrors() && is_array($error) && count($error) > 0) { + if ($error = $result->getErrors()) { $response = [ 'status' => 'error', 'code' => $error[0]->getCode(), diff --git a/src/Message/CustomerResponse.php b/src/Message/CustomerResponse.php index 964cd7c..8eb1546 100644 --- a/src/Message/CustomerResponse.php +++ b/src/Message/CustomerResponse.php @@ -11,6 +11,7 @@ class CustomerResponse extends AbstractResponse implements RedirectResponseInterface { + public function isSuccessful() { return $this->data['status'] === 'success'; @@ -28,29 +29,16 @@ public function getErrorCode() public function getCustomer() { - if(isset($this->data['customer'])){ - if(!empty($this->data['customer'])){ - return $this->data['customer']; - } - } - return null; + return $this->data['customer'] ?? null; } public function getCustomerReference(){ - if(isset($this->data['customer'])){ - if(!empty($this->data['customer'])){ - return $this->data['customer']['id']; - } - } - return null; + return $this->data['customer'] ? $this->data['customer']->getId() : null; } - + /* + * Depreciated + * */ public function getCustomerCards(){ - if(isset($this->data['customer'])){ - if(!empty($this->data['customer'])){ - return $this->data['customer']['cards']; - } - } return null; } } From 38fc188a9c2af87f197f03fa90cfeb4efa382662 Mon Sep 17 00:00:00 2001 From: Mike Beck Date: Tue, 19 Oct 2021 11:56:25 +1300 Subject: [PATCH 16/17] feat: Add 'fetch refund' request --- src/Gateway.php | 9 +++ src/Message/FetchRefundRequest.php | 92 +++++++++++++++++++++++++++++ src/Message/FetchRefundResponse.php | 33 +++++++++++ 3 files changed, 134 insertions(+) create mode 100644 src/Message/FetchRefundRequest.php create mode 100644 src/Message/FetchRefundResponse.php diff --git a/src/Gateway.php b/src/Gateway.php index cca64fe..4ca471d 100755 --- a/src/Gateway.php +++ b/src/Gateway.php @@ -178,4 +178,13 @@ public function refund(array $parameters = []) { return $this->createRequest('\Omnipay\Square\Message\RefundRequest', $parameters); } + + /** + * @param array $parameters + * @return \Omnipay\Common\Message\AbstractRequest|\Omnipay\Square\Message\FetchRefundResponse + */ + public function fetchRefund(array $parameters = []) + { + return $this->createRequest('\Omnipay\Square\Message\FetchRefundRequest', $parameters); + } } diff --git a/src/Message/FetchRefundRequest.php b/src/Message/FetchRefundRequest.php new file mode 100644 index 0000000..e735b19 --- /dev/null +++ b/src/Message/FetchRefundRequest.php @@ -0,0 +1,92 @@ +getParameter('accessToken'); + } + + public function setAccessToken($value) + { + return $this->setParameter('accessToken', $value); + } + + public function setRefundId($value) + { + return $this->setParameter('refundId', $value); + } + + public function getRefundId() + { + return $this->getParameter('refundId'); + } + + public function getEnvironment() + { + return $this->getTestMode() === true ? Environment::SANDBOX : Environment::PRODUCTION; + } + + private function getApiInstance() + { + $api_client = new SquareClient([ + 'accessToken' => $this->getAccessToken(), + 'environment' => $this->getEnvironment() + ]); + + return $api_client->getRefundsApi(); + } + + public function getData() + { + $data = []; + + $data['refund_id'] = $this->getRefundId(); + + return $data; + } + + public function sendData($data) + { + try { + $api_instance = $this->getApiInstance(); + + $result = $api_instance->getPaymentRefund($data['refund_id']); + + if ($errors = $result->getErrors()) { + $response = [ + 'status' => 'error', + 'code' => $errors[0]->getCode(), + 'detail' => $errors[0]->getDetail(), + 'field' => $errors[0]->getField(), + 'category' => $errors[0]->getCategory() + ]; + } else { + $response = [ + 'status' => 'success', + 'refund' => $result->getResult()->getRefund() + ]; + } + } catch (\Exception $e) { + $response = [ + 'status' => 'error', + 'detail' => 'Exception when retrieving refund: ' . $e->getMessage() + ]; + } + + return $this->createResponse($response); + } + + public function createResponse($response) + { + return $this->response = new FetchRefundResponse($this, $response); + } + +} diff --git a/src/Message/FetchRefundResponse.php b/src/Message/FetchRefundResponse.php new file mode 100644 index 0000000..7d08125 --- /dev/null +++ b/src/Message/FetchRefundResponse.php @@ -0,0 +1,33 @@ +data['status'] === 'success'; + } + + public function getErrorDetail() + { + return $this->data['detail']; + } + + public function getErrorCode() + { + return $this->data['code']; + } + + public function getRefund(): ?PaymentRefund + { + if (!empty($this->data['refund'])) { + return $this->data['refund']; + } + + return null; + } +} From 4f4ec49852b732e9736e45bb8ff0e7834788949d Mon Sep 17 00:00:00 2001 From: nicholaszuccarelli Date: Mon, 18 Sep 2023 13:20:02 +1000 Subject: [PATCH 17/17] Consolidate Square code to use proper getCode and getMessage for errors --- src/Message/CardResponse.php | 8 ++++---- src/Message/ChargeResponse.php | 12 ++++++------ src/Message/CustomerResponse.php | 8 ++++---- src/Message/FetchRefundResponse.php | 8 ++++---- src/Message/ListRefundsResponse.php | 14 ++++++-------- src/Message/ListTransactionsResponse.php | 14 ++++++-------- src/Message/RefundResponse.php | 15 +++++++-------- 7 files changed, 37 insertions(+), 42 deletions(-) diff --git a/src/Message/CardResponse.php b/src/Message/CardResponse.php index 32fea3a..d9a4ca8 100644 --- a/src/Message/CardResponse.php +++ b/src/Message/CardResponse.php @@ -17,14 +17,14 @@ public function isSuccessful() return $this->data['status'] === 'success'; } - public function getErrorDetail() + public function getCode() { - return $this->data['detail']; + return $this->data['code'] ?? null; } - public function getErrorCode() + public function getMessage() { - return $this->data['code']; + return $this->data['detail'] ?? $this->data['error'] ?? null; } public function getCard(): ?Card diff --git a/src/Message/ChargeResponse.php b/src/Message/ChargeResponse.php index 8d2f14d..4f937b0 100755 --- a/src/Message/ChargeResponse.php +++ b/src/Message/ChargeResponse.php @@ -61,14 +61,14 @@ public function getReferenceId() return $this->data['referenceId'] ?? null; } - public function getMessage() + public function getCode() { - $message = ''; - if (isset($this->data['code'])) { - $message .= $this->data['code'] . ': '; - } + return $this->data['code'] ?? null; + } - return $message . ($this->data['detail'] ?? ''); + public function getMessage() + { + return $this->data['detail'] ?? $this->data['error'] ?? null; } /** diff --git a/src/Message/CustomerResponse.php b/src/Message/CustomerResponse.php index 8eb1546..d7e69f6 100644 --- a/src/Message/CustomerResponse.php +++ b/src/Message/CustomerResponse.php @@ -17,14 +17,14 @@ public function isSuccessful() return $this->data['status'] === 'success'; } - public function getErrorDetail() + public function getCode() { - return $this->data['detail']; + return $this->data['code'] ?? null; } - public function getErrorCode() + public function getMessage() { - return $this->data['code']; + return $this->data['detail'] ?? $this->data['error'] ?? null; } public function getCustomer() diff --git a/src/Message/FetchRefundResponse.php b/src/Message/FetchRefundResponse.php index 7d08125..6655168 100644 --- a/src/Message/FetchRefundResponse.php +++ b/src/Message/FetchRefundResponse.php @@ -12,14 +12,14 @@ public function isSuccessful() return $this->data['status'] === 'success'; } - public function getErrorDetail() + public function getCode() { - return $this->data['detail']; + return $this->data['code'] ?? null; } - public function getErrorCode() + public function getMessage() { - return $this->data['code']; + return $this->data['detail'] ?? $this->data['error'] ?? null; } public function getRefund(): ?PaymentRefund diff --git a/src/Message/ListRefundsResponse.php b/src/Message/ListRefundsResponse.php index 2448caa..4b59f3a 100644 --- a/src/Message/ListRefundsResponse.php +++ b/src/Message/ListRefundsResponse.php @@ -15,15 +15,13 @@ public function isSuccessful() return $this->data['status'] === 'success'; } + public function getCode() + { + return $this->data['code'] ?? null; + } + public function getMessage() { - $message = ''; - if (array_key_exists('code', $this->data) && strlen($this->data['code'])) { - $message .= $this->data['code'] . ': '; - } - if (array_key_exists('error', $this->data) && strlen($this->data['error'])) { - $message .= $this->data['error']; - } - return $message; + return $this->data['detail'] ?? $this->data['error'] ?? null; } } diff --git a/src/Message/ListTransactionsResponse.php b/src/Message/ListTransactionsResponse.php index 783aaa4..ed5a6bf 100644 --- a/src/Message/ListTransactionsResponse.php +++ b/src/Message/ListTransactionsResponse.php @@ -15,15 +15,13 @@ public function isSuccessful() return $this->data['status'] === 'success'; } + public function getCode() + { + return $this->data['code'] ?? null; + } + public function getMessage() { - $message = ''; - if (array_key_exists('code', $this->data) && strlen($this->data['code'])) { - $message .= $this->data['code'] . ': '; - } - if (array_key_exists('error', $this->data) && strlen($this->data['error'])) { - $message .= $this->data['error']; - } - return $message; + return $this->data['detail'] ?? $this->data['error'] ?? null; } } diff --git a/src/Message/RefundResponse.php b/src/Message/RefundResponse.php index 0cd6098..a0f3412 100644 --- a/src/Message/RefundResponse.php +++ b/src/Message/RefundResponse.php @@ -19,21 +19,20 @@ public function isPending() { return $this->data['status'] === 'PENDING'; } - + public function getTransactionReference() { return $this->isSuccessful() || $this->isPending() ? $this->data['id'] : null; } + public function getCode() + { + return $this->data['code'] ?? null; + } + public function getMessage() { - $message = ''; - if (array_key_exists('code', $this->data) && strlen($this->data['code'])) { - $message .= $this->data['code'] . ': '; - } - if (array_key_exists('error', $this->data) && strlen($this->data['error'])) { - $message .= $this->data['error']; - } + $message = $this->data['error'] ?? ''; if (!empty($this->data['errors'])) { foreach ($this->data['errors'] as $error) {