Build against an explicit contract
A merchant app must hand a confirmed destination to navigation while surviving missing apps, unsupported modes, and rewritten links.
Define the user and system contract
A merchant app must hand a confirmed destination to navigation while surviving missing apps, unsupported modes, and rewritten links. Record the region, data freshness, latency budget, privacy purpose, credential owner, and fallback before choosing an SDK or endpoint.
Freeze the destination
Create the link only from an accepted Mappls Pin or validated coordinates, choose the documented navigation intent, and encode labels separately from identity.
<a
href="https://mappls.com/MMI000"
target="_blank"
rel="noopener noreferrer"
>
Open this place in Mappls
</a>Own universal fallback
Route through an HTTPS page that can open the supported app link, show the destination, offer browser navigation, and link to the correct store without redirect loops.
Test and observe state classes
Cover installed/uninstalled, Android/iOS/desktop, default-browser changes, offline state, and unsupported profiles; measure only the hand-off stage you can prove.
Prove the production behavior
Automate the happy path and every named failure. The release is ready only when destination identity survives every fallback; a failed app open returns control to the user; no secret or private payload is encoded. Capture provider request identity without logging credentials or unnecessary precise location.
Failure modes you must exercise
Fail fast with a typed, user-safe outcome and preserve the original request identity.
Keep the last verified state, mark freshness honestly, and retry only within the documented idempotency boundary.
Reconcile durable local and provider evidence before declaring success or issuing a compensating command.
Timeout after a stateful command is an unknown outcome. Query by provider/idempotency identity or wait for authoritative events; do not blindly retry a new command.
Definition of done
Deep links production checks
Continue from source, contracts, and a full app
These links resolve to repository-derived evidence; unsupported package names and endpoints are not filled in from guesswork.
mapmyindia-intouch-web-pluginsmappls-app-widgetsmappls-web-plugins6 verified testsRun it, break it, then observe it
Start with fixture credentials, execute the failure plan, and use request logs, usage, webhook evidence, and operational metrics before promoting traffic.