Creates a single use token that wraps the details of a credit card. This token can be used in place of a credit card dictionary with any API method.
curl https://api.stripe.com/v1/tokens \
-u STRIPE_SECRET_KEY: \
-d card[number]=4242424242424242 \
-d card[exp_month]=12 \
-d card[exp_year]=2019 \
-d card[cvc]=123
-X POST
func chilkatTest() {
let rest = CkoRest()
var success: Bool
// URL: https://api.stripe.com/v1/tokens
var bTls: Bool = true
var port: Int = 443
var bAutoReconnect: Bool = true
success = rest.Connect("api.stripe.com", port: port, tls: bTls, autoReconnect: bAutoReconnect)
if success != true {
print("ConnectFailReason: \(rest.ConnectFailReason.integerValue)")
print("\(rest.LastErrorText)")
return
}
rest.SetAuthBasic("STRIPE_SECRET_KEY", password: "")
rest.AddQueryParam("card[number]", value: "4242424242424242")
rest.AddQueryParam("card[exp_month]", value: "12")
rest.AddQueryParam("card[exp_year]", value: "2019")
rest.AddQueryParam("card[cvc]", value: "123")
var strResponseBody: String? = rest.FullRequestFormUrlEncoded("POST", uriPath: "/v1/tokens")
if rest.LastMethodSuccess != true {
print("\(rest.LastErrorText)")
return
}
let jsonResponse = CkoJsonObject()
jsonResponse.Load(strResponseBody)
var id: String?
var object: String?
var cardId: String?
var cardObject: String?
var cardAddress_city: Bool
var cardAddress_country: Bool
var cardAddress_line1: Bool
var cardAddress_line1_check: Bool
var cardAddress_line2: Bool
var cardAddress_state: Bool
var cardAddress_zip: Bool
var cardAddress_zip_check: Bool
var cardBrand: String?
var cardCountry: String?
var cardCvc_check: Bool
var cardDynamic_last4: Bool
var cardExp_month: Int
var cardExp_year: Int
var cardFingerprint: String?
var cardFunding: String?
var cardLast4: String?
var cardName: Bool
var cardTokenization_method: Bool
var client_ip: Bool
var created: Int
var livemode: Bool
var type: String?
var used: Bool
id = jsonResponse.StringOf("id")
object = jsonResponse.StringOf("object")
cardId = jsonResponse.StringOf("card.id")
cardObject = jsonResponse.StringOf("card.object")
cardAddress_city = jsonResponse.IsNullOf("card.address_city")
cardAddress_country = jsonResponse.IsNullOf("card.address_country")
cardAddress_line1 = jsonResponse.IsNullOf("card.address_line1")
cardAddress_line1_check = jsonResponse.IsNullOf("card.address_line1_check")
cardAddress_line2 = jsonResponse.IsNullOf("card.address_line2")
cardAddress_state = jsonResponse.IsNullOf("card.address_state")
cardAddress_zip = jsonResponse.IsNullOf("card.address_zip")
cardAddress_zip_check = jsonResponse.IsNullOf("card.address_zip_check")
cardBrand = jsonResponse.StringOf("card.brand")
cardCountry = jsonResponse.StringOf("card.country")
cardCvc_check = jsonResponse.IsNullOf("card.cvc_check")
cardDynamic_last4 = jsonResponse.IsNullOf("card.dynamic_last4")
cardExp_month = jsonResponse.IntOf("card.exp_month").integerValue
cardExp_year = jsonResponse.IntOf("card.exp_year").integerValue
cardFingerprint = jsonResponse.StringOf("card.fingerprint")
cardFunding = jsonResponse.StringOf("card.funding")
cardLast4 = jsonResponse.StringOf("card.last4")
cardName = jsonResponse.IsNullOf("card.name")
cardTokenization_method = jsonResponse.IsNullOf("card.tokenization_method")
client_ip = jsonResponse.IsNullOf("client_ip")
created = jsonResponse.IntOf("created").integerValue
livemode = jsonResponse.BoolOf("livemode")
type = jsonResponse.StringOf("type")
used = jsonResponse.BoolOf("used")
}
{
"id": "tok_1BnETKGswQrCoh0XIvDUT3mu",
"object": "token",
"card": {
"id": "card_1BnETKGswQrCoh0XGXCaLCT2",
"object": "card",
"address_city": null,
"address_country": null,
"address_line1": null,
"address_line1_check": null,
"address_line2": null,
"address_state": null,
"address_zip": null,
"address_zip_check": null,
"brand": "Visa",
"country": "US",
"cvc_check": null,
"dynamic_last4": null,
"exp_month": 8,
"exp_year": 2019,
"fingerprint": "F9mANtIt1TaukpRJ",
"funding": "credit",
"last4": "4242",
"metadata": {},
"name": null,
"tokenization_method": null
},
"client_ip": null,
"created": 1516662782,
"livemode": false,
"type": "card",
"used": false
}