Android Custom Chrome Tab集成Amazon Pay遇Cookie启用报错问题
问题背景
- 实现逻辑:Android端通过Web URL方案对接Amazon Pay支付能力,使用Custom Chrome Tab承载支付页面
- 异常现象:完成一次支付流程后,页面弹出错误提示:请启用Cookie以继续(对应原英文提示为"Please enable cookies to continue")
已尝试无效方案
- 调用
CookieManager做Cookie处理:该方案为Android WebView场景下Cookie问题的通用解法,在本场景下未生效 - 更换承载容器为Trusted Web Activity:替换支付页承载实现后问题仍复现
报错截图

根因与修复方案
问题核心是Cookie隔离/校验失败,按以下步骤修复:
- 移除所有通过
CookieManager手动向Custom Chrome Tab写入Cookie的逻辑
Custom Chrome Tab使用Chrome浏览器独立的Cookie存储,和App内WebView的Cookie存储完全隔离,手动写入的Cookie不符合Amazon Pay的签名校验规则,反而会触发拦截。 - 固定Custom Tabs会话实例
初始化CustomTabsClient时全局复用同一个CustomTabsSession实例,不要每次打开支付页都新建Session,避免支付流程中跨域跳转、回跳时会话上下文断裂,导致Cookie丢失。 - 校验Chrome侧Cookie配置
确认Chrome浏览器未开启「阻止所有第三方Cookie」选项,Amazon Pay支付流程依赖跨域Cookie校验,第三方Cookie被拦截时会直接抛出该错误。 - 若使用Trusted Web Activity,补充关联配置
在支付域名根目录的assetlinks.json中配置正确的App包名、签名SHA256哈希,完成App和站点的可信关联,同时开启TWA的Cookie共享权限,避免容器隔离导致Cookie无法读取。
内容的提问来源于stack exchange,提问作者Harminder Singh
相关产品推荐
相关产品推荐

