Skip to content

Releases: thephpleague/omnipay-common

Omnipay v3 Release

15 May 07:15
Compare
Choose a tag to compare

v3.0.0 - 2018-05-14

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.

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 omnipay/omnipay,
    but otherwise you need to required your own implementation (see PHP HTTP Clients)

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.
  • An HTTP Client is no longer added by default by omnipay/common, but omnipay/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

v3.0-RC2

14 May 12:39
Compare
Choose a tag to compare
test amountInteger if amount is null

v3.0-RC1

14 May 12:39
e9e6cc9
Compare
Choose a tag to compare
v3.0-RC1 Pre-release
Pre-release
Add setMoney method (#180)

Remove Money public access

10 May 21:01
Compare
Choose a tag to compare
Pre-release

Adds setAmountInteger instead of the Money object. getMoney() is used to private, gateways should use the getAmount or getAmountInteger instead. This is a BC break between the v3-betas, but same as v2.

Beta 2

10 May 19:48
Compare
Choose a tag to compare
Beta 2 Pre-release
Pre-release

Uses our own Exceptions instead of the PSR package (with unknown timeline)

Beta release

28 Mar 15:55
Compare
Choose a tag to compare
Beta release Pre-release
Pre-release

Should be a public API freeze hopefully :)

v3.0-alpha.4

28 Mar 09:11
Compare
Choose a tag to compare
v3.0-alpha.4 Pre-release
Pre-release

Implement PSR-18 Exceptions

v3.0-alpha.3

26 Mar 19:18
Compare
Choose a tag to compare
v3.0-alpha.3 Pre-release
Pre-release
  • Remove ResponseParser
  • Renamed/removed methods for the Client, just use $client->request('GET', '/path', ...)
  • Added ClientInterface

Second alpha

20 Mar 08:08
Compare
Choose a tag to compare
Second alpha Pre-release
Pre-release
v3.0-alpha.2

Update composer, bump versions and PHP7.1+

Alpha release for Omnipay v3

22 Apr 12:36
Compare
Choose a tag to compare
Pre-release
v3.0-alpha.1

Add scrutinizer config