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

Android集成Stripe API:Charge操作应在客户端还是后端?

Stripe Charge操作:客户端还是后端执行?

嘿,我来给你把这个问题讲明白——现在Stripe的安全规范和最佳实践要求,Charge操作必须在你的后端服务执行,绝对不能在Android客户端直接发起。

为什么旧版示例能在客户端用Charge类?

你提到的旧版客户端Charge调用,是Stripe早期API的做法,但现在已经被彻底废弃了。Stripe后来意识到这种方式存在严重的安全漏洞:如果在客户端代码里包含能发起Charge的密钥,一旦APK被反编译,攻击者就能拿到你的密钥,随意发起扣款操作,给你和用户带来巨大损失。所以现在Stripe已经移除了客户端侧的Charge相关API,强制要求把扣款逻辑放在后端。

Android客户端该做什么?

客户端的核心职责是安全收集用户的支付信息,并生成安全的支付凭证,然后把这个凭证传给后端。用Stripe的Android SDK,你可以做这些事:

  • 用Stripe提供的预构建UI组件(比如PaymentSheet)收集卡号、有效期等支付信息,避免自己处理敏感数据
  • 调用SDK的createPaymentMethod方法,生成一个PaymentMethod对象,这个对象里的id是安全的支付凭证,不会包含任何敏感的用户支付信息
  • 把这个PaymentMethod.id传给你的后端服务

后端该做什么?

后端拿到客户端传来的支付凭证后,再用你的**Stripe秘钥(这个秘钥只能保存在后端,绝对不能出现在客户端代码里)**调用Stripe的API发起扣款:

  • 推荐使用更现代的Payment Intent API,而不是旧的Charge API——Payment Intent支持3D Secure等身份验证流程,能有效降低支付失败率和欺诈风险
  • 后端调用Stripe API创建Payment Intent并确认支付,完成整个扣款流程

总结

简单来说,客户端负责“安全收集并传递支付凭证”,后端负责“发起实际的扣款请求”——这是Stripe现在强制要求的安全架构,也是支付行业的标准做法,既能保护你的密钥安全,也能保障用户的支付信息不被泄露。

内容的提问来源于stack exchange,提问作者Дмитро Яковлєв

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:39:17