Before the library can be used, you must initialize it with the init_library
function.
The call and the callback are asynchronous to prevent the call from blocking the calling thread.
Implement the callback
Implement the initialization_CB
and pass this as a parameter of the init_library
call. For more information on how to do this, see Implement callbacks.
Code example
void initialization_CB(void *result, void *echo_struct){app_context_t * POS = (app_context_t *)echo_struct;
printf("library is initialized");
}
Parameters
Name | Description |
---|---|
|
Returns the result of initializing the library. The result of initialization is always zero. |
|
A pointer to a user-defined struct that is echoed back in the callback. Use this to share a POS data struct between the call to the library and the callback from the library. |
Allocate request structure
Use init_library_allocate
to allocate memory for an init_library_request
structure. Populate the init_library_request
by performing string duplication to fill heap-allocated strings. The library automatically frees this memory.
The backend_use_proxy
parameter is used to pass the proxy for communication to the Adyen payments platform.Adyen payments platform.
Call the init_library function
Call the init_library
function with the provided parameters to initialize the library.
Parameters
Name | Type | Required | Description |
---|---|---|---|
|
Struct: init_library_request |
A pointer to the The backend_use_proxy parameter is used to pass the proxy for communication to the Adyen payments platform and merchant backend.Adyen payments platform and merchant backend. | |
|
Function |
A pointer to the callback function in the POS that the system returns with the results of the initialization call. | |
|
Struct: echo_struct |
A pointer to a POS-defined struct that is echoed back in the callback. Use this to share a POS data struct between the call to the library and the callback from the library. |
Get the function call result
ADYLibraryResult
is used to store the result of the function call, the immediate response to the call. This is an enum that indicates if the system received the request. Should be ADYEN_OK
, if this is not the case, something has gone wrong. In this case, check the input to the call and if it cannot be resolved, log the result and contact Support Team
This is not the final result of the call. The library returns the final result in response to the library initialization call.
Handle the callback
The POS needs to wait for the initialization callback before continuing with other functions, like boarding the POS systems and PED devices, and performing transactions.
Parameters
Name | Description |
---|---|
|
Returns the result of initializing the library. The result of initialization is always zero. |
|
A pointer to a user-defined struct that is echoed back in the callback. Use this to share a POS data struct between the call to the library and the callback from the library. |
Code example
typedef struct {
char *user_data;
} app_context_t;
// result is always null for initialization callback
void initialization_CB(void *result, void *echo_struct) {
app_context_t * POS = (app_context_t *)echo_struct;
printf("library is initialized");
}
main()
{
app_context_t POS;
init_library_request *initReq = init_library_allocate();
initReq->pos_name = strdup("Adyen");
initReq->app_name = strdup("Adyen");
//Define the proxy here
//Add a username to the end and a port number
//Supported protocols are: https, socks4a and socks5h
initReq->backend_use_proxy = "socks5h://my.awesome.proxy.url:3208";
.
.
.
ADYLibraryResult result = init_library(initReq, initialization_CB, &POS);
}
For more information on formatting a proxy URL, including specific ports and user credentials, see the CURLOPT_PROXY documentation.