Portfolio references in which systems talk to each other over the web: card payments on a website, porting a payment service sample to another language, web services that partners and other programs call by agreed rules, token checks and encryption of data sent to a payment system. Not much of this work shows on screen, but a mistake means a payment that did not go through or data that ended up where it should not. I do this kind of work as part of my API integrations and web development services.
Card payments on a website
Built in the fourth quarter of 2024.

Problem
The www.dejandozet.com website needed simple and secure payment by bank card, with flexible payment options and professional data handling. The solution had to work in several languages, be adapted to mobile devices and comply with IPM standards, and the payment portal was provided by OTP Bank (otpbanka.rs).
Solution
The work covered the whole path from the pricing page to payment confirmation:
- pricing page: products and prices are pulled dynamically from a web API;
- shopping cart: its state is kept in the browser, without a database;
- checkout page: collecting data, choosing a payment method and validating input;
- connection to the bank: server-side data processing and redirection to the bank's payment portal;
- payment status display: a status page, with back-end processing and email notifications;
- adapted design: page layout adapted to every screen size;
- IPM compliance: display of accepted cards, terms of business, privacy policy and testing with the bank.
Technologies used
- JavaScript programming language (programiranje.co.rs): dynamic data loading, input validation and cart updates.
- PHP programming language (programiranje.co.rs): back-end data processing and connection to the bank's portal.
- Bootstrap 5: responsive user interface.
- HTML/CSS (programiranje.co.rs): pages showing information and payment status.
Lessons from the project
Working with the bank staff responsible for this service went very well, but there were difficult moments too. Right at the end the bank could not see the pricing page, because their security system blocked the script that loaded the products, and that had to be resolved before payments went live.
Result
Visitors pay by card through the whole flow, from choosing on the pricing page to payment confirmation, in several languages and on every device, in line with the bank's rules.
Porting a Braintree payments sample from C# to VB.NET
Built in the fourth quarter of 2021.
Problem
The client had a ready-made ASP.NET web application sample for Braintree payments, published by QuickBooks, but written in C#. Their system ran on VB.NET, so they needed the same sample in that language, with the same behaviour and without losing a single function.
Solution
- code translation: the logic and functions of the existing C# code were translated into VB.NET;
- functionality preserved: every capability of the C# version was mirrored exactly in the VB.NET version;
- testing and verification: after the port, the VB.NET version was tested thoroughly to behave identically to the original;
- optimization: once the translation was done, the code was reviewed and, where possible, improved and simplified.
Technologies used
- C# programming language (programiranje.co.rs) and VB.NET: knowing both languages was a prerequisite for an accurate port.
- ASP.NET: the web application the sample is based on.
- Braintree SDK: the payment service whose functions all had to remain intact.
Result
The client got a VB.NET version of the sample that works the same as the C# original, ready to fit into their system.
A billing management web service with a structured URI
Built in the first quarter of 2021.
Problem
Managing billing between a billing service and partner companies required a web service that all partners access in the same, pre-agreed way. That meant a structured URI following a given scheme, with the version and resource name in the path — for example /v1/bill-management/bills — so that data exchange between different companies would be simple and predictable.
Solution
- structured URI: designed and implemented to the given scheme, as the main access point to resources;
- partner collaboration: the interaction between the billing service and partner services is standardized through the defined URI;
- security and performance: beyond the URI structure, particular emphasis was placed on the security and speed of the service;
- easy integration: the service fits easily into partners' existing systems.
Technologies used
- Web services: built to good practice for stability, security and scalability.
- Structured URI design: an approach that makes use and integration easier.
Result
Partners access billing through a single, predictable URI, and the service works seamlessly, as the client confirms.
Client feedback
★★★★★5/5“Exceptional work! The webservice functions seamlessly, and the structured URI adds to its efficacy.”
A VB.NET web service with JWT token validation
Built in the first quarter of 2021.
Problem
The client needed a VB.NET web service that accurately validates a JWT token sent in the request header and returns the same token in its response, without any security gaps in that flow.
Solution
- JWT token validation: the service checks the validity and authenticity of the token received in the request header;
- token in the response: after validation the service includes the same token in its response, so the data flow stays uninterrupted;
- security: particular care was taken that token validation and the response are not vulnerable to security flaws;
- built in VB.NET, so the service fits into the client's environment.
Technologies used
- VB.NET: the language the service is written in.
- JWT (JSON Web Tokens): the authentication protocol.
Result
The client got a service that reliably validates tokens and returns them in the response; for the client, it was another successfully completed project together.
Client feedback
★★★★★5/5“Another successful project with Dejan. The ease of communication and his depth of expertise make for a seamless project experience.”
An email-sending web service run on a schedule
Built in the fourth quarter of 2020.
Problem
The client wanted a simple web service for sending email that would run both online and locally, started on time by a scheduled Windows service. They said openly that they were not familiar with either web services or Windows services, so they needed a complete but understandable solution.
Solution
- email-sending web service: a reliable service that meets the client's main requirement;
- dual deployment: the application was configured to run both online and in a local environment;
- scheduled execution: a Windows service runs the web service at set times, so operation is consistent and timely;
- every step explained: along with the solution, the client gained an understanding of how it works.
Technologies used
- .NET Framework: building the web service.
- Windows Service: scheduled execution.
- Local server and online hosting: the two environments the service runs in.
Result
The service sends email on schedule, both locally and online, and the client understands the solution they use.
Client feedback
★★★★★5/5“I immensely value the educational approach taken during this project. Dejan not only delivered an excellent solution but also ensured I understood each step. His expertise and availability are commendable. Highly recommended for anyone seeking knowledge and results!”
RSA encryption of payment data in VB.NET
Built in the fourth quarter of 2020.
Problem
For payment through a payment button on a website, the amount and order number had to be sent to the payment system encrypted with RSA, in a POST request. The client had working samples of this process in PHP and Java, but needed the same in VB.NET, which their system ran on.
Solution
- RSA encryption and decryption: simple functions for both directions, in VB.NET;
- fitting into the form: the encrypted amount and order number are passed accurately in the POST request;
- sample analysis: the PHP and Java samples were studied and their outcome replicated in VB.NET;
- data security: sensitive data such as amounts and order numbers stays protected throughout the process.
Technologies used
- VB.NET: the language the functions are written in.
- RSA encryption: protecting data sent to the payment system.
Result
The client's VB.NET system sends the payment system the amount and order number encrypted the same way as the PHP and Java samples.
Do you need a connection to a payment or other system?
What the work includes, how the price is set and how it proceeds is described on the API integrations and web development pages. See also the payment reminder system with Xero and Stripe integration and the WordPress API integrations, and find other work among the API integration references.
Leave a Comment