Resolves an Adyen action — the object completePayment surfaced on
PaymentInfo.raw when it answered requires_action. The component runs the
challenge INLINE (a threeDS2 action needs no navigation) and resolves with a
fresh clientToken carrying the additional details; the host completes the
payment with it exactly as it did the first token.
Adapter-specific: the unified contract has no action-handling method, since most PSPs resolve challenges inside confirm().
One challenge at a time per mounted handle: the returned promise settles when Adyen reports the shopper's additional details, so a second call while one is outstanding is refused rather than replacing the pending resolver (which would strand the first caller's promise forever). A host that wants a deadline on an abandoned challenge races this promise against its own timer.
Dynamic script/SDK load — only pulled in if this PSP is active.
Renders Adyen's Card component into a generated child of container. The
fields live in Adyen-hosted iframes, so no card data touches the host page.
options.appearance becomes Adyen's styles object and
options.fieldOptions passes through untouched (the host wins), except the
two keys the adapter must own: showPayButton (the host's own button drives
submission) and onChange (the encrypted blob arrives on it).
Tokenize-first shape: resolves requires_confirmation plus the encrypted paymentMethod blob as the clientToken. The host passes it to the server's completePayment ( / completionEndpoint wire it automatically),
which creates the Adyen payment.