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
IncludeFile "CkRest.pb"
IncludeFile "CkJsonObject.pb"
Procedure ChilkatExample()
rest.i = CkRest::ckCreate()
If rest.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success.i
; URL: https://api.stripe.com/v1/tokens
bTls.i = 1
port.i = 443
bAutoReconnect.i = 1
success = CkRest::ckConnect(rest,"api.stripe.com",port,bTls,bAutoReconnect)
If success <> 1
Debug "ConnectFailReason: " + Str(CkRest::ckConnectFailReason(rest))
Debug CkRest::ckLastErrorText(rest)
CkRest::ckDispose(rest)
ProcedureReturn
EndIf
CkRest::ckSetAuthBasic(rest,"STRIPE_SECRET_KEY","")
CkRest::ckAddQueryParam(rest,"card[number]","4242424242424242")
CkRest::ckAddQueryParam(rest,"card[exp_month]","12")
CkRest::ckAddQueryParam(rest,"card[exp_year]","2019")
CkRest::ckAddQueryParam(rest,"card[cvc]","123")
strResponseBody.s = CkRest::ckFullRequestFormUrlEncoded(rest,"POST","/v1/tokens")
If CkRest::ckLastMethodSuccess(rest) <> 1
Debug CkRest::ckLastErrorText(rest)
CkRest::ckDispose(rest)
ProcedureReturn
EndIf
jsonResponse.i = CkJsonObject::ckCreate()
If jsonResponse.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkJsonObject::ckLoad(jsonResponse,strResponseBody)
id.s
object.s
cardId.s
cardObject.s
cardAddress_city.i
cardAddress_country.i
cardAddress_line1.i
cardAddress_line1_check.i
cardAddress_line2.i
cardAddress_state.i
cardAddress_zip.i
cardAddress_zip_check.i
cardBrand.s
cardCountry.s
cardCvc_check.i
cardDynamic_last4.i
cardExp_month.i
cardExp_year.i
cardFingerprint.s
cardFunding.s
cardLast4.s
cardName.i
cardTokenization_method.i
client_ip.i
created.i
livemode.i
type.s
used.i
id = CkJsonObject::ckStringOf(jsonResponse,"id")
object = CkJsonObject::ckStringOf(jsonResponse,"object")
cardId = CkJsonObject::ckStringOf(jsonResponse,"card.id")
cardObject = CkJsonObject::ckStringOf(jsonResponse,"card.object")
cardAddress_city = CkJsonObject::ckIsNullOf(jsonResponse,"card.address_city")
cardAddress_country = CkJsonObject::ckIsNullOf(jsonResponse,"card.address_country")
cardAddress_line1 = CkJsonObject::ckIsNullOf(jsonResponse,"card.address_line1")
cardAddress_line1_check = CkJsonObject::ckIsNullOf(jsonResponse,"card.address_line1_check")
cardAddress_line2 = CkJsonObject::ckIsNullOf(jsonResponse,"card.address_line2")
cardAddress_state = CkJsonObject::ckIsNullOf(jsonResponse,"card.address_state")
cardAddress_zip = CkJsonObject::ckIsNullOf(jsonResponse,"card.address_zip")
cardAddress_zip_check = CkJsonObject::ckIsNullOf(jsonResponse,"card.address_zip_check")
cardBrand = CkJsonObject::ckStringOf(jsonResponse,"card.brand")
cardCountry = CkJsonObject::ckStringOf(jsonResponse,"card.country")
cardCvc_check = CkJsonObject::ckIsNullOf(jsonResponse,"card.cvc_check")
cardDynamic_last4 = CkJsonObject::ckIsNullOf(jsonResponse,"card.dynamic_last4")
cardExp_month = CkJsonObject::ckIntOf(jsonResponse,"card.exp_month")
cardExp_year = CkJsonObject::ckIntOf(jsonResponse,"card.exp_year")
cardFingerprint = CkJsonObject::ckStringOf(jsonResponse,"card.fingerprint")
cardFunding = CkJsonObject::ckStringOf(jsonResponse,"card.funding")
cardLast4 = CkJsonObject::ckStringOf(jsonResponse,"card.last4")
cardName = CkJsonObject::ckIsNullOf(jsonResponse,"card.name")
cardTokenization_method = CkJsonObject::ckIsNullOf(jsonResponse,"card.tokenization_method")
client_ip = CkJsonObject::ckIsNullOf(jsonResponse,"client_ip")
created = CkJsonObject::ckIntOf(jsonResponse,"created")
livemode = CkJsonObject::ckBoolOf(jsonResponse,"livemode")
type = CkJsonObject::ckStringOf(jsonResponse,"type")
used = CkJsonObject::ckBoolOf(jsonResponse,"used")
CkRest::ckDispose(rest)
CkJsonObject::ckDispose(jsonResponse)
ProcedureReturn
EndProcedure
{
"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
}