SQL Server
SQL Server
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 SQL Server Downloads
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
DECLARE @hr int
-- Important: Do not use nvarchar(max). See the warning about using nvarchar(max).
DECLARE @sTmp0 nvarchar(4000)
DECLARE @success int
SELECT @success = 0
-- This example assumes the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
DECLARE @http int
EXEC @hr = sp_OACreate 'Chilkat.Http', @http OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
-- 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"
-- }
-- }
DECLARE @json int
EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @json OUT
EXEC sp_OAMethod @json, 'UpdateInt', @success OUT, 'amount', 45671
EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'externalId', '234567898654'
EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'description', 'Test transaction'
EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'buyer.email', 'jan.kowalski@melements.pl'
DECLARE @myApiAccessKey nvarchar(4000)
SELECT @myApiAccessKey = 'c12c386b-650b-43db-9430-d84fc05d9433'
DECLARE @mySigCalcKey nvarchar(4000)
SELECT @mySigCalcKey = 'b758f20d-ba92-44fa-acca-f57e99787b9d'
-- Calculate the Signature header.
DECLARE @crypt int
EXEC @hr = sp_OACreate 'Chilkat.Crypt2', @crypt OUT
EXEC sp_OASetProperty @crypt, 'MacAlgorithm', 'hmac'
EXEC sp_OASetProperty @crypt, 'EncodingMode', 'base64'
EXEC sp_OAMethod @crypt, 'SetMacKeyString', @success OUT, @mySigCalcKey
EXEC sp_OASetProperty @crypt, 'HashAlgorithm', 'SHA-256'
DECLARE @messageBody nvarchar(4000)
EXEC sp_OAMethod @json, 'Emit', @messageBody OUT
DECLARE @signature nvarchar(4000)
EXEC sp_OAMethod @crypt, 'MacStringENC', @signature OUT, @messageBody
EXEC sp_OAMethod @crypt, 'GenerateUuid', @sTmp0 OUT
EXEC sp_OAMethod @http, 'SetRequestHeader', NULL, 'Idempotency-Key', @sTmp0
EXEC sp_OAMethod @http, 'SetRequestHeader', NULL, 'Api-Key', @myApiAccessKey
EXEC sp_OAMethod @http, 'SetRequestHeader', NULL, 'Signature', @signature
EXEC sp_OAMethod @http, 'SetRequestHeader', NULL, 'Content-Type', 'application/json'
EXEC sp_OASetProperty @http, 'Accept', 'application/json'
DECLARE @resp int
EXEC @hr = sp_OACreate 'Chilkat.HttpResponse', @resp OUT
EXEC sp_OAMethod @http, 'HttpJson', @success OUT, 'POST', 'https://api.sandbox.paynow.pl/v1/payments', @json, 'application/json', @resp
IF @success = 0
BEGIN
EXEC sp_OAGetProperty @http, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @http
EXEC @hr = sp_OADestroy @json
EXEC @hr = sp_OADestroy @crypt
EXEC @hr = sp_OADestroy @resp
RETURN
END
PRINT 'Response body:'
EXEC sp_OAGetProperty @resp, 'BodyStr', @sTmp0 OUT
PRINT @sTmp0
-- Sample response:
-- {
-- "redirectUrl": "https://paywall.sandbox.paynow.pl/NOA0-YJ9-Y1P-29V?token=eyJraWQiOiJhMD ... L60wk",
-- "paymentId": "NOA0-YJ9-Y1P-29V",
-- "status": "NEW"
-- }
DECLARE @jsonResp int
EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @jsonResp OUT
EXEC sp_OAGetProperty @resp, 'BodyStr', @sTmp0 OUT
EXEC sp_OAMethod @jsonResp, 'Load', @success OUT, @sTmp0
DECLARE @redirectUrl nvarchar(4000)
EXEC sp_OAMethod @json, 'StringOf', @redirectUrl OUT, 'redirectUrl'
DECLARE @paymentId nvarchar(4000)
EXEC sp_OAMethod @json, 'StringOf', @paymentId OUT, 'paymentId'
DECLARE @status nvarchar(4000)
EXEC sp_OAMethod @json, 'StringOf', @status OUT, 'status'
EXEC @hr = sp_OADestroy @http
EXEC @hr = sp_OADestroy @json
EXEC @hr = sp_OADestroy @crypt
EXEC @hr = sp_OADestroy @resp
EXEC @hr = sp_OADestroy @jsonResp
END
GO