To charge a credit card, you create a Charge object. If your API key is in test mode, the supplied payment source (e.g., card) won't actually be charged, though everything else will occur as if in live mode. (Stripe assumes that the charge would have completed successfully).
curl -X POST https://api.stripe.com/v1/charges \
-u STRIPE_SECRET_KEY: \
-d amount=2000 \
-d currency=usd \
-d source=tok_visa \
-d description="Charge for aiden.jones@example.com"
CREATE PROCEDURE ChilkatSample
AS
BEGIN
DECLARE @hr int
DECLARE @iTmp0 int
DECLARE @sTmp0 nvarchar(4000)
DECLARE @rest int
EXEC @hr = sp_OACreate 'Chilkat_9_5_0.Rest', @rest OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
DECLARE @success int
-- URL: https://api.stripe.com/v1/charges
DECLARE @bTls int
SELECT @bTls = 1
DECLARE @port int
SELECT @port = 443
DECLARE @bAutoReconnect int
SELECT @bAutoReconnect = 1
EXEC sp_OAMethod @rest, 'Connect', @success OUT, 'api.stripe.com', STR(@port), STR(@bTls), STR(@bAutoReconnect)
IF STR(@success) <> 1
BEGIN
EXEC sp_OAGetProperty @rest, 'ConnectFailReason', @iTmp0 OUT
PRINT 'ConnectFailReason: ' + @iTmp0
EXEC sp_OAGetProperty @rest, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @rest
RETURN
END
EXEC sp_OAMethod @rest, 'SetAuthBasic', @success OUT, 'STRIPE_SECRET_KEY', ''
EXEC sp_OAMethod @rest, 'AddQueryParam', @success OUT, 'amount', '2000'
EXEC sp_OAMethod @rest, 'AddQueryParam', @success OUT, 'currency', 'usd'
EXEC sp_OAMethod @rest, 'AddQueryParam', @success OUT, 'source', 'tok_visa'
EXEC sp_OAMethod @rest, 'AddQueryParam', @success OUT, 'description', 'Charge for aiden.jones@example.com'
DECLARE @strResponseBody nvarchar(4000)
EXEC sp_OAMethod @rest, 'FullRequestFormUrlEncoded', @strResponseBody OUT, 'POST', '/v1/charges'
EXEC sp_OAGetProperty @rest, 'LastMethodSuccess', @iTmp0 OUT
IF @iTmp0 <> 1
BEGIN
EXEC sp_OAGetProperty @rest, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @rest
RETURN
END
DECLARE @jsonResponse int
EXEC @hr = sp_OACreate 'Chilkat_9_5_0.JsonObject', @jsonResponse OUT
EXEC sp_OAMethod @jsonResponse, 'Load', @success OUT, @strResponseBody
DECLARE @id nvarchar(4000)
DECLARE @object nvarchar(4000)
DECLARE @amount int
DECLARE @amount_refunded int
DECLARE @application int
DECLARE @application_fee int
DECLARE @balance_transaction nvarchar(4000)
DECLARE @captured int
DECLARE @created int
DECLARE @currency nvarchar(4000)
DECLARE @customer int
DECLARE @description nvarchar(4000)
DECLARE @destination int
DECLARE @dispute int
DECLARE @failure_code int
DECLARE @failure_message int
DECLARE @invoice int
DECLARE @livemode int
DECLARE @on_behalf_of int
DECLARE @order int
DECLARE @outcome int
DECLARE @paid int
DECLARE @receipt_email int
DECLARE @receipt_number int
DECLARE @refunded int
DECLARE @refundsObject nvarchar(4000)
DECLARE @refundsHas_more int
DECLARE @refundsTotal_count int
DECLARE @refundsUrl nvarchar(4000)
DECLARE @review int
DECLARE @shipping int
DECLARE @sourceId nvarchar(4000)
DECLARE @sourceObject nvarchar(4000)
DECLARE @sourceAddress_city int
DECLARE @sourceAddress_country int
DECLARE @sourceAddress_line1 int
DECLARE @sourceAddress_line1_check int
DECLARE @sourceAddress_line2 int
DECLARE @sourceAddress_state int
DECLARE @sourceAddress_zip int
DECLARE @sourceAddress_zip_check int
DECLARE @sourceBrand nvarchar(4000)
DECLARE @sourceCountry nvarchar(4000)
DECLARE @sourceCustomer int
DECLARE @sourceCvc_check int
DECLARE @sourceDynamic_last4 int
DECLARE @sourceExp_month int
DECLARE @sourceExp_year int
DECLARE @sourceFingerprint nvarchar(4000)
DECLARE @sourceFunding nvarchar(4000)
DECLARE @sourceLast4 nvarchar(4000)
DECLARE @sourceName int
DECLARE @sourceTokenization_method int
DECLARE @source_transfer int
DECLARE @statement_descriptor int
DECLARE @status nvarchar(4000)
DECLARE @transfer_group int
DECLARE @i int
DECLARE @count_i int
EXEC sp_OAMethod @jsonResponse, 'StringOf', @id OUT, 'id'
EXEC sp_OAMethod @jsonResponse, 'StringOf', @object OUT, 'object'
EXEC sp_OAMethod @jsonResponse, 'IntOf', @amount OUT, 'amount'
EXEC sp_OAMethod @jsonResponse, 'IntOf', @amount_refunded OUT, 'amount_refunded'
EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @application OUT, 'application'
EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @application_fee OUT, 'application_fee'
EXEC sp_OAMethod @jsonResponse, 'StringOf', @balance_transaction OUT, 'balance_transaction'
EXEC sp_OAMethod @jsonResponse, 'BoolOf', @captured OUT, 'captured'
EXEC sp_OAMethod @jsonResponse, 'IntOf', @created OUT, 'created'
EXEC sp_OAMethod @jsonResponse, 'StringOf', @currency OUT, 'currency'
EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @customer OUT, 'customer'
EXEC sp_OAMethod @jsonResponse, 'StringOf', @description OUT, 'description'
EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @destination OUT, 'destination'
EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @dispute OUT, 'dispute'
EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @failure_code OUT, 'failure_code'
EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @failure_message OUT, 'failure_message'
EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @invoice OUT, 'invoice'
EXEC sp_OAMethod @jsonResponse, 'BoolOf', @livemode OUT, 'livemode'
EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @on_behalf_of OUT, 'on_behalf_of'
EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @order OUT, 'order'
EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @outcome OUT, 'outcome'
EXEC sp_OAMethod @jsonResponse, 'BoolOf', @paid OUT, 'paid'
EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @receipt_email OUT, 'receipt_email'
EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @receipt_number OUT, 'receipt_number'
EXEC sp_OAMethod @jsonResponse, 'BoolOf', @refunded OUT, 'refunded'
EXEC sp_OAMethod @jsonResponse, 'StringOf', @refundsObject OUT, 'refunds.object'
EXEC sp_OAMethod @jsonResponse, 'BoolOf', @refundsHas_more OUT, 'refunds.has_more'
EXEC sp_OAMethod @jsonResponse, 'IntOf', @refundsTotal_count OUT, 'refunds.total_count'
EXEC sp_OAMethod @jsonResponse, 'StringOf', @refundsUrl OUT, 'refunds.url'
EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @review OUT, 'review'
EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @shipping OUT, 'shipping'
EXEC sp_OAMethod @jsonResponse, 'StringOf', @sourceId OUT, 'source.id'
EXEC sp_OAMethod @jsonResponse, 'StringOf', @sourceObject OUT, 'source.object'
EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @sourceAddress_city OUT, 'source.address_city'
EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @sourceAddress_country OUT, 'source.address_country'
EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @sourceAddress_line1 OUT, 'source.address_line1'
EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @sourceAddress_line1_check OUT, 'source.address_line1_check'
EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @sourceAddress_line2 OUT, 'source.address_line2'
EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @sourceAddress_state OUT, 'source.address_state'
EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @sourceAddress_zip OUT, 'source.address_zip'
EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @sourceAddress_zip_check OUT, 'source.address_zip_check'
EXEC sp_OAMethod @jsonResponse, 'StringOf', @sourceBrand OUT, 'source.brand'
EXEC sp_OAMethod @jsonResponse, 'StringOf', @sourceCountry OUT, 'source.country'
EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @sourceCustomer OUT, 'source.customer'
EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @sourceCvc_check OUT, 'source.cvc_check'
EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @sourceDynamic_last4 OUT, 'source.dynamic_last4'
EXEC sp_OAMethod @jsonResponse, 'IntOf', @sourceExp_month OUT, 'source.exp_month'
EXEC sp_OAMethod @jsonResponse, 'IntOf', @sourceExp_year OUT, 'source.exp_year'
EXEC sp_OAMethod @jsonResponse, 'StringOf', @sourceFingerprint OUT, 'source.fingerprint'
EXEC sp_OAMethod @jsonResponse, 'StringOf', @sourceFunding OUT, 'source.funding'
EXEC sp_OAMethod @jsonResponse, 'StringOf', @sourceLast4 OUT, 'source.last4'
EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @sourceName OUT, 'source.name'
EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @sourceTokenization_method OUT, 'source.tokenization_method'
EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @source_transfer OUT, 'source_transfer'
EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @statement_descriptor OUT, 'statement_descriptor'
EXEC sp_OAMethod @jsonResponse, 'StringOf', @status OUT, 'status'
EXEC sp_OAMethod @jsonResponse, 'IsNullOf', @transfer_group OUT, 'transfer_group'
SELECT @i = 0
EXEC sp_OAMethod @jsonResponse, 'SizeOfArray', @count_i OUT, 'refunds.data'
WHILE STR(@i) < STR(@count_i)
BEGIN
EXEC sp_OASetProperty @jsonResponse, 'I', STR(@i)
SELECT @i = STR(@i) + 1
END
EXEC @hr = sp_OADestroy @rest
EXEC @hr = sp_OADestroy @jsonResponse
END
GO
{
"id": "ch_1BnETJGswQrCoh0XTs0EERBj",
"object": "charge",
"amount": 100,
"amount_refunded": 0,
"application": null,
"application_fee": null,
"balance_transaction": "txn_1BnETJGswQrCoh0XxO2tGYr7",
"captured": false,
"created": 1516662781,
"currency": "usd",
"customer": null,
"description": "My First Test Charge (created for API docs)",
"destination": null,
"dispute": null,
"failure_code": null,
"failure_message": null,
"fraud_details": {},
"invoice": null,
"livemode": false,
"metadata": {},
"on_behalf_of": null,
"order": null,
"outcome": null,
"paid": true,
"receipt_email": null,
"receipt_number": null,
"refunded": false,
"refunds": {
"object": "list",
"data": [
],
"has_more": false,
"total_count": 0,
"url": "/v1/charges/ch_1BnETJGswQrCoh0XTs0EERBj/refunds"
},
"review": null,
"shipping": null,
"source": {
"id": "card_18ropuGswQrCoh0XjCJ5Zvma",
"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",
"customer": null,
"cvc_check": null,
"dynamic_last4": null,
"exp_month": 8,
"exp_year": 2017,
"fingerprint": "F9mANtIt1TaukpRJ",
"funding": "credit",
"last4": "4242",
"metadata": {},
"name": null,
"tokenization_method": null
},
"source_transfer": null,
"statement_descriptor": null,
"status": "succeeded",
"transfer_group": null
}