如何在iOS应用中使用Stripe Connect

Cho*_*oli 14 ios stripe-payments

有没有人成功使用Stripe连接iOS应用程序.我有几个问题:

我遵循这些指南: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,所以我猜服务器?如果需要将令牌发送到服务器,如何发送信用卡信息以及此令牌?我知道如何获得卡号,exp日期和CVV.但是将它传递给服务器(有或没有令牌)是我不确定的.

然后,当涉及到在服务器上实际编写PHP,Ruby或Python代码时,我完全失去了.

任何帮助将不胜感激.

rus*_*afi 28

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

  1. stripe connect button在您的应用程序中提供并设置在Safari中打开的链接(不在Web视图中).您应该state在网址中添加一个参数,该参数id对您的用户而言是唯一的.

  2. 点击按钮后,您的用户将被重定向到Stripe,在那里他/她将被要求授权您的应用程序.授权后,条带将redirect_uri使用您之前提供的a authorization_code和state.根据条纹文档进行一个帖子调用,authorization_code以获得一个access_token.将access_token映射state的数据存储在数据库中.

  3. 在您的应用中定义自定义网址方案.从您的网络应用调用自定义网址.用户应该在移动游猎中打开网址.因此,调用自定义URL将重新打开您的应用程序.您可以传递其他参数以指示失败/成功.在您的应用中,根据此参数更新视图.

  4. 现在,您已准备好代表iPad用户在服务器上创建费用.使用条带iOS sdk card_token从卡信息生成一个.它需要你的条纹publishable_key.然后定义在你的web应用程序,它需要3个参数的API: card_token,user_id和amount.无论何时想要收费,都可以从iPad应用程序中调用此api.如果您担心使用任何标准加密方法的安全性,也可以使用密钥加密此信息.您可以轻松解密网络应用中的信息,因为您知道密钥.

  5. 当从iPad应用程序调用此API时,您将收到user_id(您state之前保存的),card_token以及amount.检索access_token映射到user_id(或状态).然后,您可以使用access_token,card_token和代表用户收取费用amount.

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

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

  • 我不希望我的应用切换到浏览器.是否可以使用条带SDK执行此操作? (2认同)