【问题标题】:Get Card Type from Stripe STPPaymentCardTextField从 Stripe STPPaymentCardTextField 获取卡类型
【发布时间】:2020-08-26 00:41:07
【问题描述】:

我正在使用STPPaymentCardTextField 从用户那里收集卡信息。

我可以使用STPPaymentCardTextFieldDelegate的委托方法来获取'cardNumberexpirationMonth等信息:

func paymentCardTextFieldDidChange(_ textField: STPPaymentCardTextField) {
   print("NUMBER", textField.cardNumber)
   print("EXP MONTH", textField.expirationMonth)
   print("EXP YEAR", textField.expirationYear)
   print("CVC", textField.cvc)   
}

然而,这个 textField 似乎也显示卡片类型,基于用户输入的信息:

如何以编程方式访问此卡类型?我在另一个UIView 中使用它来生成卡片的预览,根据卡片类型设置其背景颜色和徽标等。

【问题讨论】:

    标签: ios swift stripe-payments credit-card


    【解决方案1】:

    您可以直接获取品牌形象:https://stripe.dev/stripe-ios/docs/Classes/STPPaymentCardTextField.html#/c:objc(cs)STPPaymentCardTextField(py)brandImage

    在您的情况下,它将是 textField.brandImage

    【讨论】:

      【解决方案2】:
      // number = credit card number
      
      let card = CreditCardValidator()
      let imageName = card.type(from: number)
              
      print(imageName!.name)
      

      【讨论】:

      • 请不要只发布代码作为答案,还要解释您的代码的作用以及它如何解决问题的问题。带有解释的答案通常更有帮助、质量更好,并且更有可能吸引投票
      【解决方案3】:

      您可以使用 STPCardValidator ,Stripe Docs for Card Validator

      如果你想打印上面函数中的类型,这里是代码

      func paymentCardTextFieldDidChange(_ textField: STPPaymentCardTextField) {
         print("NUMBER", textField.cardNumber)
         print("EXP MONTH", textField.expirationMonth)
         print("EXP YEAR", textField.expirationYear)
         print("CVC", textField.cvc)   
         print("Brand Type", STPCardValidator.brand(forNumber: textField.cardNumber))
      }
      

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-25
      • 1970-01-01
      • 2019-10-28
      • 2021-09-14
      • 1970-01-01
      • 2020-01-17
      • 2017-11-16
      相关资源
      最近更新 更多