如何在iOS应用程序中使用Stripe Connect
有没有人有成功使用条纹连接与iOS应用程序。 我有几个问题:
我遵循这里的指导: https : //stripe.com/docs/connect/getting-started
注册应用程序:容易,没有问题
然后再往下看:
发送你的用户到Stripe:再次,容易没有问题在这里,我只是有一个button,在UIWebView中打开链接。 我认为在URL中的client_id是好的? 我的很多不确定因素是我应该硬编码到应用程序中的ID /密钥
然后再往下看:
用户连接或创build一个Stripe帐户后,我们会将它们redirect回到您在应用程序设置中使用代码参数或错误设置的redirect_uri。
我在这里做的是使用UIWebview的webView:shouldStartLoadWithReqest:navigationType委托方法来检查URL中的string“code =”。 如果发现,那么我可以抓住“代码”参数。 所以现实中,redirect_uri对我来说完全没有必要。 这是处理这个问题的正确方法吗? 我应该在我的应用程序或我的服务器上做这个吗?
收到代码后,我们应该进行POST调用来接收access_token。 同样,这应该在应用程序内还是在服务器上完成? 它需要使用一个secret_key,所以我猜服务器? 如果需要将令牌发送到服务器,我该如何发送信用卡信息以及此令牌? 我知道如何获得卡号,有效期和CVV。 但是就传递给服务器而言(有或没有令牌)是我不确定的。
然后,当涉及到实际上在服务器上编写PHP,Ruby或Python代码时,我完全不知所措。
任何帮助将不胜感激。
你应该设置一个小型的networking应用程序来创build条带费用,并存储您的客户授权码。 在您的web应用程序中为redirect_uri
和webhook_uri
configuration两条路线,并在您的条纹应用程序设置中添加URL。 收费应该从服务器端的应用程序创build,因为它需要secret_key / authorization_code不应该存储在iPad应用程序。 否则可能会导致安全漏洞。 我试图描述下面的概念:
-
在应用程序中提供分
stripe connect button
,并将链接设置为在Safari中打开(而不是在Web视图中)。 你应该添加一个state
参数到一个用户唯一的id
的url。 -
点击button,你的用户将被redirect到Stripe,他/她将被要求授权你的应用程序。 在授权条纹会打你的
redirect_uri
一个authorization_code
和你以前提供的state
。 根据带有authorization_code
Stripe文档进行邮寄调用以获得access_token
。 将与state
映射的access_token
存储在数据库中。 -
在您的应用中定义自定义urlscheme。 从您的Web应用程序调用自定义url。 用户应该在移动Safari浏览器中打开url。 所以调用自定义url将重新打开您的应用程序。 您可以传递一个额外的参数来指示失败/成功。 在您的应用程序基于此参数更新视图。
-
现在,您已经准备好代表iPad用户在您的服务器上进行收费。 使用stripe iOS sdk从卡信息生成一个
card_token
。 这将需要你的条纹publishable_key
。 然后在你的web应用程序中定义一个API,它需要3个参数:card_token
,user_id
和amount
。 只要你想创build一个收费,从你的iPad应用程序调用这个API。 如果您担心使用任何标准encryption方法的安全性,您也可以使用密钥encryption这些信息。 您可以轻松解密您的Web应用程序中的信息,因为您知道密钥。 -
当从iPad应用程序调用此API时,您将收到
user_id
(您之前保存为state
),card_token
和amount
。 检索映射到user_id
(或状态)的access_token
。 然后,您可以使用access_token
,card_token
和amount
代表用户收费。
您可以在服务器中使用ruby / php / python / node,因为Stripe为它们提供了sdk。 我认为还可以使用其他语言,还有一个REST接口。
请注意,这只是一个概念。 它应该像这样工作,但我还没有实现它。 完成后,我会用示例代码更新这个答案。
你可以使用UIWebView。 您仍然需要使用redirectURL,并使用委托“webView:shouldStartLoadWithRequest:navigationType:”监视redirect