fix: resolve invalid session token by correctly extracting token from North API response

This commit is contained in:
2026-05-01 08:32:31 -04:00
parent b0816231d6
commit d2d53e961b
2 changed files with 18 additions and 4 deletions
@@ -53,15 +53,23 @@ class NorthCheckoutController extends Controller
])->post('https://checkout.north.com/api/sessions', [
'checkoutId' => $checkoutId,
'profileId' => $profileId,
'amount' => $total_cost,
'amount' => (float)$total_cost,
]);
if ($response->failed()) {
Log::error('North Session Creation Failed: ' . $response->body());
return response()->json(['error' => 'Failed to create checkout session.'], 500);
Log::error('North Session Creation Failed: ' . $response->status() . ' ' . $response->body());
return response()->json(['error' => 'Failed to create checkout session: ' . ($response->json('message') ?? 'Unknown error')], 500);
}
return response()->json($response->json());
$data = $response->json();
$token = $data['token'] ?? $data['sessionToken'] ?? null;
if (!$token) {
Log::error('North Session Token Missing in Response: ' . json_encode($data));
return response()->json(['error' => 'Session token not found in API response.'], 500);
}
return response()->json(['sessionToken' => $token]);
}
public function verify(Request $request, $bidder_id)
+6
View File
@@ -47,6 +47,7 @@
});
const data = await response.json();
console.log('North Session Response:', data);
if (data.error) {
document.getElementById('checkout-container').innerHTML = `<div class="alert alert-danger">${data.error}</div>`;
@@ -54,9 +55,14 @@
}
const sessionToken = data.sessionToken;
if (!sessionToken) {
document.getElementById('checkout-container').innerHTML = `<div class="alert alert-danger">Invalid session token received from server.</div>`;
return;
}
// Initialize North Checkout
// The global 'checkout' object is provided by checkout.js
console.log('Mounting checkout with token:', sessionToken);
await checkout.mount(sessionToken, 'checkout-container');
// Handle completion