Updated checkout to wait for backend confirmation before advancing, added a “Processing payment…” state with retry/ refresh fallback, and now use Paddle totals/currency for purchase records + confirmation emails (with new email translations).

This commit is contained in:
Codex Agent
2025-12-22 09:06:48 +01:00
parent 41d29eb7d3
commit 84234bfb8e
36 changed files with 1742 additions and 187 deletions

View File

@@ -16,7 +16,7 @@ class PaddleCheckoutService
) {}
/**
* @param array{success_url?: string|null, return_url?: string|null, discount_id?: string|null, metadata?: array} $options
* @param array{success_url?: string|null, return_url?: string|null, discount_id?: string|null, metadata?: array, custom_data?: array} $options
*/
public function createCheckout(Tenant $tenant, Package $package, array $options = []): array
{
@@ -31,7 +31,11 @@ class PaddleCheckoutService
'highlight' => $package->slug,
]);
$metadata = $this->buildMetadata($tenant, $package, $options['metadata'] ?? []);
$customData = $this->buildMetadata(
$tenant,
$package,
array_merge($options['metadata'] ?? [], $options['custom_data'] ?? [])
);
$payload = [
'customer_id' => $customerId,
@@ -41,7 +45,7 @@ class PaddleCheckoutService
'quantity' => 1,
],
],
'metadata' => $metadata,
'custom_data' => $customData,
'success_url' => $successUrl,
'cancel_url' => $returnUrl,
];