Swift中Stripe的paymentContext的createCharge方法的正确方法签名是什么?

时间:2019-06-18 15:54:12

标签: ios swift stripe-payments

我正在尝试使用swift在我的iOS应用中实现Stripe,并且正在努力编写createCharge函数。

Stripe提供了一些样板代码,其中包括对我必须实现的createCharge方法的调用。我尝试创建此方法,但是无法获取方法签名以将调用与该方法匹配。我是新手,并不完全了解闭包,我认为这是造成问题的原因。

有人可以帮我写一个方法签名,使其遵循下面的调用代码吗?

我试图通过更改操作数的数据类型来更改方法签名。我还尝试将一个附加参数插入方法调用中(因为这是错误消息建议执行的操作),但我不知道该附加参数应该是什么。

下面是在StripeAPIClient.swift类中编写的方法签名:

func createCharge(paymentResult: String, completion: @escaping STPJSONResponseCompletionBlock) { // ...

下面是对SelectedMenuItem.swift类中编写的方法的调用:

let stripeApiClient = StripeAPIClient()

func paymentContext(_ paymentContext: STPPaymentContext, didCreatePaymentResult paymentResult: STPPaymentResult, completion: @escaping STPErrorBlock) {
    // error occurs on this line
    stripeApiClient.createCharge(paymentResult: paymentResult.source.stripeID, completion: { (error: Error?) in
        if let error = error {
            completion(error)
        } else {
            completion(nil)
        }
    })
}

当我调用该函数时,收到一条意外的错误消息:

  

上下文闭包类型'([AnyHashable : Any]?, Error?) -> Void'需要2个参数,但闭包主体中使用了1个

0 个答案:

没有答案