Safari Experiment Harness

Test multiple Apple Pay handoff ideas from one place.

This page keeps the current upper backend-first Laztronics path as the main candidate, then adds adjacent relay, hosted, and helper experiments with louder logs so iPhone Safari behavior is easier to compare attempt-by-attempt.

Primary path stays first
The upper Laztronics backend-first flow is still the lead candidate on this page.
Real variants only
Each button drives a real hosted, relay, helper, or session probe path instead of a fake mock.
Better traceability
Every run gets an attempt id, live log output, and server-side `client-log.php` events.
Suite coverage
The automated suite can now log several backend and relay ideas in one pass before ending in a same-tab Safari candidate.
Shared Controls

Set the amount once, then compare multiple paths.

This experiment page does not auto-load the lower bridge in the background. Every log should map to a button you intentionally clicked.

Choose a test amount
Selected amount $1.00
Primary path The current upper path now uses the Fyntek-owned HTML relay on iPhone Safari.

Use the main button above for the current Fyntek-owned HTML relay path. The experiment matrix below adds adjacent relay and helper variants.

The automated suite now runs the full high-value backend, helper, direct-hosted, raw-continue, and relay experiment ladder in sequence, then ends in the strongest same-tab Fyntek-owned candidate. The CORE button is the merchant-domain Apple Pay path from `CORE_ASSISTANCE.md`, so it stays separate to preserve Safari gesture ownership.

Experiment Matrix

Adjacent strategies to compare against the current upper path.

The first group keeps one-click behavior in play. The second group isolates backend readiness, helper relay, and fraud-session continuation without needing Apple Pay to start immediately.

Apple's troubleshooting guidance points toward separating gesture ownership, merchant validation, and hosted relay behavior. These experiments deliberately split those pieces apart.

Browser family Loading
Apple Pay available Loading

Single-Tap Candidates

Automated Safari suite

Runs the full high-value experiment stack one after another, including helper, direct-hosted, raw-continue, bridge, and backend-session probes, then finishes by leaving this page for the strongest provider-owned same-tab candidate we have right now.

CORE assistance native Apple Pay

Creates a checkout on Laztronics, starts the hosted Fyntek page hidden in the background, waits for Fyntek readiness, runs Apple Pay on Laztronics with merchant validation here, then hands the authorized payment back into Fyntek and reveals the hosted result after it settles.

First-party session, then helper same tab

Creates the Laztronics backend session first, then leaves this page for the same-origin helper page that runs Finix.Auth and hands Safari into Fyntek. This is the closest match to the recommended Safari fix.

Helper same tab with real self form submit

Starts the same-origin helper, collects Finix fraud on Laztronics, then performs a real top-level browser form POST directly to Fyntek's /continue endpoint instead of using fetch first.

Provider-owned hosted HTML in preview

Creates a checkout, reads Fyntek’s own redirect-action HTML URL, and loads that direct hosted HTML step into the preview frame without going through the Laztronics relay page.

Provider-owned hosted HTML same tab

Creates a checkout, reads Fyntek’s direct hosted HTML step, and leaves this page so Safari lands on Fyntek’s own Finix-auth HTML as early as possible.

Provider-owned relay in preview

Loads the Fyntek relay bridge into the preview frame with a distinct source tag so we can see whether inline relay behavior differs from the current upper path.

Provider-owned relay same tab

Leaves this page and opens the relay as a top-level navigation in the same tab. This is the closest experiment to "let the provider own the Safari handoff".

First-party continue, then direct hosted HTML

Creates the Laztronics first-party session, forwards the Finix fraud session on the backend, then immediately leaves for Fyntek's direct hosted HTML step instead of waiting through the full silent ready poll.

First-party continue, then hosted payment page

Creates the Laztronics first-party session, forwards the Finix fraud session on the backend, then jumps straight to Fyntek's hosted payment page to see whether Safari behaves better without the extra HTML handoff step.

Raw checkout with server continue, then direct HTML

Uses the raw hosted checkout endpoint, collects Finix fraud on Laztronics, asks checkout-status.php to forward the fraud session server-side, then leaves for Fyntek's direct hosted HTML step.

Raw checkout with server continue, then payment page

Uses the raw hosted checkout path, forwards the Finix fraud session through checkout-status.php, then jumps directly to Fyntek's hosted payment page as a top-level Safari candidate.

Current lower bridge in preview

Loads the existing Laztronics bridge directly into the preview frame. This mirrors the current lower path without the main page's surrounding UI.

Current lower bridge same tab

Opens the current hosted-style Laztronics bridge as the main page in this tab, which is useful when Safari treats top-level and iframe contexts differently.

Session And Relay Diagnostics

ApplePaySession gesture smoke

Constructs an ApplePaySession object directly from this click without beginning the sheet. This helps prove whether Safari accepts the gesture on this page before Fyntek enters the picture.

Raw hosted checkout in preview

Creates a checkout through `prepare-checkout.php`, then loads the hosted Fyntek result directly in the preview frame so we can compare against the relay paths.

First-party session probe

Creates the backend-first SpinQuest-style session and logs the returned session id, payment id, state, and hosted result URL without touching Apple Pay.

First-party continue probe

Creates the backend session, collects Finix fraud, sends `spinquest-session-continue.php`, and logs the resulting state. This isolates readiness from Apple Pay gesture handling.

Helper preflight preview

Creates the backend session, then loads the helper page directly in the preview frame so we can watch the relay stages and posted messages independently.

Helper preview with hidden-form continue

Loads the helper in the preview frame, collects Finix fraud on Laztronics, then submits a real hidden form POST to Fyntek's /continue endpoint without leaving the top-level page immediately.

Live Output

Preview, latest attempt, and visible logs.

The preview frame is for relay and hosted pages. The log console also records helper messages, bridge completion messages, and direct probe results.

Waiting for an experiment run.
Last attempt None yet
Last strategy None yet
Preview is idle

Load a relay, helper, or hosted experiment into the frame, or run a probe button to log backend-only results.