如何使用Stripe和Swift获得卡牌

Rut*_*ans 3 ios stripe-payments swift

    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)
        }
    }
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么Stripe没有退回卡牌?我正在使用条纹测试卡,其余信息将被退回.

Ole*_*anu 9

所以检查我发现的API文档brand是en enum:

var brand: STPCardBrand { get }
Run Code Online (Sandbox Code Playgroud)

有这些价值观:

typedef NS_ENUM(NSInteger, STPCardBrand) {
    STPCardBrandVisa,
    STPCardBrandAmex,
    STPCardBrandMasterCard,
    STPCardBrandDiscover,
    STPCardBrandJCB,
    STPCardBrandDinersClub,
    STPCardBrandUnknown,
};
Run Code Online (Sandbox Code Playgroud)

您还可以考虑使用静态stringFromBrand函数:

返回提供的卡牌的字符串表示形式; 即[NSString stringFromBrand:STPCardBrandVisa] == @"Visa".宣言

  • (nonnull NSString*)stringFromBrand:(STPCardBrand)品牌;

class func string(来自品牌:STPCardBrand) - > String

例:

print(STPCard.stringFromBrand(from: token.card?.brand))
Run Code Online (Sandbox Code Playgroud)