Fix: Handle intent:// deep links in checkout#508
Fix: Handle intent:// deep links in checkout#508tuanndpersonal-lab wants to merge 1 commit intoShopify:mainfrom
Conversation
ca0841c to
a934fce
Compare
|
I have signed the CLA! |
a934fce to
f774638
Compare
|
I have signed the CLA! |
|
Thanks for opening the PR. Our team has chatted about this, and we have a concern around potentially introducing an intent scheme hijacking vulnerability, where a crafted intent:// URI in checkout could do various things like launch arbitrary private activities, pass arbitrary extras, trigger actions other than Some of this could likely be mitigated via using IntentSanitizer to limit actions, and categories. But, our thoughts at the moment, are that merchants and partners can override We may revisit that if we see broader demand. |
Hi, I’m currently using checkout-sheet-kit-react-native. While debugging and implementing a workaround for my specific case, I identified that I now have access to the onCheckoutLinkClicked context. Based on this, I’ve updated the code in the React Native SDK. You can find the changes here: |
Summary
intent://scheme URIs inCheckoutEventProcessorIntent.parseUri()withURI_INTENT_SCHEMEto properly parseintent://...#Intent;...;end;URIs instead of treating them as plainACTION_VIEWintentsContext
The current implementation creates a basic
ACTION_VIEWintent for all deep links, which doesn't handle Android'sintent://URI scheme. This scheme is commonly used by payment providers (e.g., open banking apps) to launch specific activities. By usingIntent.parseUri(), the SDK can now correctly resolve and launch these intents.Test plan
https://deep links still work correctlyintent://scheme URIs from payment providers (open banking flows)🤖 Generated with Claude Code