all system emails look fresh now, plus added paddle portal debugging

This commit is contained in:
Codex Agent
2025-12-23 14:31:42 +01:00
parent 207725d460
commit 1d2c2da915
11 changed files with 394 additions and 12 deletions

View File

@@ -4,6 +4,7 @@ namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Models\EventPackageAddon;
use App\Services\Paddle\Exceptions\PaddleException;
use App\Services\Paddle\PaddleCustomerPortalService;
use App\Services\Paddle\PaddleCustomerService;
use App\Services\Paddle\PaddleTransactionService;
@@ -142,13 +143,36 @@ class TenantBillingController extends Controller
], 404);
}
$customerId = null;
try {
$customerId = $this->paddleCustomers->ensureCustomerId($tenant);
Log::debug('Creating Paddle customer portal session', [
'tenant_id' => $tenant->id,
'paddle_customer_id' => $customerId,
'paddle_environment' => config('paddle.environment'),
'paddle_base_url' => config('paddle.base_url'),
]);
$session = $this->portalSessions->createSession($customerId);
} catch (\Throwable $exception) {
Log::warning('Failed to create Paddle customer portal session', [
$context = [
'tenant_id' => $tenant->id,
'paddle_customer_id' => $customerId ?? $tenant->paddle_customer_id,
'error' => $exception->getMessage(),
'paddle_environment' => config('paddle.environment'),
'paddle_base_url' => config('paddle.base_url'),
];
if ($exception instanceof PaddleException) {
$context['paddle_status'] = $exception->status();
$context['paddle_error_code'] = Arr::get($exception->context(), 'error.code');
$context['paddle_error_message'] = Arr::get($exception->context(), 'error.message');
}
Log::warning('Failed to create Paddle customer portal session', [
...$context,
]);
return response()->json([
@@ -162,6 +186,19 @@ class TenantBillingController extends Controller
?? Arr::get($session, 'urls.general');
if (! $url) {
$sessionData = Arr::get($session, 'data');
$sessionUrls = Arr::get($session, 'data.urls') ?? Arr::get($session, 'urls');
Log::warning('Paddle customer portal session missing URL', [
'tenant_id' => $tenant->id,
'paddle_customer_id' => $customerId ?? $tenant->paddle_customer_id,
'paddle_environment' => config('paddle.environment'),
'paddle_base_url' => config('paddle.base_url'),
'session_keys' => array_keys($session),
'session_data_keys' => is_array($sessionData) ? array_keys($sessionData) : null,
'session_url_keys' => is_array($sessionUrls) ? array_keys($sessionUrls) : null,
]);
return response()->json([
'message' => 'Paddle customer portal session missing URL.',
], 502);