我是否需要自己的服务器来使用Stripe API?

时间:2016-10-30 22:22:06

标签: java android server stripe-payments

我想通过Stripe在我的应用中实施付款。我正在阅读他们的文档,并且一直提到我将从Stripe检索令牌后使用我自己的服务器向某人收费。 (stripe documentation

stripe documentation

为什么我需要一台服务器来向我的用户收费?为什么我只能调用Stripe API方法来充电 - 我在服务器上做什么特别的事情?有没有办法在不创建自己的服务器的情况下充电? firebase能够充足吗?

由于

2 个答案:

答案 0 :(得分:5)

是。您需要服务器的原因主要是保护您的密钥,Stripe为您提供。您不希望在您的移动应用中嵌入一个密钥,它为其提供零保护。有人可以简单地反汇编您的应用程序,即使它被混淆了,并试图找到无助的秘密密钥。

<强>链接

Stripe网站上的

This Q&A清楚地回答了这个问题,但没有详细介绍。

This blog post解释了端到端的过程,这可能对您阅读上下文感觉很好。

<强>替代

  1. Webtask stripe script(另请参阅main webtask page)。

  2. Accepton也可以发挥作用。

  3. ...尽管如此,我建议您自己设置,以便尽可能多地保持控制。 HTTP和REST的定义和细节超出了本问题的范围,但请放心,实现这项工作的代码量是微不足道的(尽管您最初的学习/努力)。

答案 1 :(得分:5)

让我扩展一下他们的解释:

  

通过我们的移动库,我们无需将卡数据直接发送到您的服务器,从而承担了PCI合规性的负担。相反,我们的库将卡数据直接发送到我们的服务器,我们可以将它们转换为令牌。

这意味着通常会收到一个信用卡号码,并且会将其存储起来供以后使用(例如,客户将其输入您的帐户页面以便每月收费),但这使您有法律义务符合PCI标准,这可能是一个令人头疼的问题。条纹可以减轻您的负担 - 他们会存储信用卡,如果您想稍后向其收费,您可以向他们提供他们生成的代表该信用卡的令牌。

  

您的应用会收到令牌,然后可以将令牌发送到您服务器上的终端,可用于处理付款,建立定期结算或仅保存以供日后使用。

另有一节https://stripe.com/docs/mobile/android#using-tokens

对此进行了解释
  

使用付款令牌,无论它是否已获得,都需要使用您的秘密API密钥从您的服务器进行API调用。 (出于安全考虑,您绝不应在您的应用中嵌入秘密API密钥。)

(这是drhr提到的。)

由于您需要密钥才能进行API调用,因此需要从您自己的服务器完成,因此您需要一台服务器。

注意:我没有使用Stripe,我记得,我只是想分享我对文档的阅读。

P.S。我认为你的第二个问题是独立的,但托管Java webapp的一些流行和简单的选择是Heroku和AppEngine。对于类似的东西,你可以使用无服务器方法,例如使用AWS Lambda https://aws.amazon.com/lambda(谷歌在Alpha阶段https://cloud.google.com/functions/中具有等价物)