【问题标题】:Stripe Documentation tells me to expose three APIs on my back end but not how to do soStripe 文档告诉我在后端公开三个 API,但没有告诉我如何这样做
【发布时间】:2016-11-07 18:34:09
【问题描述】:

在查看将 Stripe 集成到我的 Swift iOS 应用程序的文档时,我读到它告诉我:“您应该在后端公开三个 API,以便您的 iOS 应用程序与之通信。”

它所指的三个 API 是检索客户 API、创建卡片 API 和客户更新 API。然后,该文档列出了代码 sn-ps,用于在后端调用这些 API 时应执行的操作,使用我不熟悉的 Spark 框架完成。

我的问题(Stripe 的文档似乎没有解释)是如何将我的后端暴露给这三个 API,以便我可以调用这些函数?是通过进口声明吗?或者这是因为我将使用不需要导入的 Spark 框架而处理/不必要?

相关 Stripe 文档链接:https://stripe.com/docs/mobile/ios

【问题讨论】:

    标签: ios api stripe-payments


    【解决方案1】:

    Spark 框架是为 Java 示例选择的框架;代码区域正上方是一些链接到其他语言(Ruby/Sinatra、Python/django、PHP、Node.js/Express)的 sn-ps 的选项卡,所以也许你的语言/框架在那里 - 或者你使用的是不同的Java 框架?

    至于您的问题,您需要在服务器端应用程序上实现这三个 API 端点——然后每个端点都与 Stripe API 联系——以允许您的 iOS 应用程序使用它们。

    您可能还想查看 Stripe 的 Java 库:https://github.com/stripe/stripe-java/

    【讨论】:

    • 我的后端是在 AWS Lambda 上用 Java 完成的。我只是从未使用过 Spark 框架,所以在这里看到它让我有点困惑。您是否碰巧知道有关如何在 AWS lambda 后端的服务器端实现三个 api 端点的任何资源/信息?
    • 老实说,我从来没有使用过 AWS lambda——虽然我想玩它——但据我了解,这些端点都是一个单独的 lambda 函数,可以处理三个请求之一类型。不确定这是否真的为您解决了问题。 :) 还添加了指向答案的链接,引用了 Stripe Java 库。
    【解决方案2】:

    在 iOS 端,我会使用Alamofire,它可以让您轻松地从您的 Swift 应用程序进行 API 调用。其实现看起来像这样(用于创建新客户):

    let apiURL = "https://YourDomain.com/add-customer"
    let params = ["email": "hello@test.com"]
    let heads = ["Accept": "application/json"]
    
    Alamofire.request(.POST, apiURL, parameters: params, headers: heads)
         .responseJSON { response in
             print(response.request)  // original URL request
             print(response.response) // URL response
             print(response.data)     // server data
             print(response.result)   // result of response serialization
    
             if let JSON = response.result.value {
                 print("JSON: \(JSON)")
             }
         }
    

    在服务器端,假设你使用 Express 有这样的东西:

        app.post('/add-customer', function (req, res) {
        stripe.customers.create(
            { email: req.body.email },
            function(err, customer) {
                err; // null if no error occured
                customer; // the created customer object
    
                res.json(customer) // Send newly created customer back to client (Swift App)
            }
        );
    });
    

    希望对你有所帮助。

    【讨论】:

      猜你喜欢
      • 2013-03-20
      • 1970-01-01
      • 2012-07-13
      • 2018-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-15
      相关资源
      最近更新 更多