Xbase++
Xbase++
Paynow.pl -- Make a Payment Request
See more Paynow.pl Examples
Make a payment request POST with prepared message on Paynow payment request endpoint.Chilkat Xbase++ Downloads
LOCAL nSuccess
LOCAL oHttp
LOCAL oJson
LOCAL cMyApiAccessKey
LOCAL cMySigCalcKey
LOCAL oCrypt
LOCAL cMessageBody
LOCAL cSignature
LOCAL oResp
LOCAL oJsonResp
LOCAL cRedirectUrl
LOCAL cPaymentId
LOCAL cStatus
nSuccess := 0
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
oHttp := CreateObject("Chilkat.Http")
// Implements the following CURL command:
// curl --request POST 'https://api.sandbox.paynow.pl/v1/payments' \
// -H 'Content-Type: application/json' \
// -H 'Api-Key: c12c386b-650b-43db-9430-d84fc05d9433' \
// -H 'Signature: aYPCytCoc+/wFgqHZJjgBCi20omXTn0yzm9LysJgnFo=' \
// -H 'Idempotency-Key: 59c6dd26-f905-487b-96c9-fd1d2bd76885' \
// --data-raw '{
// "amount": 45671,
// "externalId": "234567898654",
// "description": "Test transaction",
// "buyer": {
// "email": "jan.kowalski@melements.pl"
// }
// }'
// Use the following online tool to generate HTTP code from a CURL command
// Convert a cURL Command to HTTP Source Code
// Use this online tool to generate code from sample JSON:
// Generate Code to Create JSON
// The following JSON is sent in the request body.
// {
// "amount": 45671,
// "externalId": "234567898654",
// "description": "Test transaction",
// "buyer": {
// "email": "jan.kowalski@melements.pl"
// }
// }
oJson := CreateObject("Chilkat.JsonObject")
oJson:UpdateInt("amount", 45671)
oJson:UpdateString("externalId", "234567898654")
oJson:UpdateString("description", "Test transaction")
oJson:UpdateString("buyer.email", "jan.kowalski@melements.pl")
cMyApiAccessKey := "c12c386b-650b-43db-9430-d84fc05d9433"
cMySigCalcKey := "b758f20d-ba92-44fa-acca-f57e99787b9d"
// Calculate the Signature header.
oCrypt := CreateObject("Chilkat.Crypt2")
oCrypt:MacAlgorithm := "hmac"
oCrypt:EncodingMode := "base64"
oCrypt:SetMacKeyString(cMySigCalcKey)
oCrypt:HashAlgorithm := "SHA-256"
cMessageBody := oJson:Emit()
cSignature := oCrypt:MacStringENC(cMessageBody)
oHttp:SetRequestHeader("Idempotency-Key", oCrypt:GenerateUuid())
oHttp:SetRequestHeader("Api-Key", cMyApiAccessKey)
oHttp:SetRequestHeader("Signature", cSignature)
oHttp:SetRequestHeader("Content-Type", "application/json")
oHttp:Accept := "application/json"
oResp := CreateObject("Chilkat.HttpResponse")
nSuccess := oHttp:HttpJson("POST", "https://api.sandbox.paynow.pl/v1/payments", oJson, "application/json", oResp)
IF (nSuccess == 0)
? oHttp:LastErrorText
oHttp:destroy()
oJson:destroy()
oCrypt:destroy()
oResp:destroy()
RETURN
ENDIF
? "Response body:"
? oResp:BodyStr
// Sample response:
// {
// "redirectUrl": "https://paywall.sandbox.paynow.pl/NOA0-YJ9-Y1P-29V?token=eyJraWQiOiJhMD ... L60wk",
// "paymentId": "NOA0-YJ9-Y1P-29V",
// "status": "NEW"
// }
oJsonResp := CreateObject("Chilkat.JsonObject")
oJsonResp:Load(oResp:BodyStr)
cRedirectUrl := oJson:StringOf("redirectUrl")
cPaymentId := oJson:StringOf("paymentId")
cStatus := oJson:StringOf("status")
oHttp:destroy()
oJson:destroy()
oCrypt:destroy()
oResp:destroy()
oJsonResp:destroy()