forked from TFMM/silent-auction
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', [
|
])->post('https://checkout.north.com/api/sessions', [
|
||||||
'checkoutId' => $checkoutId,
|
'checkoutId' => $checkoutId,
|
||||||
'profileId' => $profileId,
|
'profileId' => $profileId,
|
||||||
'amount' => $total_cost,
|
'amount' => (float)$total_cost,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if ($response->failed()) {
|
if ($response->failed()) {
|
||||||
Log::error('North Session Creation Failed: ' . $response->body());
|
Log::error('North Session Creation Failed: ' . $response->status() . ' ' . $response->body());
|
||||||
return response()->json(['error' => 'Failed to create checkout session.'], 500);
|
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)
|
public function verify(Request $request, $bidder_id)
|
||||||
|
|||||||
@@ -47,6 +47,7 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
const data = await response.json();
|
const data = await response.json();
|
||||||
|
console.log('North Session Response:', data);
|
||||||
|
|
||||||
if (data.error) {
|
if (data.error) {
|
||||||
document.getElementById('checkout-container').innerHTML = `<div class="alert alert-danger">${data.error}</div>`;
|
document.getElementById('checkout-container').innerHTML = `<div class="alert alert-danger">${data.error}</div>`;
|
||||||
@@ -54,9 +55,14 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
const sessionToken = data.sessionToken;
|
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
|
// Initialize North Checkout
|
||||||
// The global 'checkout' object is provided by checkout.js
|
// The global 'checkout' object is provided by checkout.js
|
||||||
|
console.log('Mounting checkout with token:', sessionToken);
|
||||||
await checkout.mount(sessionToken, 'checkout-container');
|
await checkout.mount(sessionToken, 'checkout-container');
|
||||||
|
|
||||||
// Handle completion
|
// Handle completion
|
||||||
|
|||||||
Reference in New Issue
Block a user