【问题标题】:How to use Stripe Connect in an iOS app如何在 iOS 应用中使用 Stripe Connect
【发布时间】:2016-01-25 09:11:54
【问题描述】:

有没有人通过 iOS 应用成功使用 Stripe connect。我有几个问题:

我在这里遵循指南:https://stripe.com/docs/connect/getting-started

注册应用:简单,没问题

然后再往下一点:

将您的用户发送到 Stripe:同样,这里很简单,没问题,我只有一个按钮,可以打开 UIWebView 中的链接。我假设在 URL 中有 client_id 很好?我的很多不确定性是我应该将哪些 ID/密钥硬编码到应用程序中

然后再往下一点:

用户连接或创建 Stripe 帐户后,我们会将其重定向回您在应用程序设置中设置的 redirect_uri,并带有代码参数或错误。

我在这里所做的是使用 UIWebview 的 webView:shouldStartLoadWithReqest:navigationType 委托方法来检查 URL 中的字符串“code=”。如果它找到了,那么我就可以获取“代码”参数。所以实际上,redirect_uri 对我来说完全没有必要。这是处理这个问题的正确方法吗?我应该在我的应用程序中还是在我的服务器上执行此操作?

收到代码后,我们应该进行 POST 调用以接收 access_token。同样,这应该在应用程序内还是在服务器上完成?它需要使用secret_key,所以我猜是服务器?如果需要将令牌发送到服务器,我该如何发送信用卡信息和这个令牌?我知道如何获取卡号、有效期和CVV。但就将其传递给服务器(有或没有令牌)而言,我不确定。

然后当谈到在服务器上实际编写 PHP、Ruby 或 Python 代码时,我完全不知所措。

任何帮助将不胜感激。

【问题讨论】:

  • 欢迎访问我的教程!如果您有任何问题,请在 git 问题github.com/jsetting32/Stripe-Connect-Parse 中提出问题
  • 我想在测试模式下测试授权。可能吗?还是我需要提供真实银行信息,因为它给了我无效的路由号码。
  • @Niharika 您可以传递此银行信息:账户持有人姓名:Jimmy bob,账户类型:公司,路由号码:110000000,帐号:000123456789
  • 您知道您是否可以允许用户在此设置过程中前后导航?

标签: ios stripe-payments


【解决方案1】:

您应该设置一个小型网络应用程序来创建条带费用并存储您的客户授权代码。在您的 Web 应用程序中为 redirect_uriwebhook_uri 配置两条路由,并将 URL 添加到您的 Stripe Apps settings 中。费用应该从服务器端应用程序创建,因为它需要不应该存储在 iPad 应用程序中的 secret_key / authorization_code。否则它们可能会导致安全漏洞。我试图描述以下概念:

  1. 在您的应用程序中提供stripe connect button 并将链接设置为在 Safari 中打开(而不是在 Web 视图中)。您应该将state 参数添加到带有id 的url,这对您的用户来说是唯一的。

  2. 点击按钮后,您的用户将被重定向到 Stripe,在那里她/他将被要求授权您的应用程序。授权条带将使用您之前提供的authorization_codestate 命中您的redirect_uri。根据 Stripe 文档,使用authorization_code 进行邮局电话,以获得access_token。将与state 映射的access_token 存储在数据库中。

  3. 在您的应用中定义自定义 url 方案。从您的 Web 应用程序调用自定义 URL。用户应该在移动 safari 中打开 url。因此调用自定义 url 将重新打开您的应用程序。您可以传递一个附加参数来指示失败/成功。在您的应用中根据此参数更新视图。

  4. 现在您已准备好代表 iPad 用户在您的服务器上创建费用。使用 stripe iOS sdk 从卡片信息中生成一个card_token。它需要你的条纹publishable_key。然后在您的 Web 应用程序中定义一个 api,它采用 3 个参数:card_tokenuser_idamount。每当您想创建费用时,从您的 iPad 应用程序调用此 API。如果您担心使用任何标准加密方法的安全性,也可以使用密钥加密此信息。只要知道密钥,您就可以轻松地在 Web 应用中解密信息。

  5. 当从 iPad 应用程序调用此 api 时,您将收到 user_id(您之前保存为 state)、card_tokenamount。检索映射到user_id(或状态)的access_token。然后,您可以使用access_tokencard_tokenamount 代表用户进行收费。

您可以在服务器中使用 ruby​​/php/python/node,因为 Stripe 为它们提供了 sdk。我假设可以使用其他语言以及 REST 接口。

请注意,这只是一个概念。它应该像它一样工作,但我还没有实现它。完成后,我将使用示例代码更新此答案。

【讨论】:

  • 我不希望我的应用切换到浏览器。是否可以使用条带 SDK 做到这一点?
  • 我不确定如何设置重定向网址...我的意思是,Facebook 是如何做到的?当我使用我的应用程序通过 Facebook 登录时,一旦授予权限,它就会自动将用户重定向回我的应用程序。我也在 iOS Objective-c 中这样做
  • 我想在测试模式下测试授权。可能吗?还是我需要提供真实银行信息,因为它给了我无效的路由号码。
  • 您知道您是否可以允许用户在此设置过程中前后导航?
【解决方案2】:

您可以使用 UIWebView。您仍然需要使用重定向网址并使用委托“webView:shouldStartLoadWithRequest:navigationType:”监控重定向

【讨论】:

    猜你喜欢
    • 2016-12-03
    • 2014-10-02
    • 2018-06-19
    • 2014-03-30
    • 2021-06-24
    • 2021-04-19
    • 2021-03-06
    • 2017-02-24
    • 2020-06-21
    相关资源
    最近更新 更多