Handle Android Tap to Pay events
Keep the NFC activity alive, select the correct point of interaction and distinguish completed, declined and terminated attempts.
Select the point of interaction
Use TapToMobilePOI TRUE and PaymentDevicePOI FALSE for phone-only configuration. If both are TRUE, TransactionPOI chooses the transaction destination and the external device is the default. A single configured POI is selected automatically. Do not interpret dual capability as permission to submit two charges for one order.
Supply an Activity for NFC
Register RequestActivityListener before startTransaction. Respond to the callback with continueRequestedActivity(activity). Keep that Activity foreground and alive until CardTapped arrives. Use the required contactless symbol and supported card-brand artwork on the prompt. // Inside your registered request-activity callback. ChipDnaMobile.getInstance().continueRequestedActivity(checkoutActivity); // Keep checkoutActivity active until the CardTapped transaction update.
Route each event deliberately
Event Application responsibility transactionUpdate Update progress; CardTapped ends the pre-tap Activity requirement. userNotification Show the requested message; no continuation call is required. signatureVerification Collect verification and call continueSignatureVerification. applicationSelection Collect the customer choice and call continueApplicationSelection. transactionFinished Inspect result/state/errors before fulfilling. Before cardDetails, termination may contain only Errors. processReceiptFinished Track receipt delivery separately from payment status.
Respect the Tap to Pay transaction limits
The phone flow is an online auto-confirmed sale. It does not support starting Refund or AccountVerification, DelayOnlineProcessing TRUE, PANKeyEntry TRUE, AutoConfirm FALSE, or the listed on-device/end-of-day tipping modes. TipAmount requires enablement. The generic transaction-flow page discusses manual confirmation, but the Tap to Pay-specific start and event pages explicitly define auto-confirmation.
Cancel without losing the outcome
terminateTransaction is supported between CardEntryPrompted and CardTapped. After a tap, wait for the finished result; an approved transaction may need voidTransaction. A cancellation UI action is not evidence that an accepted payment was reversed. Persist the attempt reference and handle the actual result.