From eef39aaf51393658af3e24e80d5bee9cf8b74af3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Im=C3=A8ne?= Date: Mon, 10 Nov 2025 15:40:37 +0100 Subject: [PATCH] PRE-3054 fix: HostedFields url + object retrieve --- lib/Payplug/Core/APIRoutes.php | 2 +- .../Responses/HostedFieldTransactionResource.php | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/Payplug/Core/APIRoutes.php b/lib/Payplug/Core/APIRoutes.php index 106e2db..61c526a 100644 --- a/lib/Payplug/Core/APIRoutes.php +++ b/lib/Payplug/Core/APIRoutes.php @@ -121,7 +121,7 @@ public static function setHostedFieldsResource($hostedFieldsUrl){ * @return void */ public static function setHostedFieldsResourceRetrieve($hostedFieldsRetrieveUrl){ - self::$HOSTED_FIELDS_RESOURCE = $hostedFieldsRetrieveUrl; + self::$HOSTED_FIELDS_RESOURCE_RETRIEVE = $hostedFieldsRetrieveUrl; } /** diff --git a/lib/Payplug/Responses/HostedFieldTransactionResource.php b/lib/Payplug/Responses/HostedFieldTransactionResource.php index 54f08f0..6711754 100644 --- a/lib/Payplug/Responses/HostedFieldTransactionResource.php +++ b/lib/Payplug/Responses/HostedFieldTransactionResource.php @@ -52,6 +52,13 @@ class HostedFieldTransactionResource public function __construct($data = []) { + // Accept raw JSON string + if (is_string($data)) { + $decoded = json_decode($data, true); + if (json_last_error() === JSON_ERROR_NONE) { + $data = $decoded; + } + } if (empty($data) || !is_array($data)) { return; } @@ -63,10 +70,11 @@ public function __construct($data = []) $this->currency = !empty($payment_data['CURRENCY']) ? $payment_data['CURRENCY'] : 'EUR'; $this->created_at = !empty($payment_data['DATE']) ? $payment_data['DATE'] : null; $this->description = !empty($payment_data['DESCRIPTION']) ? $payment_data['DESCRIPTION'] : ''; - $this->is_paid = !empty($payment_data['DATE']) ? $payment_data['DATE'] : false; + $this->is_paid = $data['EXECCODE']=='0000'; $this->paid_at = !empty($payment_data['DATE']) ? $payment_data['DATE'] : null; $this->is_3ds = !empty($payment_data['3DSECURE']) ? $payment_data['3DSECURE'] : false; $this->card = [ + 'id'=> null, 'last4' => null, 'exp_month' => null, 'exp_year' => null,