diff --git a/app/src/Service/Venta/MediosPago/Toku/Invoice.php b/app/src/Service/Venta/MediosPago/Toku/Invoice.php index ce92750..a3d3296 100644 --- a/app/src/Service/Venta/MediosPago/Toku/Invoice.php +++ b/app/src/Service/Venta/MediosPago/Toku/Invoice.php @@ -76,55 +76,71 @@ class Invoice extends AbstractEndPoint } public function resetPayments(): array { - try { - $request_uri = "/organization/payments?page=1&page_size=1000"; - $payments = $this->sendGet($request_uri, [200], [404, 422]); - } catch (EmptyResponse $exception) { - $this->logger->warning($exception, ['request_uri' => $request_uri]); - return []; + $page = 1; + $pageSize = 1000; + $totalPayments = []; + while (true) { + if ($page > 100) { + break; + } + try { + $request_uri = "/organization/payments?page=1&page_size=1000"; + $payments = $this->sendGet($request_uri, [200], [404, 422]); + } catch (EmptyResponse $exception) { + $this->logger->warning($exception, ['request_uri' => $request_uri]); + return []; + } + if (array_key_exists('message', $payments)) { + break; + } + $this->altLogger->info('Reset Payments', ['count' => count($payments), 'payments' => $payments]); + $query = []; + /* + "id": "pay_79zh1OU1pVV5g0V0I6kShf5AF-I24cUn", + "created_at": "2025-06-07T07:08:51+0000", + "deleted_at": null, + "invoice": "in_IhbKbT21x0ADlnKRCbV57sn2DDI8neq0", + "customer": "cus_bTXPBVopZxKOqTOWzRZkhvDEM9XXtvWh", + "government_id": "175181431", + "name": "Augusto Felipe Schilfferli Rojas", + "product_id": "1304-d1749582981383358", + "due_date": "2024-11-01", + "transaction_date": "2025-06-07T07:08:51+0000", + "payment_amount": 14.4822, + "buy_order": null, + "processed_by_toku": false, + "payment_method": null, + "card_type": null, + "card_number": null, + "payment_type": null, + "authorization_code": null, + "mc_order_id": null, + "amount_paid": 14.4822 + */ + foreach ($payments as $payment) { + $query[] = [ + 'payment_amount' => $payment['payment_amount'], + 'payment_date' => $payment['transaction_date'], + 'payment_method' => $payment['payment_method'], + 'product_id' => $payment['product_id'], + 'due_date' => $payment['due_date'], + ]; + } + try { + $request_uri = "/payments"; + $this->sendDelete($request_uri, [204], [404, 422], ['payments' => $query]); + } catch (EmptyResponse $exception) { + $this->logger->warning($exception, ['request_uri' => $request_uri]); + return []; + } + $this->altLogger->info('Reset Payments Payload', ['count' => count($payments), 'payments' => $query]); + $totalPayments = array_merge($totalPayments, $payments); + if (count($payments) < $pageSize) { + break; + } + $page++; } - $this->altLogger->info('Reset Payments', ['count' => count($payments), 'payments' => $payments]); - $query = []; - /* - "id": "pay_79zh1OU1pVV5g0V0I6kShf5AF-I24cUn", - "created_at": "2025-06-07T07:08:51+0000", - "deleted_at": null, - "invoice": "in_IhbKbT21x0ADlnKRCbV57sn2DDI8neq0", - "customer": "cus_bTXPBVopZxKOqTOWzRZkhvDEM9XXtvWh", - "government_id": "175181431", - "name": "Augusto Felipe Schilfferli Rojas", - "product_id": "1304-d1749582981383358", - "due_date": "2024-11-01", - "transaction_date": "2025-06-07T07:08:51+0000", - "payment_amount": 14.4822, - "buy_order": null, - "processed_by_toku": false, - "payment_method": null, - "card_type": null, - "card_number": null, - "payment_type": null, - "authorization_code": null, - "mc_order_id": null, - "amount_paid": 14.4822 - */ - foreach ($payments as $payment) { - $query[] = [ - 'payment_amount' => $payment['payment_amount'], - 'payment_date' => $payment['transaction_date'], - 'payment_method' => $payment['payment_method'], - 'product_id' => $payment['product_id'], - 'due_date' => $payment['due_date'], - ]; - } - try { - $request_uri = "/payments"; - $this->sendDelete($request_uri, [204], [404, 422], ['payments' => $query]); - } catch (EmptyResponse $exception) { - $this->logger->warning($exception, ['request_uri' => $request_uri]); - return []; - } - $this->altLogger->info('Reset Payments Payload', ['count' => count($payments), 'payments' => $query]); - return $payments; + return $totalPayments; } /**