DataFlex Stripe: Attach a Source

Back to Index

Attaches a Source object to a Customer. The source must be in a chargeable state.

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

CURL Command

curl https://api.stripe.com/v1/customers/cus_CBbg9PmQ9sLbmo/sources \
   -u STRIPE_SECRET_KEY: \
   -d source=src_1BnETLGswQrCoh0X5KOorXEP \
   -X POST

DataFlex Example

Use ChilkatAx-9.5.0-win32.pkg

Procedure Test
    Handle hoRest
    Boolean iSuccess
    Boolean iBTls
    Integer iPort
    Boolean iBAutoReconnect
    String sStrResponseBody
    Handle hoJsonResponse
    String sId
    String sObject
    Integer iAmount
    String sClient_secret
    Integer iCreated
    String sCurrency
    String sFlow
    Boolean iLivemode
    Boolean iOwnerAddress
    String sOwnerEmail
    Boolean iOwnerName
    Boolean iOwnerPhone
    Boolean iOwnerVerified_address
    Boolean iOwnerVerified_email
    Boolean iOwnerVerified_name
    Boolean iOwnerVerified_phone
    String sReceiverAddress
    Integer iReceiverAmount_charged
    Integer iReceiverAmount_received
    Integer iReceiverAmount_returned
    String sReceiverRefund_attributes_method
    String sReceiverRefund_attributes_status
    Boolean iStatement_descriptor
    String sStatus
    String sType
    String sUsage
    String sBitcoinAddress
    Integer iBitcoinAmount
    Integer iBitcoinAmount_charged
    Integer iBitcoinAmount_received
    Integer iBitcoinAmount_returned
    String sBitcoinUri
    String sCustomer
    String sTemp1
    Integer iTemp1
    Boolean bTemp1

    Get Create (RefClass(cComChilkatRest)) To hoRest
    If (Not(IsComObjectCreated(hoRest))) Begin
        Send CreateComObject of hoRest
    End

    //  URL: https://api.stripe.com/v1/customers/cus_CBbg9PmQ9sLbmo/sources
    Move True To iBTls
    Move 443 To iPort
    Move True To iBAutoReconnect
    Get ComConnect Of hoRest "api.stripe.com" iPort iBTls iBAutoReconnect To iSuccess
    If (iSuccess <> True) Begin
        Get ComConnectFailReason Of hoRest To iTemp1
        Showln "ConnectFailReason: " iTemp1
        Get ComLastErrorText Of hoRest To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get ComSetAuthBasic Of hoRest "STRIPE_SECRET_KEY" "" To iSuccess

    Get ComAddQueryParam Of hoRest "source" "src_1BnETLGswQrCoh0X5KOorXEP" To iSuccess

    Get ComFullRequestFormUrlEncoded Of hoRest "POST" "/v1/customers/cus_CBbg9PmQ9sLbmo/sources" To sStrResponseBody
    Get ComLastMethodSuccess Of hoRest To bTemp1
    If (bTemp1 <> True) Begin
        Get ComLastErrorText Of hoRest To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get Create (RefClass(cComChilkatJsonObject)) To hoJsonResponse
    If (Not(IsComObjectCreated(hoJsonResponse))) Begin
        Send CreateComObject of hoJsonResponse
    End
    Get ComLoad Of hoJsonResponse sStrResponseBody To iSuccess

    Get ComStringOf Of hoJsonResponse "id" To sId
    Get ComStringOf Of hoJsonResponse "object" To sObject
    Get ComIntOf Of hoJsonResponse "amount" To iAmount
    Get ComStringOf Of hoJsonResponse "client_secret" To sClient_secret
    Get ComIntOf Of hoJsonResponse "created" To iCreated
    Get ComStringOf Of hoJsonResponse "currency" To sCurrency
    Get ComStringOf Of hoJsonResponse "flow" To sFlow
    Get ComBoolOf Of hoJsonResponse "livemode" To iLivemode
    Get ComIsNullOf Of hoJsonResponse "owner.address" To iOwnerAddress
    Get ComStringOf Of hoJsonResponse "owner.email" To sOwnerEmail
    Get ComIsNullOf Of hoJsonResponse "owner.name" To iOwnerName
    Get ComIsNullOf Of hoJsonResponse "owner.phone" To iOwnerPhone
    Get ComIsNullOf Of hoJsonResponse "owner.verified_address" To iOwnerVerified_address
    Get ComIsNullOf Of hoJsonResponse "owner.verified_email" To iOwnerVerified_email
    Get ComIsNullOf Of hoJsonResponse "owner.verified_name" To iOwnerVerified_name
    Get ComIsNullOf Of hoJsonResponse "owner.verified_phone" To iOwnerVerified_phone
    Get ComStringOf Of hoJsonResponse "receiver.address" To sReceiverAddress
    Get ComIntOf Of hoJsonResponse "receiver.amount_charged" To iReceiverAmount_charged
    Get ComIntOf Of hoJsonResponse "receiver.amount_received" To iReceiverAmount_received
    Get ComIntOf Of hoJsonResponse "receiver.amount_returned" To iReceiverAmount_returned
    Get ComStringOf Of hoJsonResponse "receiver.refund_attributes_method" To sReceiverRefund_attributes_method
    Get ComStringOf Of hoJsonResponse "receiver.refund_attributes_status" To sReceiverRefund_attributes_status
    Get ComIsNullOf Of hoJsonResponse "statement_descriptor" To iStatement_descriptor
    Get ComStringOf Of hoJsonResponse "status" To sStatus
    Get ComStringOf Of hoJsonResponse "type" To sType
    Get ComStringOf Of hoJsonResponse "usage" To sUsage
    Get ComStringOf Of hoJsonResponse "bitcoin.address" To sBitcoinAddress
    Get ComIntOf Of hoJsonResponse "bitcoin.amount" To iBitcoinAmount
    Get ComIntOf Of hoJsonResponse "bitcoin.amount_charged" To iBitcoinAmount_charged
    Get ComIntOf Of hoJsonResponse "bitcoin.amount_received" To iBitcoinAmount_received
    Get ComIntOf Of hoJsonResponse "bitcoin.amount_returned" To iBitcoinAmount_returned
    Get ComStringOf Of hoJsonResponse "bitcoin.uri" To sBitcoinUri
    Get ComStringOf Of hoJsonResponse "customer" To sCustomer


End_Procedure

Sample JSON Response Body

{
  "id": "src_1BnETLGswQrCoh0X5KOorXEP",
  "object": "source",
  "amount": 1000,
  "client_secret": "src_client_secret_CBbgdvc1AflN5jN0wQevA2jA",
  "created": 1516662783,
  "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": "chargeable",
  "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"
  },
  "customer": "cus_CBbg9PmQ9sLbmo"
}