【问题标题】:swift How to get Stripe token?swift 如何获得 Stripe 令牌?
【发布时间】:2018-09-01 18:33:49
【问题描述】:

我想实现 Stripe 支付网关。并且需要生成令牌并传递给后端。

private func getToken(){
        let cardParams = STPCardParams()
        cardParams.number = paymentCardTextField?.cardNumber
        cardParams.expMonth = (paymentCardTextField?.expirationMonth)!
        cardParams.expYear = (paymentCardTextField?.expirationYear)!
        cardParams.cvc = paymentCardTextField?.cvc
        STPAPIClient.shared().createToken(withCard: cardParams) { (token: STPToken?, error: Error?) in
            guard let token = token, error == nil else {
                // Present error to user...
                return
            }
            self.dictPayData["stripe_token"] = token.tokenId
            print(self.dictPayData)


        }
    }

【问题讨论】:

    标签: ios swift stripe-payments


    【解决方案1】:

    确保您需要添加 Stripe 可发布密钥(实时/测试)

    AppDelegate.swift

         import Stripe
           class AppDelegate: UIResponder, UIApplicationDelegate{
    
           // var navCon: UINavigationController?
            var window: UIWindow?
            func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
                // Override point for customization after application la
                 STPPaymentConfiguration.shared().publishableKey = "pk_test_DSFDSFSDFDFSDFSDFDSDSF"
    
                return true
            }
    }
    

    在我的 PaymentView.swift

    注意:使用STPPaymentCardTextFieldDelegate 进行卡片验证。

    class PaymentView: UIViewController,STPPaymentCardTextFieldDelegate {
        @IBOutlet weak var paymentCardTextField = STPPaymentCardTextField()
    }
    
    private func getToken(){
            let cardParams = STPCardParams()
            cardParams.number = paymentCardTextField?.cardNumber
            cardParams.expMonth = (paymentCardTextField?.expirationMonth)!
            cardParams.expYear = (paymentCardTextField?.expirationYear)!
            cardParams.cvc = paymentCardTextField?.cvc
            STPAPIClient.shared().createToken(withCard: cardParams) { (token: STPToken?, error: Error?) in
                guard let token = token, error == nil else {
                    // Present error to user...
                    return
                }
                self.dictPayData["stripe_token"] = token.tokenId
                print(self.dictPayData)
    
            }
        }
    

    【讨论】:

    • 我收到此错误。 “您没有提供 API 密钥。您需要在授权标头中提供您的 API 密钥,使用不记名身份验证(例如 \'Authorization: Bearer YOUR_SECRET_KEY\')。有关详细信息,请参阅 stripe.com/docs/api#authentication,或者我们可以在 @987654322 提供帮助@。”你能指导我吗? h
    猜你喜欢
    • 2017-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-16
    • 2012-08-15
    • 2019-10-25
    相关资源
    最近更新 更多