From 34d5809152f8d2aa409e8aca0ced66dc03608384 Mon Sep 17 00:00:00 2001 From: Pavlo Harashchenko Date: Sun, 23 Mar 2025 10:17:47 +0200 Subject: [PATCH 1/2] fix: missed status from api [SUSPENDED], for callback subscriptions --- src/Domain/TransactionBase.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Domain/TransactionBase.php b/src/Domain/TransactionBase.php index 1f4cc2b..3f9742c 100644 --- a/src/Domain/TransactionBase.php +++ b/src/Domain/TransactionBase.php @@ -29,6 +29,7 @@ class TransactionBase const STATUS_VOIDED = 'Voided'; const STATUS_DECLINED = 'Declined'; const STATUS_REFUND_IN_PROCESSING = 'RefundInProcessing'; + const STATUS_SUSPENDED = 'Suspended'; private $statusAllowed = array( self::STATUS_CREATED, @@ -41,6 +42,7 @@ class TransactionBase self::STATUS_VOIDED, self::STATUS_DECLINED, self::STATUS_REFUND_IN_PROCESSING, + self::STATUS_SUSPENDED ); const MERCHANT_TYPE_SALE = 'SALE'; @@ -419,4 +421,12 @@ public function isStatusRefundInProcessing() { return $this->status == self::STATUS_REFUND_IN_PROCESSING; } -} \ No newline at end of file + + /** + * @return bool + */ + public function isStatusSuspended() + { + return $this->status == self::STATUS_SUSPENDED; + } +} From 0ee3113d9903161518b0da47eda134f08285ac86 Mon Sep 17 00:00:00 2001 From: Bingogg14 Date: Thu, 9 Oct 2025 19:29:59 +0300 Subject: [PATCH 2/2] hotfix: for subscriptions use 'status' --- src/Domain/TransactionService.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Domain/TransactionService.php b/src/Domain/TransactionService.php index 47c1d39..3cb12c9 100644 --- a/src/Domain/TransactionService.php +++ b/src/Domain/TransactionService.php @@ -78,12 +78,16 @@ public static function fromArray(array $data) $data = array_merge($default, $data); + $transactionStatus = !empty($data['transactionStatus']) ? $data['transactionStatus'] : ''; + $status = !empty($data['status']) ? $data['status'] : $transactionStatus; + $transactionStatus = !empty($transactionStatus) ? $transactionStatus : $status; + return new self( $data['orderReference'], (new DateTime('@' . $data['createdDate']))->setTimezone(new DateTimeZone(date_default_timezone_get())), $data['amount'], $data['currency'], - $data['transactionStatus'], + $transactionStatus, (new DateTime('@' . $data['processingDate']))->setTimezone(new DateTimeZone(date_default_timezone_get())), $data['reasonCode'], $data['reason'],