Stripe 3D-Secure认证流程iPhone端重定向失败求助
iPhone端Stripe 3D-Secure认证iframe通信异常:大量无关message事件导致页面崩溃
我已基于Stripe官方文档完成3D-Secure认证流程的开发,近期发现iPhone设备上出现异常:3D-Secure iframe完成认证后的重定向处理频繁崩溃。
按照文档规范,我采用以下代码实现iframe与父页面的跨域通信:
父页面监听逻辑:
window.addEventListener('message', function(ev) { if (ev.data === '3DS-authentication-complete') { on3DSComplete(); } }, false);
iframe触发逻辑:
window.top.postMessage('3DS-authentication-complete');
这套方案原本运行正常,但近几日大量iPhone用户反馈流程中途页面崩溃。调试后发现,父页面的message事件监听器在收到我们自定义的3DS-authentication-complete事件前,会接收到约9万条无关message事件,直接导致浏览器资源耗尽、页面故障甚至自动刷新。而安卓设备和桌面端仅会收到2-3条无关前置事件,完全不影响流程执行。
我暂未定位到iPhone端突然触发大量无关message事件的原因,尝试过改用自定义事件(CustomEvent)或hashchange方案,但这类方案在iframe与父页面不同源的跨域场景下均无法生效。
请问是否有其他开发者遇到过相同问题?有没有可行的解决办法?
内容的提问来源于stack exchange,提问作者Ben
相关产品推荐
相关产品推荐

