All Versions
12
Latest Version
3.2
Avg Release Cycle
253 days
Latest Release
360 days ago

Changelog History
Page 1

  • v3.2 Changes

    June 01, 2021

    🚀 Omnipay 3.2 is compatible with PHP8. This is done by upgrading the test suite to PHPUnit 8/9, with the release of omnipay/tests v4 and omnipay/common v3.1. This change is primarily for gateway developers, to make it possible to actually test PHP8, but they will need to upgrade their tests to use PHPUnit 9 (the currently supported PHPUnit version).

  • v3.1.0

    October 29, 2020
  • v3.0.2

    March 26, 2019
  • v3.0.1

    November 09, 2018
  • v3.0 Changes

    April 23, 2017

    Omnipay 3.0 focuses on separation of the HTTP Client, to be independent of Guzzle. 🚀 This release brings compatibility with the latest Symfony 3+4 and Laravel 5. The breaking changes for applications using Omnipay are kept to a minimum.

    📦 The omnipay/omnipay package name has been changed to league/omnipay

    ⬆️ Upgrading applications from Omnipay 2.x to 3.x

    💥 Breaking changes

    • The redirect() method no calls exit() after sending the content. This is up to the developer now.
    • An HTTP Client is required. Guzzle will be installed when using league/omnipay, but otherwise you need to required your own implementation (see PHP HTTP Clients)
      • 📦 The omnipay/omnipay package name has been changed to league/omnipay and no longers installs all the gateways directly.

    ➕ Added

    • It is now possible to use setAmountInteger(integer $value) to set the amount in the base units of the currency.
    • Support for Money for PHP objects are added, by using setMoney(Money $money) the Amount and Currency are set.

    ⬆️ Upgrading Gateways from 2.x to 3.x

    The primary difference is the HTTP Client. We are now using HTTPlug (http://httplug.io/) but rely on our own interface.

    💥 Breaking changes

    • 🔄 Change typehint from Guzzle ClientInterface to Omnipay\Common\Http\ClientInterface
    • 🚚 $client->get('..')/$client->post('..') etc are removed, you can call $client->request('GET', '').
    • No need to call $request->send(), requests are sent directly.
    • Instead of $client->createRequest(..) you can create+send the request directly with $client->request(..).
    • When sending a JSON body, convert the body to a string with json_encode() and set the correct Content-Type.
    • The response is a PSR-7 Response object. You can call $response->getBody()->getContents() to get the body as string.
    • $response->json() and $response->xml() are gone, but you can implement the logic directly.
    • 0️⃣ An HTTP Client is no longer added by default by omnipay/common, but league/omnipay will add Guzzle. Gateways should not rely on Guzzle or other clients directly.
    • 🏗 $body should be a string (eg. http_build_query($data) or json_encode($data) instead of just $data).
    • The $headers parameters should be an array (not null, but can be empty)

    Examples:

    // V2 XML:
     $response = $this->httpClient->post($this->endpoint, null, $data)->send();
     $result = $httpResponse->xml();
    
    // V3 XML:
     $response = $this->httpClient->request('POST', $this->endpoint, [], http_build_query($data));
     $result = simplexml_load_string($httpResponse->getBody()->getContents());
    
    // Example JSON request:
    
     $response = $this->httpClient->request('POST', $this->endpoint, [
         'Accept' => 'application/json',
         'Content-Type' => 'application/json',
     ], json_encode($data));
    
     $result = json_decode($response->getBody()->getContents(), true);
    

    ✅ Testing changes

    ⬆️ PHPUnit is upgraded to PHPUnit 6. Common issues:

    • 🚚 setExpectedException() is removed
    // PHPUnit 5:
    $this->setExpectedException($class, $message);
    
    // PHPUnit 6:
    $this->expectException($class);
    $this->expectExceptionMessage($message);
    
    • ✅ Tests that do not perform any assertions, will be marked as risky. This can be avoided by annotating them with @doesNotPerformAssertions

    • 🚚 You should remove the Mockery\Adapter\Phpunit\TestListener in phpunit.xml.dist

  • v3.0-alpha.1

    April 23, 2017
  • v2.3.2

    December 16, 2014
  • v2.3.1 Changes

    September 17, 2014

    🚚 Move to The PHP League.

  • v2.3.0 Changes

    May 12, 2014
    • ➕ Add Coinbase gateway
  • v2.1.0 Changes

    December 08, 2013
    • ➕ Add CreditCard birthday and gender fields