diff --git a/src/modules/parcel-sync/services/epay-client.ts b/src/modules/parcel-sync/services/epay-client.ts index eb89c4c..ef9a0dd 100644 --- a/src/modules/parcel-sync/services/epay-client.ts +++ b/src/modules/parcel-sync/services/epay-client.ts @@ -446,23 +446,39 @@ export class EpayClient { // No previous orders } + // Step 1: POST EditCartSubmit (Angular does this, gets 200 back) const body = new URLSearchParams(); body.set("goToCheckout", "true"); - const response = await this.client.post( + await this.client.post( `${BASE_URL}/EditCartSubmit.action`, body.toString(), { headers: { "Content-Type": "application/x-www-form-urlencoded" }, timeout: DEFAULT_TIMEOUT_MS, - maxRedirects: 10, validateStatus: () => true, }, ); - const finalUrl = - response.request?.res?.responseUrl ?? response.config?.url ?? ""; - console.log(`[epay] EditCartSubmit: finalUrl=${finalUrl.slice(0, 100)}`); + // Step 2: GET CheckoutConfirmationSubmit (Angular redirects here client-side) + const confirmResponse = await this.client.get( + `${BASE_URL}/CheckoutConfirmationSubmit.action`, + { + timeout: DEFAULT_TIMEOUT_MS, + maxRedirects: 5, + validateStatus: () => true, + }, + ); + + const confirmHtml = String(confirmResponse.data ?? ""); + const hasConfirmation = + confirmHtml.includes("mulțumim") || + confirmHtml.includes("multumim") || + confirmHtml.includes("confirmare"); + + console.log( + `[epay] Checkout confirmation: ${hasConfirmation ? "OK" : "uncertain"} (${confirmHtml.length} chars)`, + ); // Find the NEW orderId (different from previous + not in knownOrderIds) return this.findNewOrderId(previousOrderId, knownOrderIds);