Cayan Delphi Components
Delphi Component Library for Payment Processing using Cayan's Payment Gateway Solutions, enabling retail software to collect various forms of payment, including chip cards (EMV), phone taps (Proximity), and more.
This library was written by Jerry Dodge, and not by any direct member of Cayan. No guarantees are made towards this code, and is available on an as-is / what-is basis. Neither I or Cayan are responsible for any problems which may arise as a result of using this code. You are responsible to ensure this code base suites your application's needs, and abides by the PCI compliance laws set with implementing Genius solutions.
While this library is free and open-source, you are still responsible to acquire certification with Cayan to be allowed to work with their solutions. This library only wraps Cayan's APIs, and you must treat the integration the same as if you wrote this library. Certification works on a per-application basis, so even one certification is not enough to use this library indefinitely. The end goal is to become PCI Compliant with the Genius solutions.
Please visit the Cayan Developer's Page for more information.
This library uses its own copy of X-SuperObject. Since there were modifications in those units to be able to work as needed, it was necessary to include them in this repo. However, it must be noted that the units
Cayan.XSuperJSON were not actually written with the rest of this library.
This library was written for Delphi 10 Seattle, and recently tested in Delphi 10.1 Berlin. While it should work in most modern Delphi versions, it has not been tested, and there is no guarantee that it will be compatible. It is cross-platform compatible, but not thoroughly tested on any platform other than Windows (32bit and 64bit). It does not depend on VCL or Firemonkey. Past versions of this library have been successfully deployed to MacOS, iOS, and Android, but have gone through extensive modifications since then. All current testing is only on Windows.
The test applications use a combination of VCL and Firemonkey. The Emulator and the POS applications are both based on the Firemonkey framework, while the stand-alone test application is on the VCL framework.
There are two packages included: A Run-Time package, and a Design-Time package. Each must be installed into the Delphi IDE the same as any standard package.
- Open the Run-Time Package
- Open the Design-Time Package
- While still in the Design-Time Package,
- You shall be notified that the components were successfully installed.
Options, then navigate to
Library, choose the appropriate
Selected Platform, then click on the
[...]button to the right of
- Enter the directory of the
.\Sourcedir and press
- Enter the directory of the
.\Libraries\X-SuperObjectdir and press
The following components are installed into the Delphi IDE Tool Pallette under the
Represents a single connection to Cayan's systems, and is not related to any particular service or solution. It only carries the API credentials, company, user, and station information. It is further used by other components to be able to share the same connection using this
Represents a single connection to one of Cayan's Genius CED payment terminals. Provides the ability to perform various general tasks, but most importantly, attaching other components which control various tasks.
Represents a single transaction being made using one of Cayan's Genius CED payment terminals. Provides details for a single payment transaction.
Allows you to utilize Line Item Display on the device. Attaches to a
Allows you to send a command to the Genius device requesting the consumer to either Accept or Decline an agreement, while displaying a scrollable text area where an agreement is displayed. Attaches to a
Allows you to serve a virtual emulator, mimicing a real Genius CED device. This component is primarily used in the Genius CED Emulator application. This project has been put on hold until the real CED payment terminal can be completely implemented.
Represents a web server which provides access from a
TCayanPOS component to its underlying back-end database.
Represents a single instance of a Point-of-Sale application. Used for connection from the POS application to its corresponding server.
There is a test application provided with this repo, which demonstrates actual usage of the Genius solution by a Point-of-Sale application. It is developed for the purpose of demonstrating actual usage of the Genius solutions.
Genius CED Emulator
Included is an emulator application which mimics a Genius device. This emulator can be used in place of a real device, and allows you to test your own integration with Genius without actually needing a device of your own. While the device is as close as possible to the real thing, it is not capable of actually processing real payments.
NOTE This emulator is far from complete, and should not be trusted at this time.
Complete instructions are included in this repo under the