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

Android端Stripe PaymentSheet已保存卡片不显示问题求助

Android Stripe PaymentSheet 不显示已保存卡片排查方案

结合你的描述(iOS端正常、服务端配置无问题、customerId固定、ephemeralKey正确更新),Android端PaymentSheet不显示已保存卡片的可能原因及排查方向如下:

  • 检查 PaymentIntent 的 setup_future_usage 参数
    即便用户勾选了“保存以便未来支付”,Stripe 只会在创建 PaymentIntent 时指定了 setup_future_usage 参数(值为on_session或off_session)的情况下,才会将卡片绑定到对应 customer 下。虽然 iOS 端正常,但建议再次确认服务端创建 PaymentIntent 时是否正确设置了该参数——个别场景下 Android SDK 对该参数的校验逻辑可能更严格。

  • 验证 Ephemeral Key 的权限范围
    确保服务端生成 Ephemeral Key 时,指定了完整的 customer 权限范围。正确的生成逻辑应包含对 customer 及 payment_methods 的读写权限,比如生成时的参数应为:

    {
      "customer": "YOUR_CUSTOMER_ID",
      "scope": "customer"
    }
    

    若权限不足,Android SDK 可能无法获取到已保存的支付方式列表。

  • 确认 PaymentSheet 实例的生命周期
    避免每次发起支付时都重新创建 PaymentSheet 实例。建议将 PaymentSheet 实例与页面/ViewModel 的生命周期绑定(比如作为 ViewModel 的成员变量),频繁重建实例可能导致本地缓存丢失,无法显示已保存卡片。

  • 检查 Stripe Android SDK 版本
    对比 iOS 端使用的 SDK 版本,确认 Android 端是否使用了较旧的 SDK 版本。部分旧版本存在 PaymentSheet 无法加载已保存卡片的已知问题,建议升级至最新稳定版 SDK。

  • 排查配置参数完整性
    虽然你的代码中已传入 customerConfiguration,但可以检查是否遗漏了影响支付方式展示的参数:

    • 确认 GooglePayConfiguration 未覆盖或禁用了本地卡片的展示逻辑;
    • 检查 PaymentSheet.Configuration 中的 allowsDelayedPaymentMethods 等参数是否设置正确,避免意外隐藏了已保存的支付方式。

你的代码示例本身逻辑无明显错误,可重点从上述几个方向入手排查。

内容的提问来源于stack exchange,提问作者Gabriel Trifa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 11:30:44