This wrapper is using the api v2.1 launched in June 2014. If you wish to use the old api v2.0 please use the wrapper in branch v2: https://github.com/paymill/paymill-php/tree/v2.
There are different credit card numbers, frontend and backend error codes, which can be used for testing. For more information, please read our testing reference. https://www.paymill.com/en-gb/documentation-3/reference/testing/
Just run:
ant test
If you don't already use Composer, then you probably should read the installation guide http://getcomposer.org/download/.
Please include this library via Composer in your composer.json and execute composer update to refresh the autoload.php.
{
"repositories": [
{
"type": "vcs",
"url": "https://github.com/paymill/paymill-php"
}
],
"require": {
"paymill/paymill": "dev-master"
}
}
If you don't want to use composer, paymill-php library provides its own autoload script. You have to include the autoload script in all files, in which you are going to use the PAYMILL library.
Lets say you have two files, which are going to use the PAYMILL lib. First one is located in the project root, the other one is in the app folder. You have downloaded the PAYMILL library in your project root folder under the name paymill-php.
To load the PAYMILL library from the file, which is located in your project root folder, you need to require PAYMILL's autoload script like this:
require './paymill-php/autoload.php';
To load the PAYMILL library from the file, which is located in the app folder, you need to require PAYMILL's autoload script like this:
require '../paymill-php/autoload.php';
- Instantiate the request class with the following parameters: $apiKey: First parameter is always your private API (test) Key
$request = new Paymill\Request($apiKey);
- Instantiate the model class with the parameters described in the API-reference:
$payment = new \Paymill\Models\Request\Payment();
$payment->setToken("098f6bcd4621d373cade4e832627b4f6");
- Use your desired function:
$response = $request->create($payment);
$paymentId = $response->getId();
It recommend to wrap it into a "try/catch" to handle exceptions like this:
try {
$response = $request->create($payment);
$paymentId = $response->getId();
} catch(\Paymill\Services\PaymillException $e){
//Do something with the error informations below
$e->getResponseCode();
$e->getStatusCode();
$e->getErrorMessage();
$e->getRawError();
}
This section shows diffrent ways how to receive a response. The followings examples show how to get the Id for a transaction.
- The default response is one of the response-models.
$response = $request->create($payment);
$response->getId();
- getLastResponse() returns the unconverted response from the API.
$request->create($payment);
$response = $request->getLastResponse();
$response['body']['data']['id'];
- getJSONObject returns the response as stdClass-Object.
$request->create($payment);
$response = $request->getJSONObject();
$response->data->id;
If the error below occurres on your system please follow the steps below to configure curl.
Paymill\Services\PaymillException: SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Windows / OS X / Linux
- Download http://curl.haxx.se/ca/cacert.pem and save it on your server.
- Open php.ini with an editor and add the line
curl.cainfo=PathToYourCACertFile
- Restart your Webserver
Update Root certificate on Linux(ubuntu)
- Run
sudo update-ca-certificates
- Restart your Webserver
- bugfix: #92 remove typecheck for http response code
- Added shipping and billing address
- Added shopping cart (items)
- Added PayPal functionality
- Possible BC break in ResponseHandler.php
For further information, please refer to our official PHP library reference: https://developers.paymill.com/API/index