Visual Basic 6.0
Visual Basic 6.0
Amazon Pay - Get Charge
See more Amazon Pay Examples
Get Charge details such as charge amount and authorization state. Use this operation to determine if authorization or capture was successful.Chilkat Visual Basic 6.0 Downloads
Dim success As Long
success = 0
' This example assumes the Chilkat API to have been previously unlocked.
' See Global Unlock Sample for sample code.
Dim http As New ChilkatHttp
' Implements the following CURL command:
' curl "https://pay-api.amazon.com/:version/charges/:chargeId"
' -H "authorization:Px2e5oHhQZ88vVhc0DO%2FsShHj8MDDg%3DEXAMPLESIGNATURE"
' -H "x-amz-pay-date:20201012T235046Z"
' -X GET
' Load your Amazon Pay private key.
' There are many other ways to load private keys into the Chilkat private key object, such as from different formats,
' or from in-memory strings or bytes.
Dim privKey As New PrivateKey
success = privKey.LoadPemFile("C:/someDir/myAmazonPayPrivateKey.pem")
If (success = 0) Then
Debug.Print privKey.LastErrorText
Exit Sub
End If
' Provide your Amazon Pay private key and Public Key ID
' Use your public key ID here. It must be the one associated with the private key.
' Note: The SetAuthPrivateKey method was added in Chilkat v9.5.0.89
Dim publicKeyId As String
publicKeyId = "SANDBOX-AHEGSJCM3L2S637RBGABLAFW"
success = http.SetAuthPrivateKey(publicKeyId,privKey)
If (success = 0) Then
Debug.Print http.LastErrorText
Exit Sub
End If
' Note: When the private key is provided as shown above, Chilkat will automatically add the required x-amz-pay-* headers to the HTTP request,
' and will also sign the request. Nothing more is needed.
' Chilkat automatically generates and adds the following headers:
'
' x-amz-pay-date
' x-amz-pay-host
' x-amz-pay-region
' Authorization
http.Accept = "application/json"
Dim respStatusCode As Long
respStatusCode = 0
Dim sbResponseBody As New ChilkatStringBuilder
success = http.SetUrlVar("chargeId","P21-1111111-1111111")
' To use the live system, replace "sandbox" with "live" in the URL passed to QuickGetSb.
' Also, make sure to use the correct region: pay-api.amazon.com, pay-api.amazon.eu, or pay-api.amazon.jp
success = http.QuickGetSb("https://pay-api.amazon.eu/sandbox/v2/charges/{$chargeId}",sbResponseBody)
If (success = 0) Then
' If the LastStatus is not equal to 0, then we received a response, but it was an error response.
respStatusCode = http.LastStatus
If (respStatusCode <> 0) Then
Debug.Print "Response Status Code = " & respStatusCode
Debug.Print "Response body:"
Debug.Print http.LastResponseBody
Else
Debug.Print http.LastErrorText
End If
Exit Sub
End If
Dim jResp As New ChilkatJsonObject
success = jResp.LoadSb(sbResponseBody)
jResp.EmitCompact = 0
Debug.Print "Response Body:"
Debug.Print jResp.Emit()
respStatusCode = http.LastStatus
Debug.Print "Response Status Code = " & respStatusCode
' We expect a 200 status code for success.
' Note: Some Amazon Pay API calls return 200 for success, others return 201.
If (respStatusCode <> 200) Then
Debug.Print "Failed."
Exit Sub
End If
' Sample JSON response:
' (Sample code for parsing the JSON response is shown below)
' {
' "chargeId": "P21-1111111-1111111-C111111",
' "chargePermissionId": "P21-1111111-1111111",
' "chargeAmount": {
' "amount": "14.00",
' "currencyCode": "USD"
' },
' "captureAmount": {
' "amount": "14.00",
' "currencyCode": "USD"
' },
' "refundedAmount": {
' "amount": "0.00",
' "currencyCode": "USD"
' },
' "convertedAmount": "14.00",
' "conversionRate": "1.00",
' "softDescriptor": "Descriptor",
' "merchantMetadata": null,
' "providerMetadata": {
' "providerReferenceId": null
' },
' "statusDetails":{
' "state": "Captured",
' "reasonCode": null,
' "reasonDescription": null,
' "lastUpdatedTimestamp": "20190714T155300Z"
' },
' "creationTimestamp": "20190714T155300Z",
' "expirationTimestamp": "20190715T155300Z",
' "releaseEnvironment": "Sandbox"
' }
' Sample code for parsing the JSON response...
' Use the following online tool to generate parsing code from sample JSON:
' Generate Parsing Code from JSON
Dim chargeId As String
chargeId = jResp.StringOf("chargeId")
Dim chargePermissionId As String
chargePermissionId = jResp.StringOf("chargePermissionId")
Dim chargeAmountAmount As String
chargeAmountAmount = jResp.StringOf("chargeAmount.amount")
Dim chargeAmountCurrencyCode As String
chargeAmountCurrencyCode = jResp.StringOf("chargeAmount.currencyCode")
Dim captureAmountAmount As String
captureAmountAmount = jResp.StringOf("captureAmount.amount")
Dim captureAmountCurrencyCode As String
captureAmountCurrencyCode = jResp.StringOf("captureAmount.currencyCode")
Dim refundedAmountAmount As String
refundedAmountAmount = jResp.StringOf("refundedAmount.amount")
Dim refundedAmountCurrencyCode As String
refundedAmountCurrencyCode = jResp.StringOf("refundedAmount.currencyCode")
Dim convertedAmount As String
convertedAmount = jResp.StringOf("convertedAmount")
Dim conversionRate As String
conversionRate = jResp.StringOf("conversionRate")
Dim softDescriptor As String
softDescriptor = jResp.StringOf("softDescriptor")
Dim merchantMetadata As String
merchantMetadata = jResp.StringOf("merchantMetadata")
Dim providerMetadataProviderReferenceId As String
providerMetadataProviderReferenceId = jResp.StringOf("providerMetadata.providerReferenceId")
Dim statusDetailsState As String
statusDetailsState = jResp.StringOf("statusDetails.state")
Dim statusDetailsReasonCode As String
statusDetailsReasonCode = jResp.StringOf("statusDetails.reasonCode")
Dim statusDetailsReasonDescription As String
statusDetailsReasonDescription = jResp.StringOf("statusDetails.reasonDescription")
Dim statusDetailsLastUpdatedTimestamp As String
statusDetailsLastUpdatedTimestamp = jResp.StringOf("statusDetails.lastUpdatedTimestamp")
Dim creationTimestamp As String
creationTimestamp = jResp.StringOf("creationTimestamp")
Dim expirationTimestamp As String
expirationTimestamp = jResp.StringOf("expirationTimestamp")
Dim releaseEnvironment As String
releaseEnvironment = jResp.StringOf("releaseEnvironment")