BoricaNet 1.0.9
See the version list below for details.
dotnet add package BoricaNet --version 1.0.9
NuGet\Install-Package BoricaNet -Version 1.0.9
<PackageReference Include="BoricaNet" Version="1.0.9" />
paket add BoricaNet --version 1.0.9
#r "nuget: BoricaNet, 1.0.9"
// Install BoricaNet as a Cake Addin #addin nuget:?package=BoricaNet&version=1.0.9 // Install BoricaNet as a Cake Tool #tool nuget:?package=BoricaNet&version=1.0.9
BoricaNet
Library for borica in .Net
Download
dotnet add package BoricaNet
Example request
- Create params
var boricaData = new BoricaNetParams(
pathToPublicKeyPath: "borica-pub-key.cer",
pathToPrivateKeyPath: "keystore-test.pfx",
privateKeyPassword: "password",
email: "myemail@gmail.com",
terminalId: "V0000000",
description: "Description shows at payment page",
merchantUrl: "https://mywebsite.com",
merchantName: "myCompany",
merchant: "0000000000",
amount: "31.00"
);
- Initialize Borica class with params
var borica = new Borica(boricaData);
- Generate payload
var paymentPayload = borica.GeneratePayload();
- Or generate html form as string directly with hidden input
- Using
isDev: true
will generate with borica's dev url - Using
isDev: false
will generate with borica production url
var paymentPayload = borica.GenerateForm(isDev: true);
Example response
The formBody is the response submited from borica after payment on your endpoint
var paymentResponse = borica.HandleResponse(formBody: new Dictionary<string, string>());
paymentResponse
will cointain the payload data inside if you want to handle the error checks yourself
Example order status check
Sends a request to borica with the order id to check the status of the order. Borica will save the order id for 24hrs only.
var statusCheckParams = new BoricaCheckStatusParams
{
OrderId = "123456",
TerminalId = "V0000000",
OriginalTransactionCode = "1"
};
await CheckStatusForOrder(httpClient: new HttpClient(), statusParams: statusCheckParams);
By default it will send the request to borica's production url, if you want to send it to dev url use the overwrite default value isDev: true
await CheckStatusForOrder(httpClient: new HttpClient(), statusParams: statusCheckParams, isDev: true);
Order generation
The order generation ensures that the order is unique for 24hrs and for the transaction by taking into account the current date and time and the nonce.
If you want to generate the order id yourself you can use the overloads of the GeneratePayload
and GenerateForm
methods
var paymentPayload = borica.GeneratePayload(orderId: 123456);
var paymentPayloadForm = borica.GenerateForm(isDev: true, orderId: 123456);
Resources
- Documentation used 4.0
- Borica resources
- Borica Documentation BG
- Borica Documentation EN
- Download Borica test public key
- Download Borica production public key
- Borica key generator for sign request
Borica urls that process the requests
- Borica test url
https://3dsgate-dev.borica.bg/cgi-bin/cgi_link
- Borica production url
https://3dsgate.borica.bg/cgi-bin/cgi_link
openssl commands to convert keys
- Generate cer file form csr and private.key
openssl x509 -req -in [.csr] -signkey [.key] -out certificate.cer
- Generate pfx file from cer and private.key
openssl pkcs12 -export -inkey [.key] -in [.cer] -out key-store.pfx
Test cards with status codes
For testing purposes you can use the following cards with the corresponding status codes. The card date and CVV can any numbers.
5100770000000022
-Approved
- RC:00
5555000000070019
-Declined
- RC:04
5555000000070027
-Declined
- RC:13
5555000000070035
-Declined
- RC:91
4341792000000044
-Approved
- RC:00
- Requires 3DSecure verification with sum greater than
30.00
- The 3DSecure password is
111111
- Requires 3DSecure verification with sum greater than
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp1.0 is compatible. netcoreapp1.1 is compatible. netcoreapp2.0 is compatible. netcoreapp2.1 is compatible. netcoreapp2.2 was computed. netcoreapp3.0 is compatible. netcoreapp3.1 is compatible. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETCoreApp 1.0
- Microsoft.NETCore.App (>= 1.0.5)
- Newtonsoft.Json (>= 13.0.3)
-
.NETCoreApp 1.1
- Microsoft.NETCore.App (>= 1.1.2)
- Newtonsoft.Json (>= 13.0.3)
-
.NETCoreApp 2.0
- Newtonsoft.Json (>= 13.0.3)
-
.NETCoreApp 2.1
- Newtonsoft.Json (>= 13.0.3)
-
.NETCoreApp 3.0
- Newtonsoft.Json (>= 13.0.3)
-
.NETCoreApp 3.1
- Newtonsoft.Json (>= 13.0.3)
-
.NETStandard 2.0
- Newtonsoft.Json (>= 13.0.3)
-
.NETStandard 2.1
- Newtonsoft.Json (>= 13.0.3)
-
net5.0
- Newtonsoft.Json (>= 13.0.3)
-
net6.0
- Newtonsoft.Json (>= 13.0.3)
-
net7.0
- Newtonsoft.Json (>= 13.0.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.