You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

集成Stripe Google Pay按钮遇SecurityException问题求助

排查Stripe Google Pay按钮的SecurityException错误

这个SecurityException是Google Pay身份验证失败触发的——Google Pay会校验你的应用包名和签名SHA-256的组合是否在授权列表里,当前你的com.example.packagename+对应SHA-256密钥未被允许,所以抛出了这个错误。

错误原因

  • 应用包名和签名SHA-256没在Stripe Dashboard的Google Pay允许列表里配置
  • 调试/发布用的签名密钥没在Stripe或Google Pay Console中注册
  • 包名拼写错误,或者SHA-256密钥复制时出现大小写、空格等格式问题

解决方法

1. 确认应用的包名和SHA-256密钥

  • 包名:打开Android项目的AndroidManifest.xml,查看package属性值,确保和错误提示里的com.example.packagename一致(或者是你实际使用的包名)
  • SHA-256密钥:
    • 调试密钥:在终端执行命令获取:
      keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
      
    • 发布密钥:用你打包应用的签名密钥文件,执行类似keytool命令获取对应SHA-256

2. 在Stripe Dashboard配置授权信息

  • 登录Stripe后台,进入支付方式 -> Google Pay设置页面
  • 添加你的应用包名,以及对应的调试/发布SHA-256密钥(测试调试环境就加调试密钥,上线前加发布密钥)
  • 确保配置的环境(测试/生产)和你当前运行的应用环境匹配

3. 验证Google Pay Console配置(可选)

如果你的集成直接依赖Google Pay API,需要在Google Pay Console中注册应用,添加包名和SHA-256,同时确保Stripe使用的商户ID和Console里的一致

4. 清理重建项目

  • 执行flutter clean(Flutter项目),再运行flutter pub get
  • 卸载设备上的旧应用,重新安装,确保应用使用的是最新的签名和包名配置

代码侧检查

确保你的stripeMakeGooglePayment方法里,Google Pay的配置参数和Stripe后台一致,比如:

Future<void> stripeMakeGooglePayment(BuildContext context) async {
  try {
    const googlePayConfig = GooglePayPaymentMethodConfig(
      merchantId: '你的商户ID',
      environment: GooglePayEnvironment.test, // 测试环境用test,生产切换为production
    );
    // 后续支付逻辑...
  } catch (e) {
    // 错误处理
  }
}

内容的提问来源于stack exchange,提问作者Samee Hassan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 12:30:23