如何从条带中获取描述错误?

时间:2016-01-25 19:12:59

标签: swift stripe-payments

我正在我的应用中集成条纹。该代码有效,但我想获取描述错误并将其显示给带有标签的用户,以防出现问题(CC编号不正确等):

      // other stuff here


     STPAPIClient.sharedClient().createTokenWithCard(stripeCard) { (token, error) -> Void in
        if let error = error  {

            print(error.userInfo)
        }
        else if let token = token {
            self.createBackendChargeWithToken(token) { status in
                if status == PKPaymentAuthorizationStatus.Success{

                    dispatch_async(dispatch_get_main_queue()){

                        self.paymentActivity.hidden = true
                        self.paymentActivity.stopAnimating()
                        self.paymentActivityLabel.text = "Transaction approved!"

                    }



                }

            }
        }

    }
}

当我打印error.userInfo时,我得到以下内容:

[com.stripe.lib:ErrorMessageKey: Your card number is incorrect.,
com.stripe.lib:CardErrorCodeKey: com.stripe.lib:IncorrectNumber,
com.stripe.lib:ErrorParameterKey: number, 
NSLocalizedDescription: Your card's number is invalid]

我如何推断NSLocalizedDescription

1 个答案:

答案 0 :(得分:1)

error.userInfo通常是NSDictionary。

当你打印这个字典时,没有类似Swift字典的类型,所以打印功能并不总是识别什么是字符串,并且不显示双引号。但是你的userInfo字典键仍然可能是字符串。

我首先尝试访问错误值,如下所示:

print(error.userInfo["NSLocalizedDescription"])

验证确实NSLocalizedDescription是字符串键。

提示:按住ALT并点击变量,它会显示其类型,有助于在Xcode中快速调试。