Paysafe Payment Hub library for the Omnipay V3 payment library, used for Neteller (and Skrill later).
Use composer to add the library as dependency for your project
composer require league/omnipay worldstream-labs/omnipay-paysafe-payment-hub
To set up for development:
composer install
<?php
require 'vendor/autoload.php';
use Omnipay\Omnipay;
$gateway = Omnipay::create('PaysafePaymentHub');
$gateway->setApiKey('yourApiKey');
// When deploying to production, don't forget to set test mode to false
$gateway->setTestMode(false);
<?php
require 'vendor/autoload.php';
use Omnipay\Omnipay;
$gateway = Omnipay::create('PaysafePaymentHub');
$gateway->setApiKey('yourApiKey');
$response = $gateway->purchase([
'amount' => 11.00,
'currency' => 'EUR',
'successUrl' => 'https://url/success',
'failureUrl' => 'https://url/failure',
'returnUrl' => 'https://url/return',
'consumerId' => '[email protected]',
'merchantRefNum' => 'abcdefg',
'description' => 'description',
'text' => 'text',
'paymentMethod' => 'neteller',
])->send();
redirect($response->getRedirectUrl());
This call will return the PurchaseResponse
object. If the call is succesful then you can redirect the customer to the redirectUrl
. Depending on the result in the next screen the customer will be redirected to the success or failure url.
Note: consumerId
is optional in the request, don't forget to add consumerIdLocked
with value false
when leaving consumerId
out.
Before you can finalize the payment, make sure the payment handle is successfully created and payable using the getPaymentHandle
call.
<?php
$gateway = Omnipay::create('PaysafePaymentHub');
$gateway->setApiKey('yourApiKey');
$response = $gateway->getPaymentHandle([
'paymentHandleId' = $paymentHandleId,
])->send();
$paymentHandle = $response->getPaymentHandle();
if ($response->getPaymentHandle()->isPayable()) {
$completePurchaseResponse = $gateway->completePurchase([
'amount' => 11.00,
'currency' => 'EUR',
'paymentHandleToken' => $paymentHandle->getPaymentHandleToken(),
'merchantRefNum' => 'ref2',
'dupCheck' => false,
'settleWithAuth' => true,
'customerIp' => '172.0.0.1',
'description' => 'description',
])->send();
}
<?php
$gateway = Omnipay::create('PaysafePaymentHub');
$gateway->setApiKey('yourApiKey');
$response = $gateway->fetchTransaction([
'transactionId' => $webhook['payload']['id'],
])->send();
if ($response->isComplete()) {
// payment is complete
}
Run the unit tests with composer run test
If you are having general issues with Omnipay, we suggest posting on Stack Overflow. Be sure to add the omnipay tag so it can be easily found.
If you believe you have found a bug, please report it using the GitHub issue tracker, or better yet, fork the library and submit a pull request.