The LemonWay API (called Directkit) has two implementations: DirectkitJson2 and DirectkitXml. There are different ways to call the service depends on the implementation you chose.
The best way to access to directkitJson2 is to use the curl_init
function to send POST request to the DirectkitJson2 service.
It is the simplest (for you) and the most network-efficient way. So we recommend Json over the SOAP (XML) protocole.
If you don't like the json format, you can also send SOAP (XML) requests to DirectkitXml, you can do it in 3 different ways:
- SoapClient: the casual method in PHP to consume any Web Service. It is the simplest way to access to DirectkitXml.
- SoapClient SDK: same with the first method, but all the structure of requests / responses are generated overhead with
wsdl2phpgenerator
- LemonWay SDK: call the web service as a normal http request
curl_init
. The SDK will help you to parse the SOAP response.
This example demonstrates the third method. It doesn't really have any advantages over other ones. It is just less verbose than SoapClient. Overall this solution is not as good as the directkitjson2 solution
Lemon Way SDK is a PHP client library to work with Lemon Way API.
You can use Lemon Way SDK library as a dependency in your project with Composer (which is the preferred technique). Follow these installation instructions if you do not already have Composer installed. A composer.json file is available in the repository and it has been referenced from Packagist.
The installation with Composer is easy and reliable:
Step 1 - Add the Lemon Way SDK as a dependency by executing the following command:
you@yourhost:/path/to/your-project$ composer require lemonway/php-sdk:^1.0
Step 2 - Update your dependencies with Composer
you@yourhost:/path/to/your-project$ composer update
Step 3 - Finally, be sure to include the autoloader in your project
require_once '/path/to/your-project/vendor/autoload.php';
The Library has been added into your dependencies and is ready to be used.
SDK has been written in PHP 5.4. You should ensure that curl and openssl extensions (that are part of standard PHP distribution) are enabled in your PHP installation.
The project attempts to comply with PSR-4 specification for autoloading classes from file paths. As a namespace prefix is LemonWay\
with base directory /path/to/your-project/
.
But if you're not using PSR-4 or Composer, the installation is as easy as downloading the library and storing it under any location that will be available for including in your project (don't forget to include the required library dependencies though):
require_once '/path/to/your-project/LemonWay/Autoloader.php';
Report bugs or suggest features using issue tracker on GitHub.
You need a sandbox to run Examples.
Using the credentials information from Lemon Way support, you should then set $api->config->wlLogin
to your Lemon Way login and $api->config->wlPass
to your Lemon Way password.
require_once '/path/to/your-project/vendor/autoload.php';
$api = new LemonWayAPI();
$api->config->dkUrl = 'Your DirectKitXML url';
$api->config->wkUrl = 'Your WebKit url';
$api->config->wlLogin = 'Your login';
$api->config->wlPass = 'Your password';
$api->config->lang = 'Your language';
//$api->config->isDebugEnabled = true; //Uncomment to turn on debug mode
// call some API methods...
$result = $api->RegisterWallet(...);
All LemonWayAPI
methods are returning \LemonWay\ApiResponse
object.
It is a dynamic object with variable properties.
###Fixed properties :
Property | Type | Description |
---|---|---|
lwError | LemonWay\Models\LwError | LwError Object |
lwXml | SimpleXMLElement | Raw xml return as SimpleXMLElement object. Details in Lemon Way API |
###Variable properties:
Those properties depends of which method was called.
Property | Type | Description |
---|---|---|
wallets | array of LemonWay\Models\Wallet | Filled when the API returns multiple Wallets |
operations | array of LemonWay\Models\Operation | Filled when the API returns multiple Operations |
wallet | LemonWay\Models\Wallet | Filled when the API returns only one Wallet |
operation | LemonWay\Models\Operation | Filled when the API returns only one Operation |
kycDoc | LemonWay\Models\KycDoc | Filled when the API returns a KycDoc |
iban | LemonWay\Models\Iban | Filled when the API returns an Iban |
sddMandate | LemonWay\Models\SddMandate | Filled when the API returns a SDD Mandate |
require_once '/path/to/your-project/vendor/autoload.php';
$api = new LemonWayAPI();
$api->config->dkUrl = 'Your DirectKitXML url';
$api->config->wkUrl = 'Your WebKit url';
$api->config->wlLogin = 'Your login';
$api->config->wlPass = 'Your password';
$api->config->lang = 'Your language';
// call some API methods...
$walletID = 'Fill in with a unique id';
$response = $api->RegisterWallet(array('wallet' => $walletID,
'clientMail' => $walletID.'@mail.fr',
'clientTitle' => Wallet::UNKNOWN,
'clientFirstName' => 'Paul',
'clientLastName' => 'Atreides'));
if (isset($response->lwError)) {
print 'Error, code '.$response->lwError->CODE.' : '.$response->lwError->MSG;
} else {
print '<br/>Wallet created : ' . $response->wallet->ID;
// OR BY USING lwXml :
print '<br/>Wallet created : ' . $response->lwXml->WALLET->ID;
}
In the examples folder, you can find an example for each API method.
You need to run the examples in a web server with php configured and a hostname different from localhost.
You also need a sandbox if you want to run examples (contact Lemon Way to create a sandbox)
An API method / example match table could be find in the Index of examples folder in HTML format and also in MarkDown in the examples folder README.md.
###Configuration By default, the examples run with our sandbox demo. If you need your own sandbox, please contact Lemon Way then do these configurations. There's two files that handles the examples configuration:
File | Description |
---|---|
ExamplesDatas | Random ID generator, Test card number, Test Iban ... |
ExamplesBootstrap | API configuration (login, urls ...), API factory, Host configuration |