Flutter Stripe包Web端报错,已配置HTTPS仍无法正常运行
以下是几种可能导致该报错的原因及对应的解决步骤:
检查Stripe初始化的密钥环境
确认Web端初始化flutter_stripe时使用的是测试环境的Publishable Key(以pk_test_开头)。如果误使用了生产环境密钥(pk_live_开头),即使你的网站配置了HTTPS,Stripe也会强制校验生产环境的严格要求,进而触发该报错。验证HTTPS证书的有效性
如果是本地测试环境的HTTPS,若使用的是自签名证书,Stripe.js可能无法识别为有效HTTPS环境,从而误判为HTTP。可以尝试使用带可信证书的临时域名测试,或者直接部署到正式HTTPS环境验证是否还会报错。确认浏览器实际访问协议
检查浏览器地址栏是否确实显示https://,有时候可能存在缓存的HTTP页面、反向代理配置错误,或者本地开发服务器的HTTPS配置未生效,导致实际访问仍是HTTP。可以清空浏览器缓存后重新访问,或在隐身窗口中测试。检查flutter_stripe_web包的版本
老旧版本的flutter_stripe_web可能存在HTTPS检测逻辑的bug。尝试将flutter_stripe和flutter_stripe_web升级到最新稳定版,然后重新构建Web项目。排查Firebase Functions的相关配置
确认Firebase Functions部署的后端接口使用的是HTTPS(Firebase Functions默认是HTTPS),且前端调用后端获取支付Intent等数据时,使用的是HTTPS地址。如果后端返回的Stripe配置中包含HTTP地址,也可能触发前端报错。
内容的提问来源于stack exchange,提问作者Abdurrahman Morsy

