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
load ./chilkat.dll
set rest [new_CkRest]
# URL: https://api.stripe.com/v1/tokens
set bTls 1
set port 443
set bAutoReconnect 1
set success [CkRest_Connect $rest "api.stripe.com" $port $bTls $bAutoReconnect]
if {[expr $success != 1]} then {
puts "ConnectFailReason: [CkRest_ConnectFailReason $rest]"
puts [CkRest_lastErrorText $rest]
delete_CkRest $rest
exit
}
CkRest_SetAuthBasic $rest "STRIPE_SECRET_KEY" ""
CkRest_AddQueryParam $rest "card[number]" "4242424242424242"
CkRest_AddQueryParam $rest "card[exp_month]" "12"
CkRest_AddQueryParam $rest "card[exp_year]" "2019"
CkRest_AddQueryParam $rest "card[cvc]" "123"
set strResponseBody [CkRest_fullRequestFormUrlEncoded $rest "POST" "/v1/tokens"]
if {[expr [CkRest_LastMethodSuccess $rest] != 1]} then {
puts [CkRest_lastErrorText $rest]
delete_CkRest $rest
exit
}
set jsonResponse [new_CkJsonObject]
CkJsonObject_Load $jsonResponse $strResponseBody
set id [CkJsonObject_stringOf $jsonResponse "id"]
set object [CkJsonObject_stringOf $jsonResponse "object"]
set cardId [CkJsonObject_stringOf $jsonResponse "card.id"]
set cardObject [CkJsonObject_stringOf $jsonResponse "card.object"]
set cardAddress_city [CkJsonObject_IsNullOf $jsonResponse "card.address_city"]
set cardAddress_country [CkJsonObject_IsNullOf $jsonResponse "card.address_country"]
set cardAddress_line1 [CkJsonObject_IsNullOf $jsonResponse "card.address_line1"]
set cardAddress_line1_check [CkJsonObject_IsNullOf $jsonResponse "card.address_line1_check"]
set cardAddress_line2 [CkJsonObject_IsNullOf $jsonResponse "card.address_line2"]
set cardAddress_state [CkJsonObject_IsNullOf $jsonResponse "card.address_state"]
set cardAddress_zip [CkJsonObject_IsNullOf $jsonResponse "card.address_zip"]
set cardAddress_zip_check [CkJsonObject_IsNullOf $jsonResponse "card.address_zip_check"]
set cardBrand [CkJsonObject_stringOf $jsonResponse "card.brand"]
set cardCountry [CkJsonObject_stringOf $jsonResponse "card.country"]
set cardCvc_check [CkJsonObject_IsNullOf $jsonResponse "card.cvc_check"]
set cardDynamic_last4 [CkJsonObject_IsNullOf $jsonResponse "card.dynamic_last4"]
set cardExp_month [CkJsonObject_IntOf $jsonResponse "card.exp_month"]
set cardExp_year [CkJsonObject_IntOf $jsonResponse "card.exp_year"]
set cardFingerprint [CkJsonObject_stringOf $jsonResponse "card.fingerprint"]
set cardFunding [CkJsonObject_stringOf $jsonResponse "card.funding"]
set cardLast4 [CkJsonObject_stringOf $jsonResponse "card.last4"]
set cardName [CkJsonObject_IsNullOf $jsonResponse "card.name"]
set cardTokenization_method [CkJsonObject_IsNullOf $jsonResponse "card.tokenization_method"]
set client_ip [CkJsonObject_IsNullOf $jsonResponse "client_ip"]
set created [CkJsonObject_IntOf $jsonResponse "created"]
set livemode [CkJsonObject_BoolOf $jsonResponse "livemode"]
set type [CkJsonObject_stringOf $jsonResponse "type"]
set used [CkJsonObject_BoolOf $jsonResponse "used"]
delete_CkRest $rest
delete_CkJsonObject $jsonResponse
{
"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
}