fix: resolve invalid session token by correctly extracting token from North API response
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user