2017-06-14 41 views
1
STPAPIClient.shared().createToken(withCard: cardParams) { (token, error) in 
     if error != nil { 
      //fail 
     } else if let token = token { 
      print(token.card?.brand) //Optional(__C.STPCardBrand) 
      print(token.card?.brand.hashValue) //Optional(0) 
      print(token.card?.brand.rawValue) //Optional(0) 
     } 
    } 

有誰知道爲什麼Stripe沒有返回卡片品牌?我正在使用條紋測試卡,其餘的信息正在返回。如何使用Stripe和Swift獲取卡片品牌

回答

3

所以檢查API文檔,我發現brand是EN枚舉:

var brand: STPCardBrand { get } 

有這些值:

typedef NS_ENUM(NSInteger, STPCardBrand) { 
    STPCardBrandVisa, 
    STPCardBrandAmex, 
    STPCardBrandMasterCard, 
    STPCardBrandDiscover, 
    STPCardBrandJCB, 
    STPCardBrandDinersClub, 
    STPCardBrandUnknown, 
}; 

你也可以考慮使用靜態stringFromBrand功能:

返回提供的卡品牌的字符串表示形式;即 [NSString stringFromBrand:STPCardBrandVisa] == @「Visa」。聲明

  • (nonnull NSString *)stringFromBrand :(STPCardBrand)brand;

類FUNC串(從品牌:STPCardBrand) - >字符串

實施例:

print((STPCard.stringFromBrand(from: token.card?.brand)) 
相關問題