From 92583ada0293ac5b3691b69fe9a5f9bcbd273115 Mon Sep 17 00:00:00 2001 From: TheCartpenter Date: Fri, 19 Jan 2024 18:31:30 -0500 Subject: [PATCH] Converted Worldpay objects to array --- .../model/extension/payment/worldpay.php | 64 +++++++++---------- 1 file changed, 31 insertions(+), 33 deletions(-) diff --git a/upload/catalog/model/extension/payment/worldpay.php b/upload/catalog/model/extension/payment/worldpay.php index e0f6f7f21..0bed87329 100644 --- a/upload/catalog/model/extension/payment/worldpay.php +++ b/upload/catalog/model/extension/payment/worldpay.php @@ -163,7 +163,7 @@ public function getTransactions(int $worldpay_order_id): array { } /** - * recurringPayment + * subscriptionPayment * * @param array $item * @param string $order_id_rand @@ -171,7 +171,7 @@ public function getTransactions(int $worldpay_order_id): array { * * @return void */ - public function recurringPayment(array $item, string $order_id_rand, string $token): void { + public function subscriptionPayment(array $item, string $order_id_rand, string $token): void { // Subscriptions $this->load->model('checkout/subscription'); @@ -218,41 +218,39 @@ public function recurringPayment(array $item, string $order_id_rand, string $tok $response_data = $this->model_extension_payment_worldpay->sendCurl('orders', $order); - if ($response_data) { - $this->model_extension_payment_worldpay->logger($response_data); + $this->model_extension_payment_worldpay->logger($response_data); - $next_payment = new \DateTime('now'); - $trial_end = new \DateTime('now'); - $subscription_end = new \DateTime('now'); + $next_payment = new \DateTime('now'); + $trial_end = new \DateTime('now'); + $subscription_end = new \DateTime('now'); - if ($item['subscription']['trial_status'] == 1 && $item['subscription']['trial_duration'] != 0) { - $next_payment = $this->calculateSchedule($item['subscription']['trial_frequency'], $next_payment, $item['subscription']['trial_cycle']); - $trial_end = $this->calculateSchedule($item['subscription']['trial_frequency'], $trial_end, $item['subscription']['trial_cycle'] * $item['subscription']['trial_duration']); - } elseif ($item['subscription']['trial_status'] == 1) { - $next_payment = $this->calculateSchedule($item['subscription']['trial_frequency'], $next_payment, $item['subscription']['trial_cycle']); - $trial_end = new \DateTime('0000-00-00'); - } + if ($item['subscription']['trial_status'] == 1 && $item['subscription']['trial_duration'] != 0) { + $next_payment = $this->calculateSchedule($item['subscription']['trial_frequency'], $next_payment, $item['subscription']['trial_cycle']); + $trial_end = $this->calculateSchedule($item['subscription']['trial_frequency'], $trial_end, $item['subscription']['trial_cycle'] * $item['subscription']['trial_duration']); + } elseif ($item['subscription']['trial_status'] == 1) { + $next_payment = $this->calculateSchedule($item['subscription']['trial_frequency'], $next_payment, $item['subscription']['trial_cycle']); + $trial_end = new \DateTime('0000-00-00'); + } - if ($trial_end > $subscription_end && $item['subscription']['duration'] != 0) { - $subscription_end = new \DateTime(date_format($trial_end, 'Y-m-d H:i:s')); - $subscription_end = $this->calculateSchedule($item['subscription']['frequency'], $subscription_end, $item['subscription']['cycle'] * $item['subscription']['duration']); - } elseif ($trial_end == $subscription_end && $item['subscription']['duration'] != 0) { - $next_payment = $this->calculateSchedule($item['subscription']['frequency'], $next_payment, $item['subscription']['cycle']); - $subscription_end = $this->calculateSchedule($item['subscription']['frequency'], $subscription_end, $item['subscription']['cycle'] * $item['subscription']['duration']); - } elseif ($trial_end > $subscription_end && $item['subscription']['duration'] == 0) { - $subscription_end = new \DateTime('0000-00-00'); - } elseif ($trial_end == $subscription_end && $item['subscription']['duration'] == 0) { - $next_payment = $this->calculateSchedule($item['subscription']['frequency'], $next_payment, $item['subscription']['cycle']); - $subscription_end = new \DateTime('0000-00-00'); - } + if ($trial_end > $subscription_end && $item['subscription']['duration'] != 0) { + $subscription_end = new \DateTime(date_format($trial_end, 'Y-m-d H:i:s')); + $subscription_end = $this->calculateSchedule($item['subscription']['frequency'], $subscription_end, $item['subscription']['cycle'] * $item['subscription']['duration']); + } elseif ($trial_end == $subscription_end && $item['subscription']['duration'] != 0) { + $next_payment = $this->calculateSchedule($item['subscription']['frequency'], $next_payment, $item['subscription']['cycle']); + $subscription_end = $this->calculateSchedule($item['subscription']['frequency'], $subscription_end, $item['subscription']['cycle'] * $item['subscription']['duration']); + } elseif ($trial_end > $subscription_end && $item['subscription']['duration'] == 0) { + $subscription_end = new \DateTime('0000-00-00'); + } elseif ($trial_end == $subscription_end && $item['subscription']['duration'] == 0) { + $next_payment = $this->calculateSchedule($item['subscription']['frequency'], $next_payment, $item['subscription']['cycle']); + $subscription_end = new \DateTime('0000-00-00'); + } - if ($response_data->paymentStatus == 'SUCCESS') { - $this->addRecurringOrder($order_info, $response_data->orderCode, $token, $price, $subscription_id, date_format($trial_end, 'Y-m-d H:i:s'), date_format($subscription_end, 'Y-m-d H:i:s')); - $this->updateRecurringOrder($subscription_id, date_format($next_payment, 'Y-m-d H:i:s')); - $this->addProfileTransaction($subscription_id, $response_data->orderCode, $price, 1); - } else { - $this->addProfileTransaction($subscription_id, '', $price, 4); - } + if (isset($response_data['paymentStatus']) && $response_data['paymentStatus'] == 'SUCCESS') { + $this->addRecurringOrder($order_info, $response_data['orderCode'], $token, $price, $subscription_id, date_format($trial_end, 'Y-m-d H:i:s'), date_format($subscription_end, 'Y-m-d H:i:s')); + $this->updateRecurringOrder($subscription_id, date_format($next_payment, 'Y-m-d H:i:s')); + $this->addProfileTransaction($subscription_id, $response_data['orderCode'], $price, 1); + } else { + $this->addProfileTransaction($subscription_id, '', $price, 4); } }