From cd9633dfab6b64d037bc093ac563fc745c097a66 Mon Sep 17 00:00:00 2001 From: Albert Date: Thu, 9 Apr 2026 09:46:07 +0200 Subject: [PATCH] Stripe live operatiu i descompte d stock al Google Sheet --- assets/products/PROVA.png | Bin 0 -> 64277 bytes checkout/common.php | 72 ++++++++++++++++++++++++++++++++++++ checkout/config.php | 7 +++- checkout/stripe-webhook.php | 12 +++++- 4 files changed, 87 insertions(+), 4 deletions(-) create mode 100644 assets/products/PROVA.png diff --git a/assets/products/PROVA.png b/assets/products/PROVA.png new file mode 100644 index 0000000000000000000000000000000000000000..8a267f8d3554e350c347bbef8cf37c248270a531 GIT binary patch literal 64277 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

PpJAf*Uh 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�ZuVt`irqU5ZU5JC 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 literal 0 HcmV?d00001 diff --git a/checkout/common.php b/checkout/common.php index 8a64281..1009df0 100644 --- a/checkout/common.php +++ b/checkout/common.php @@ -295,6 +295,78 @@ function kapvoe_create_checkout_session(array $config, array $payload): array { return $decoded; } +function kapvoe_decrement_sheet_stock(array $config, array $order, string $sessionId): array +{ + $url = (string)($config['stock_sync_url'] ?? ''); + $token = (string)($config['stock_sync_token'] ?? ''); + + if ($url === '' || $token === '') { + throw new RuntimeException('Falta configurar stock_sync_url o stock_sync_token'); + } + + $payload = [ + 'action' => 'decrement_stock', + 'token' => $token, + 'product_code' => (string)($order['product_code'] ?? ''), + 'quantity' => max(1, (int)($order['quantity'] ?? 1)), + 'order_id' => (string)($order['order_id'] ?? ''), + 'session_id' => $sessionId, + ]; + + if ($payload['product_code'] === '') { + throw new RuntimeException('La comanda no té product_code'); + } + + if ($payload['order_id'] === '') { + throw new RuntimeException('La comanda no té order_id'); + } + + if (!function_exists('curl_init')) { + throw new RuntimeException('cURL no està disponible al PHP'); + } + + $ch = curl_init($url); + + curl_setopt_array($ch, [ + CURLOPT_RETURNTRANSFER => true, + CURLOPT_POST => true, + CURLOPT_POSTFIELDS => json_encode($payload, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES), + CURLOPT_HTTPHEADER => [ + 'Content-Type: application/json', + 'Accept: application/json', + ], + CURLOPT_TIMEOUT => 20, + CURLOPT_CONNECTTIMEOUT => 10, + ]); + + $response = curl_exec($ch); + + if ($response === false) { + $error = curl_error($ch); + curl_close($ch); + throw new RuntimeException("Error cURL stock sync: {$error}"); + } + + $statusCode = (int)curl_getinfo($ch, CURLINFO_HTTP_CODE); + curl_close($ch); + + if ($statusCode < 200 || $statusCode >= 300) { + throw new RuntimeException("Stock sync HTTP {$statusCode}: {$response}"); + } + + $json = json_decode($response, true); + + if (!is_array($json)) { + throw new RuntimeException('Resposta no JSON del stock sync: ' . $response); + } + + if (!($json['ok'] ?? false)) { + throw new RuntimeException('Stock sync error: ' . ($json['error'] ?? 'error desconegut')); + } + + return $json; +} + function kapvoe_verify_stripe_signature(string $payload, string $header, string $secret, int $tolerance = 300): bool { if (!$header || !$secret) { return false; diff --git a/checkout/config.php b/checkout/config.php index 42a1567..18345b0 100644 --- a/checkout/config.php +++ b/checkout/config.php @@ -3,10 +3,10 @@ declare(strict_types=1); return [ // Clau secreta real de Stripe. NO la posis mai al HTML. - 'stripe_secret_key' => 'sk_test_51IvGaFHRV8rA2XwsDiGII0rVfot2HabnvF862L8G6rYIzUscZDMkM4WlVAV6GbYSMZsFEDF44PEppdJaLdGo0idB00UyabGh0u', + 'stripe_secret_key' => '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', // Secret del webhook de Stripe (Signing secret) - 'stripe_webhook_secret' => 'whsec_wBJZjwPIhPclM1i4bKUtnQqol26caq5L', + 'stripe_webhook_secret' => 'whsec_8FTXIXPWBSzFjJNQWuzetQF6LoNKv9sg', // Moneda 'currency' => 'eur', @@ -17,4 +17,7 @@ return [ // URLs públiques 'success_url' => 'https://kapvoe-portfoli.treblarella.org/checkout/payment-success.php', 'cancel_url' => 'https://kapvoe-portfoli.treblarella.org/checkout/payment-cancel.php', + + 'stock_sync_url' => 'https://script.google.com/macros/s/AKfycbyH6PuQPR342mwSiKCkYZ1lOnn1VccqzFO-ScbhwjvJoABU3LqVNJcS3gtPE5ZuT0JyvQ/exec', + 'stock_sync_token' => 'kapvoe_stock_2026_x7F9mQpL2vN8rT4sZ1kW', ]; diff --git a/checkout/stripe-webhook.php b/checkout/stripe-webhook.php index 79254e9..b4791fd 100644 --- a/checkout/stripe-webhook.php +++ b/checkout/stripe-webhook.php @@ -69,8 +69,15 @@ try { } $alreadyUpdated = (string)($order['stock_updated'] ?? '') === '1'; + $stockResult = null; if ($paymentStatus === 'paid' && !$alreadyUpdated) { + $stockResult = kapvoe_decrement_sheet_stock($config, $order, $sessionId); + + if (!($stockResult['ok'] ?? false)) { + throw new RuntimeException('No s\'ha pogut actualitzar l\'stock al Google Sheet'); + } + kapvoe_mark_order_stock_updated($config, $sessionId); $alreadyUpdated = true; } @@ -82,7 +89,8 @@ try { 'handled' => $type, 'session_id' => $sessionId, 'payment_intent_id' => $paymentIntentId, - 'already_updated' => $alreadyUpdated + 'already_updated' => $alreadyUpdated, + 'stock_result' => $stockResult ], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); exit; @@ -103,4 +111,4 @@ try { 'error' => $e->getMessage() ], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); exit; -} +} \ No newline at end of file