Home

Awesome

Omnipay: Paysafe Payment Hub

Build Status Latest Stable Version Total Downloads License

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.

References

Paysafe Payment Hub documentation