1. Go to this page and download the library: Download andrepayone/payone-sdk library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
andrepayone / payone-sdk example snippets
$sdk = new Sdk();
// Create the SDK container builder which lets you provide custom bindings
$containerBuilder = new ContainerBuilder();
$container = $containerBuilder->getContainer();
// Use the methods of $container to override default bindings ...
// For example, provide your own PSR-18 HTTP client implementation
$container->bind(\Psr\Http\Client\ClientInterface::class, MyPsr18Client::class);
// Or use an already instantiated PSR-3 logger, maybe provided by you
// or any PSR-3 compatible third-party package like monolog/monolog.
// Assume $logger is any PSR-3 compatible logger instance.
$container->bindInstance(\Psr\Log\LoggerInterface::class, $logger);
// Finally, construct the SDK and provide your customized container
$sdk = new Sdk($containerBuilder->buildContainer());
// Assume $existingContainer is an already configured container
$sdk = new Sdk($existingContainer);
$config = $sdk->getConfig();
// Your API credentials
$config->set('api.merchant_id', 'your_merchant_id');
$config->set('api.portal_id', 'your_portal_id');
$config->set('api.sub_account_id', 'your_sub_account_id');
$config->set('api.key', 'your_api_key');
// General API config options
$config->set('api.integrator_name', 'YourProjectName');
$config->set('api.integrator_version', '1.0.0');
// The redirect URL template, $token will be replaced by the actual token value.
$config->set('redirect.url', 'https://example.com/redirect/$token');
// Redirect token security settings
$config->set('redirect.token_encryption_key', 'your_secret_encryption_key');
$config->set('redirect.token_signing_key', 'your_secret_signing_key');
// Create your request / response objects
$response = new \Payone\Sdk\Api\Message\Response();
$request = new \Payone\Sdk\Api\Message\Payment\AuthorizationRequest([
// Perform a pre-authorization which reserves the amount,
// a follow-up request will be necessary to actually capture the amount
'request' => 'preauthorization',
// Set the type of payment to debit payment
// https://docs.payone.com/display/public/PLATFORM/clearingtype+-+definition
'clearingtype' => 'elv',
// Set the IBAN for the debit payment
// Here you may generate a valid test IBAN:
// http://randomiban.com
'iban' => 'DE91500105176688925818',
]);
// Set the transaction currency
// https://docs.payone.com/display/public/PLATFORM/currency+-+definition
$request->setCurrency('EUR');
// Set amount to 15049 fractional monetary units of transaction currency,
// for currency EUR this represents 150,49 €
$request->setAmount(15049);
// Set your transaction reference which identifies the transaction
// in your system (e.g. the order number within an online shop)
// https://docs.payone.com/display/public/PLATFORM/reference+-+definition
$request->setReference('1A2B3C4D5E');
// Send the request to PAYONE
$sdk->getApiService()->sendRequest($request, $response);
// Do something with the response
echo serialize($response);
// Register notification handlers
$sdk->getNotificationService()->registerHandler(new class() implements HandlerInterface {
public function handleNotification(ContextInterface $context): void
{
$message = $context->getMessage();
if ($message instanceof TransactionStatusInterface) {
// handle the TX status notification
echo "Received TX action {$message->getAction()}";
}
}
});
// Get the server request factory to create a request from the current environment
/** @var ServerRequestFactoryInterface $requestFactory */
$requestFactory = $sdk->getContainer()->get(ServerRequestFactoryInterface::class);
$request = $requestFactory->createServerRequest($_SERVER['REQUEST_METHOD'], $_SERVER['REQUEST_URI'], $_SERVER);
// Process the server request
$sdk->getNotificationService()->processRequest($request);
use Payone\Sdk\Api\Message\Parameter\BackUrlAwareInterface;
use Payone\Sdk\Api\Message\Parameter\ErrorUrlAwareInterface;
use Payone\Sdk\Api\Message\Parameter\SuccessUrlAwareInterface;
use Payone\Sdk\Api\Message\Payment\AuthorizationRequest;
// Use an inline class to customize the API request.
// The inline class is tagged with the interfaces to support redirect URL parameters.
// This is how the SDK knows which redirect URL parameters are supported and should
// be added to the request by passing it to applyRedirectParameters() later on.
$request = new class() extends AuthorizationRequest
implements SuccessUrlAwareInterface, ErrorUrlAwareInterface, BackUrlAwareInterface {
public function __construct()
{
parent::__construct([
// Perform an authorization of a credit card payment,
// this means the card will be charged immediately.
'request' => 'authorization',
'clearingtype' => 'cc',
// This identifies the credit card of your customer and is valid within your account scope only.
// You will obtain this value during a credit card check which should be done in the context
// of the PAYONE Client API (e.g. in the browser of the customer). This is good for you because
// you are not getting in touch with the actual credit card data of your customer.
// https://docs.payone.com/pages/releaseview.action?pageId=1214583
'pseudocardpan' => '...',
]);
// Set other mandatory parameters
$this->setCurrency('EUR');
$this->setAmount(1499);
$this->setReference('9Z8Y7X6W5V');
}
};
// Use an inline class to customize the API response
$response = new class() extends \Payone\Sdk\Api\Message\Response {
public function getRedirectUrl(): ?string
{
// Return a valid redirect URL or null
return $this->getStatus() === 'REDIRECT'
? $this->getParameter('redirecturl')
: null;
}
};
// Add redirect parameters to the request
$sdk->getRedirectService()->applyRedirectParameters($request, [
// Provide any custom payload data and encode it securely within the token value
'order_id' => '9Z8Y7X6W5V',
// ...
]);
// Send API request to PAYONE
$sdk->getApiService()->sendRequest($request, $response);
// Get the redirect URL. The value can be null which (in this particular case)
// indicates that no redirect is necessary because not every credit card payment
// authorization
use Payone\Sdk\Redirect\Context\ContextInterface;
use Payone\Sdk\Redirect\Handler\HandlerInterface;
// Get the token from the request URL
$token = '...';
$handler = new class() implements HandlerInterface {
public function handleRedirect(ContextInterface $context): void
{
// Get the decoded token from the redirect context
$token = $context->getToken();
// Read your custom token payload data
$orderId = $token->get('order_id');
// Proceed with your business logic ...
}
};
$sdk->getRedirectService()->registerHandler($handler);
$sdk->getRedirectService()->processRedirect($token);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.