<MoonPayChallenge> renders a 3DS or identity challenge frame inline in your
layout. It is the declarative alternative to
client.setupChallenge().
Mount this component when a payment frame (Apple Pay, Google Pay, buy button,
or buy frame) emits a "challenge" event. Pass the url from the event
payload directly. Unmounting the component disposes the frame and stops event
delivery.
PaymentScreen.tsx
Props
ChallengeEvent
Use event.kind to handle each event.
CompleteResult is a discriminated union on flow:
Cancellation is a discriminated union on flow:
On
"cancelled", carry transactionId and challengeToken to resume the
transaction if needed.
On a "guest_checkout_limit_upgrade" "complete", read status. upgraded
means the customer’s guest limit is raised, so request the quote again to get
one with executable: true. rejected means verification failed and running
the upgrade again does not change it. See Upgrade a guest
account.