Awesome
Omnipay: Paysafe Payment Hub
Paysafe Payment Hub library for the Omnipay V3 payment library, used for Neteller (and Skrill later).
Installation
Use composer to add the library as dependency for your project
composer require league/omnipay worldstream-labs/omnipay-paysafe-payment-hub
Development
To set up for development:
composer install
Usage
Setup
<?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);
Creating a payment handle for Neteller
<?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' => 'consumer@example.com',
'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.
Finalize Payment
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();
}
Fetch transaction
<?php
$gateway = Omnipay::create('PaysafePaymentHub');
$gateway->setApiKey('yourApiKey');
$response = $gateway->fetchTransaction([
'transactionId' => $webhook['payload']['id'],
])->send();
if ($response->isComplete()) {
// payment is complete
}
Tests
Run the unit tests with composer run test
Support
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.