Xojo Plugin Stripe: Create a Source

Back to Index

Creates a new source object.

Documentation: https://stripe.com/docs/api/curl#create_source

CURL Command

curl https://api.stripe.com/v1/sources \
   -u STRIPE_SECRET_KEY: \
   -d type=bitcoin \
   -d amount=1000 \
   -d currency=usd \
   -d owner[email]="jenny.rosen@example.com" \
   -X POST

Xojo Plugin Example

Dim rest As New Chilkat.Rest
Dim success As Boolean

//  URL: https://api.stripe.com/v1/sources
Dim bTls As Boolean
bTls = True
Dim port As Int32
port = 443
Dim bAutoReconnect As Boolean
bAutoReconnect = True
success = rest.Connect("api.stripe.com",port,bTls,bAutoReconnect)
If (success <> True) Then
    System.DebugLog("ConnectFailReason: " + Str(rest.ConnectFailReason))
    System.DebugLog(rest.LastErrorText)
    Return
End If

rest.SetAuthBasic("STRIPE_SECRET_KEY","")

rest.AddQueryParam("type","bitcoin")
rest.AddQueryParam("amount","1000")
rest.AddQueryParam("currency","usd")
rest.AddQueryParam("owner[email]","jenny.rosen@example.com")

Dim strResponseBody As String
strResponseBody = rest.FullRequestFormUrlEncoded("POST","/v1/sources")
If (rest.LastMethodSuccess <> True) Then
    System.DebugLog(rest.LastErrorText)
    Return
End If

Dim jsonResponse As New Chilkat.JsonObject
jsonResponse.Load(strResponseBody)

Dim id As String
Dim object As String
Dim amount As Int32
Dim client_secret As String
Dim created As Int32
Dim currency As String
Dim flow As String
Dim livemode As Boolean
Dim ownerAddress As Boolean
Dim ownerEmail As String
Dim ownerName As Boolean
Dim ownerPhone As Boolean
Dim ownerVerified_address As Boolean
Dim ownerVerified_email As Boolean
Dim ownerVerified_name As Boolean
Dim ownerVerified_phone As Boolean
Dim receiverAddress As String
Dim receiverAmount_charged As Int32
Dim receiverAmount_received As Int32
Dim receiverAmount_returned As Int32
Dim receiverRefund_attributes_method As String
Dim receiverRefund_attributes_status As String
Dim statement_descriptor As Boolean
Dim status As String
Dim type As String
Dim usage As String
Dim bitcoinAddress As String
Dim bitcoinAmount As Int32
Dim bitcoinAmount_charged As Int32
Dim bitcoinAmount_received As Int32
Dim bitcoinAmount_returned As Int32
Dim bitcoinUri As String

id = jsonResponse.StringOf("id")
object = jsonResponse.StringOf("object")
amount = jsonResponse.IntOf("amount")
client_secret = jsonResponse.StringOf("client_secret")
created = jsonResponse.IntOf("created")
currency = jsonResponse.StringOf("currency")
flow = jsonResponse.StringOf("flow")
livemode = jsonResponse.BoolOf("livemode")
ownerAddress = jsonResponse.IsNullOf("owner.address")
ownerEmail = jsonResponse.StringOf("owner.email")
ownerName = jsonResponse.IsNullOf("owner.name")
ownerPhone = jsonResponse.IsNullOf("owner.phone")
ownerVerified_address = jsonResponse.IsNullOf("owner.verified_address")
ownerVerified_email = jsonResponse.IsNullOf("owner.verified_email")
ownerVerified_name = jsonResponse.IsNullOf("owner.verified_name")
ownerVerified_phone = jsonResponse.IsNullOf("owner.verified_phone")
receiverAddress = jsonResponse.StringOf("receiver.address")
receiverAmount_charged = jsonResponse.IntOf("receiver.amount_charged")
receiverAmount_received = jsonResponse.IntOf("receiver.amount_received")
receiverAmount_returned = jsonResponse.IntOf("receiver.amount_returned")
receiverRefund_attributes_method = jsonResponse.StringOf("receiver.refund_attributes_method")
receiverRefund_attributes_status = jsonResponse.StringOf("receiver.refund_attributes_status")
statement_descriptor = jsonResponse.IsNullOf("statement_descriptor")
status = jsonResponse.StringOf("status")
type = jsonResponse.StringOf("type")
usage = jsonResponse.StringOf("usage")
bitcoinAddress = jsonResponse.StringOf("bitcoin.address")
bitcoinAmount = jsonResponse.IntOf("bitcoin.amount")
bitcoinAmount_charged = jsonResponse.IntOf("bitcoin.amount_charged")
bitcoinAmount_received = jsonResponse.IntOf("bitcoin.amount_received")
bitcoinAmount_returned = jsonResponse.IntOf("bitcoin.amount_returned")
bitcoinUri = jsonResponse.StringOf("bitcoin.uri")

Sample JSON Response Body

{
  "id": "src_1BnETKGswQrCoh0XUrU9xVhU",
  "object": "source",
  "amount": 1000,
  "client_secret": "src_client_secret_CBbgwhcWX2mz2uzcVsX3vjfe",
  "created": 1516662782,
  "currency": "usd",
  "flow": "receiver",
  "livemode": false,
  "metadata": {},
  "owner": {
    "address": null,
    "email": "jenny.rosen@example.com",
    "name": null,
    "phone": null,
    "verified_address": null,
    "verified_email": null,
    "verified_name": null,
    "verified_phone": null
  },
  "receiver": {
    "address": "test_1MBhWS3uv4ynCfQXF3xQjJkzFPukr4K56N",
    "amount_charged": 0,
    "amount_received": 0,
    "amount_returned": 0,
    "refund_attributes_method": "email",
    "refund_attributes_status": "missing"
  },
  "statement_descriptor": null,
  "status": "pending",
  "type": "bitcoin",
  "usage": "single_use",
  "bitcoin": {
    "address": "test_1MBhWS3uv4ynCfQXF3xQjJkzFPukr4K56N",
    "amount": 2371000,
    "amount_charged": 0,
    "amount_received": 0,
    "amount_returned": 0,
    "uri": "bitcoin:test_1MBhWS3uv4ynCfQXF3xQjJkzFPukr4K56N?amount=0.02371000"
  }
}