PHPackages                             academe/omnipay-girocheckout - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Payment Processing](/categories/payments)
4. /
5. academe/omnipay-girocheckout

ActiveLibrary[Payment Processing](/categories/payments)

academe/omnipay-girocheckout
============================

GiroSolution GiroCheckout driver for the Omnipay PHP payment processing library

3.0.8(7y ago)6212.9k↑47.4%4[4 issues](https://github.com/academe/Omnipay-GiroCheckout/issues)MITPHP

Since Dec 18Pushed 5y ago2 watchersCompare

[ Source](https://github.com/academe/Omnipay-GiroCheckout)[ Packagist](https://packagist.org/packages/academe/omnipay-girocheckout)[ Docs](https://github.com/academe/omnipay-girocheckout)[ RSS](/packages/academe-omnipay-girocheckout/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (3)Versions (20)Used By (0)

Omnipay: GiroCheckout
=====================

[](#omnipay-girocheckout)

**GiroCheckout driver for the Omnipay PHP payment processing library**

[![Build Status](https://camo.githubusercontent.com/3a40e410f7ca2ba13b8d068cca76780c171a0ab71b815c9e20ac3d0958a8df3d/68747470733a2f2f7472617669732d63692e6f72672f61636164656d652f4f6d6e697061792d4769726f436865636b6f75742e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/academe/Omnipay-GiroCheckout)[![Latest Stable Version](https://camo.githubusercontent.com/5d1c052ebbd8dc179e1f22b8933ed04233e166241b4c3204cb15abcef55c55a5/68747470733a2f2f706f7365722e707567782e6f72672f61636164656d652f6f6d6e697061792d6769726f636865636b6f75742f762f737461626c65)](https://packagist.org/packages/academe/omnipay-girocheckout)[![Latest Unstable Version](https://camo.githubusercontent.com/1fe3817b142e05898f5335ece4d9f3c9a05cf988f89bfa18eadf4358291d5c69/68747470733a2f2f706f7365722e707567782e6f72672f61636164656d652f6f6d6e697061792d6769726f636865636b6f75742f762f756e737461626c65)](https://packagist.org/packages/academe/omnipay-girocheckout)[![Total Downloads](https://camo.githubusercontent.com/a6b0b73d964d1bbaf7fab678409e038704532be4cbe12acf9f22689ca839619d/68747470733a2f2f706f7365722e707567782e6f72672f61636164656d652f6f6d6e697061792d6769726f636865636b6f75742f646f776e6c6f616473)](https://packagist.org/packages/academe/omnipay-girocheckout)[![License](https://camo.githubusercontent.com/d619cb9e36aac61fa0577223638c9bb0ec9bf2a090641baa3f0495818ad07766/68747470733a2f2f706f7365722e707567782e6f72672f61636164656d652f6f6d6e697061792d6769726f636865636b6f75742f6c6963656e7365)](https://packagist.org/packages/academe/omnipay-girocheckout)

[Omnipay](https://github.com/thephpleague/omnipay) is a framework agnostic, multi-gateway payment processing library for PHP 5.

This package implements [Girocheckout](http://api.girocheckout.de/en:girocheckout:general:start)support, and supports PHP 7.1+.

This package is currently built for the Omnipay `v3.0-beta.1` on the `master` branch. The major version number of this driver is intended to track the major version number of the [omnipay-common](https://github.com/thephpleague/omnipay-common/) package.

If you are using the Omnipay 2.x, please use the [2.x branch](https://github.com/academe/Omnipay-GiroCheckout/tree/2.x).

Table of Contents
=================

[](#table-of-contents)

- [Omnipay: GiroCheckout](#omnipay-girocheckout)
- [Table of Contents](#table-of-contents)
- [Installation](#installation)
- [Authentication](#authentication)
- [Credit Card Payment Type](#credit-card-payment-type)
    - [Credit Card Authorize](#credit-card-authorize)
        - [Basic Authorize](#basic-authorize)
            - [Credit Card Complete Authorize](#credit-card-complete-authorize)
            - [Credit Card Authorize Notify](#credit-card-authorize-notify)
        - [Create a Reusable Card Reference](#create-a-reusable-card-reference)
        - [Offline Repeat Authorize](#offline-repeat-authorize)
    - [Credit Card Purchase Transactions](#credit-card-purchase-transactions)
    - [Credit Card Capture](#credit-card-capture)
    - [Credit Card Refund](#credit-card-refund)
    - [Credit Card Void](#credit-card-void)
- [Direct Debit Payment Type](#direct-debit-payment-type)
    - [Basic Authorize](#basic-authorize-1)
        - [Create a Reusable Direct Debit Card Reference](#create-a-reusable-direct-debit-card-reference)
        - [Offline Direct Debit Payment](#offline-direct-debit-payment)
    - [Direct Debit Capture/Refund/Void](#direct-debit-capturerefundvoid)
- [PayPal Payment Type](#paypal-payment-type)
    - [PayPal Purchase](#paypal-purchase)
- [Giropay Payment Type](#giropay-payment-type)
    - [Giropay Issuers List](#giropay-issuers-list)
    - [Giropay Bank Capabilities](#giropay-bank-capabilities)
    - [Giropay Purchase](#giropay-purchase)
    - [Giropay Sender Details](#giropay-sender-details)
    - [Giropay ID (age verification)](#giropay-id-age-verification)
- [Paydirekt Payment Type](#paydirekt-payment-type)
- [Payment Page Payment Type](#payment-page-payment-type)
    - [Payment Page Projects List](#payment-page-projects-list)
    - [Cancel Url](#cancel-url)
- [Bluecode Payment Type](#bluecode-payment-type)
    - [Bludcode Purchase](#bluecode-purchase)
    - [Bluecode Refund](#bluecode-refund)

Installation
============

[](#installation)

Using composer, the 3.0 branch can be installed like this:

```
composer require league/omnipay academe/omnipay-girocheckout:~3.0

```

Authentication
==============

[](#authentication)

A GiroCheckout merchant account is first set up. Within that account, one of more projects are set up. Each project is configured to run just one payment type (e.g. credit card, direct debit).

Each project contains a pre-shared secret. That secret is used to sign all messages, in both directions (requests to the gateway, responses to those requests, and server request notification messages from the gateway to your merchant site).

So for each payment type, you will have the following matched authentication details, required for all interaction:

- Merchant ID
- Project ID
- Pre-shared secret (passphrase)
- Payment type

A gateway could be set up like this:

```
use Omnipay\GiroCheckout\Gateway;
use Omnipay\Omnipay;

// The backward slashes are needed to make the driver base class absolute.
// An issue will be raised against Omnipay Common to fix this.
$gateway = Omnipay::create('\\' . Gateway::class);
// or
$gateway = Omnipay::create('GiroCheckout/Gateway';

// The IDs can be given as integers in strings.
$gateway->setMerchantID('3610000');
$gateway->setProjectID('37000');
$gateway->setProjectPassphrase('ZFXDMpXDMpVV9Z');
// Other payment types are supported.
$gateway->setPaymentType(Gateway::PAYMENT_TYPE_CREDIT_CARD);

// or

$gateway->initialize([
    'merchantId' => 3610000,
    'projectId' => 37000,
    'projectPassphrase' => 'ZFXDMpXDMpVV9Z',
    'paymentType' => Gateway::PAYMENT_TYPE_CREDIT_PAYPAL,
]);
```

Credit Card Payment Type
========================

[](#credit-card-payment-type)

This payment type supports authorize and purchase. A card can be tokenised during a transaction and used again for future payments with the user present, or for offline repeat payments.

The capture/refund/void methods are also available.

Credit Card Authorize
---------------------

[](#credit-card-authorize)

### Basic Authorize

[](#basic-authorize)

A simple authorize will look like this:

```
use Money\Money;
use Money\Currency;

$gateway->setPaymentType(Gateway::PAYMENT_TYPE_CREDIT_CARD);

$authRequest = $gateway->authorize([
    'transactionId' => $yourMerchantTransactionId,
    //
    // Several ways to supply the amount:
    'amount' => '4.56',
    'amount' => new Money(456, new Currency('EUR')),
    'amount' => Money::EUR(456),
    //
    'currency' => 'EUR',
    'description' => 'Mandatory reason for the transaction',
    'language' => 'en',
    'returnUrl' => 'url to bring the user back to the merchant site',
    'notifyUrl' => 'url for the gateway to send direct notifications',
    'mobile' => false,
]);
```

The response will be a redirect to the gateway, where the user will enter their credit card details. The language setting will define the language used in the user interface and in error messages returned in the response.

On completion, the result of the transaction will sent to the merchant site in two ways (both will be used):

- Via the notification URL.
- Through query parameters given to the return URL.

The `notifyUrl` and the `returnUrl` can both take custom query parameters. The gateway will merge in its own parameters when using the URLs.

#### Credit Card Complete Authorize

[](#credit-card-complete-authorize)

When the user returns to the `returnUrl`, the transaction result can be extracted like this:

```
$completeRequest = $gateway->completeAuthorize();
$completeResponse = $completeRequest->send();

// Available standard Omnipay details:

$completeResponse->getCode();
$completeResponse->getMessage();
$completeResponse->isSuccessful();
$completeResponse->isCancelled();
$completeResponse->getTransactionStatus();
$completeResponse->getTransactionReference();
```

If the response fails its hash check against the shared secret, then an exception will be raised on `send()`. The raw response data can still be read for logging as `$completeRequest->getData()`, which returns an array.

The notification handler, on the `notifyUrl`, is set up like this:

```
$notifyRequest = $gateway->acceptNotification();
$notifyResponse = $notifyRequest->send();
```

Once the authorisation is complete, the amount still needs to be captured.

#### Credit Card Authorize Notify

[](#credit-card-authorize-notify)

Exactly the same rules apply as to the `completeAuthorize` request - an exception will be raised if the hash does not validate; the same standard Omnipay result details are available.

### Create a Reusable Card Reference

[](#create-a-reusable-card-reference)

When authorizing, the gateway can be asked to create a reusable card reference. This flag in the authorize request will trigger that:

```
$authRequest = $gateway->authorize([
    ...
    'createCard' => true,
]);
```

After the authorize completes, the card reference is fetched using this request:

```
$getCardRequest = $gateway->getCard([
    'transactionReference' => 'otiginal transaction reference',
]);
$getCardResponse = $getCardRequest->send();

// The reusable `cardReference` is available here:
$cardReference = $getCardResponse->getTransactionReference();

// Other details about the card that may be useful:
$getCardResponse->getNumberMasked();
$getCardResponse->getExpiryYear();
$getCardResponse->getExpiryMonth();
```

The `$cardReference` is then used for authorizing:

```
$authRequest = $gateway->authorize([
    ...
    'cardReference' => $cardReference,
]);
```

The user will be redirected to the payment gateway like the basic authorize, but the credit card details will be already completed (and cannot be changed by the user). The user will need to enter their `CVV` to authorise use of the card.

By setting the `recurring` parameter flag, even the need for the CVV to be entered can be avoided. This feature is only available on application. Even through the user will be redirected to the gateway, they will be redirected back again immediately with no need to enter any card or CVV details. However, the redirect does give the gateway the option to insert some additional validation if it needs to.

### Offline Repeat Authorize

[](#offline-repeat-authorize)

When a reusable `cardReference` is used, the need to redirect the user to the gateway can be avoided by resetting the `paymentPage` parameter.

```
$authRequest = $gateway->authorize([
    ...
    'paymentPage' => false,
]);
```

This can be used without the user being present, so is useful for subscriptions and other repeated payments.

Credit Card Purchase Transactions
---------------------------------

[](#credit-card-purchase-transactions)

Replace `purchase` in place of `authorize`.

Credit Card Capture
-------------------

[](#credit-card-capture)

The required amount can be captured using this request:

```
$captureRequest = $gateway->capture([
    'transactionId' => $yourMerchantTransactionId,
    'amount' => Money::EUR(123),
    'currency' => 'EUR',
    'description' => 'Capture reason is required',
    'transactionReference' => 'original authorize transaction reference',
]);

$captureRersponse = $captureRequest->send();

// Check if successful:
$captureRersponse->isSuccessful();

// Some other details:
$captureRersponse->getCode();
$captureRersponse->getMessage();
$captureRersponse->getTransactionReference();
```

Credit Card Refund
------------------

[](#credit-card-refund)

A refund of the full or a partial amount can be done using the `refund` message. It is used in exactly the same way as the `capture` message.

Credit Card Void
----------------

[](#credit-card-void)

A transaction can be completely voided like this:

```
$voidRequest = $gateway->capture([
    'transactionReference' => 'original authorize transaction reference',
]);

$voidResponse = $voidRequest->send();

// Check if successful:
$captureRersponse->isSuccessful();
```

Direct Debit Payment Type
=========================

[](#direct-debit-payment-type)

The Direct Debit payment type works in a very similar way to the Credit Card payment type. The main differences are:

- The bank account is identified by an IBAN or a sort code/bank code/BMZ and account number (SCAN).
- When fetching the saved "cardReference", details you get back include `ibanMasked`.
- Running an authorize or payment without a paymentform, you can supply IBAN, SCAN or cardReference.

Basic Authorize
---------------

[](#basic-authorize-1)

A simple authorize will look like this:

```
$gateway->setPaymentType(Gateway::PAYMENT_TYPE_DIRECTDEBIT);

$authRequest = $gateway->authorize([
    'transactionId' => $yourMerchantTransactionId,
    'amount' => Money::EUR(456),
    'currency' => 'EUR', // Optional if the amount is Money
    'description' => 'Mandatory reason for the transaction',
    'language' => 'en',
    'returnUrl' => 'url to bring the user back to the merchant site',
    'notifyUrl' => 'url for the gateway to send direct notifications',
    'mobile' => false,
    // Parameters specific to Direct Debit, all optional:
    'mandateReference' => '...',
    'mandateSignedOn' => '...',
    'mandateReceiverName' => '...',
    'mandateSequence' => '...',
]);
```

The `mandateSignedOn` is a date in the forma `YYYY-MM-DD`. A `DateTime` or derived object can ve supplied instead, which includes `Carbon\Carbon` objects.

### Create a Reusable Direct Debit Card Reference

[](#create-a-reusable-direct-debit-card-reference)

The Direct Debit payment type supports saving the details of the collected bank details as a `cardReference`. Triggering the saving is done by turning on `creatCard` like this:

```
$authRequest = $gateway->authorize([
    ...
    'createCard' => true,
]);
```

The `cardReference` can be fetched in the same way as the Credit Card payment type.

### Offline Direct Debit Payment

[](#offline-direct-debit-payment)

The payment page redirect can be turned off to support offline payment, without the user being present:

```
$authRequest = $gateway->authorize([
    ...
    'paymentPage' => false,
]);
```

When making an offline payment, one of the following must be supplied:

- cardReference
- IBAN
- SCAN

```
$authRequest = $gateway->authorize([
    ...
    'cardReference' => '13b5ca34a8389774690154bcc0da0a8e',
    // or
    'iban' => 'DE87123456781234567890',
    // or
    'accountHolder' => 'Name',
    'bankCode' => '12345678',
    'bankAccount' => '1234567890',
]);
```

Direct Debit Capture/Refund/Void
--------------------------------

[](#direct-debit-capturerefundvoid)

These operate in exactly the same way as for Credit Card payments.

PayPal Payment Type
===================

[](#paypal-payment-type)

The PayPal payment type supports only one request type, `purchase`.

PayPal Purchase
---------------

[](#paypal-purchase)

A simple purchase will look like this:

```
$gateway->setPaymentType(Gateway::PAYMENT_TYPE_PAYPAL);

$authRequest = $gateway->purchase([
    'transactionId' => $yourMerchantTransactionId,
    'amount' => Money::EUR(789),
    'currency' => 'EUR',
    'description' => 'Mandatory reason for the transaction',
    'returnUrl' => 'url to bring the user back to the merchant site',
    'notifyUrl' => 'url for the gateway to send direct notifications',
]);
```

The response should be a redirect to the remote gateway.

On return from the gateway, the result can be accessed using the `$response -> $gateway->complete()->send()` message like for previous payment types.

The back-channel notification handler will be sent the usual details too.

Giropay Payment Type
====================

[](#giropay-payment-type)

This payment type only works for payments in Euros, and only for issuing banks that have registered with the service (over 1400 to date).

As well as making payments, there are a number of supporting API methods.

Giropay Issuers List
--------------------

[](#giropay-issuers-list)

This method returns a list of issuing banks that are regisered for this service. The list would normally be used to present to the end user so they can choose their personal bank.

```
$gateway->setPaymentType(Gateway::PAYMENT_TYPE_GIROPAY);

$request = $gateway->getIssuers();

$response = $request->send();

// The list of named banks is indexed by their BIC.

if ($response->isSuccessful()) {
    $bankList = $response->getIssuerArray();

    var_dump($bankList);
}

// array(1407) {
//  ["BELADEBEXXX"]=>
//  string(38) "Landesbank Berlin - Berliner Sparkasse"
//  ["BEVODEBBXXX"]=>
//  string(18) "Berliner Volksbank"
//  ["GENODEF1P01"]=>
//  string(27) "PSD Bank Berlin-Brandenburg"
//  ["WELADED1WBB"]=>
//  string(9) "Weberbank"
//  ...
// }
```

Giropay Bank Capabilities
-------------------------

[](#giropay-bank-capabilities)

Once an issuing bank is chosen, its capabilities can be checked. This tests whether it supports Giropay, or Giropay+ID, or both.

This list can also be retrieved on the front end only using the [Bank Selection Widget](http://api.girocheckout.de/en:girocheckout:giropay:start#bank_selection_widget). There is no direct support for the widget in this driver.

```
$request = $gateway->getBankStatus([
    'bic' => 'TESTDETT421',
]);

$response = $request->send();

// Both return boolean.

$supportsGiropay = $response->hasGiropay();
$supportsGiropayId = $response->hasGiropayId();
```

Giropay Purchase
----------------

[](#giropay-purchase)

There is no `authorize` capability, just `purchase`.

```
$request = $gateway->purchase([
    'transactionId' => $transactionId,
    'amount' => Money::EUR(123),
    'currency' => 'EUR',
    'description' => 'Transaction ' . $transactionId,
    'returnUrl' => 'url to bring the user back to the merchant site',
    'notifyUrl' => 'url for the gateway to send direct notifications',
    'bic' => 'TESTDETT421', // mandatory
    'info1Label' => 'My Label 1',
    'info1Text' => 'My Text 1',
]);
```

The result will be a redirect to the gateway or bank.

On return, the usual `completePurchase` and `acceptNotification` messages will provide the result of the transaction attempt.

The final result includes the following methods to inspect additional details:

```
$notifyResponse->getResultAvs();
$notifyResponse->getObvName();
$notifyResponse->isAgeVerificartionSuccessful();
```

Giropay Sender Details
----------------------

[](#giropay-sender-details)

Details of the sender can be fetched given a successful transaction.

```
$request = $gateway->getSender([
    'transactionReference' => '6b65a235-e7c1-464f-b238-ea4ea0bc647f',
]);

$response = $request->send();
```

Details include:

```
$response->getAccountHolder();
// string(17) "Stefan Adlerhorst"

$response->getIban();
// string(22) "DE46940594210000012345"

$response->getBic();
// string(11) "TESTDETT421"
```

Giropay ID (age verification)
-----------------------------

[](#giropay-id-age-verification)

Use the `Giropay-ID` payment type to just perform age verification without making a payment. You can leave out the amount, currency and description, as none of those are sent to the gateway.

```
$gateway->setPaymentType(Gateway::PAYMENT_TYPE_GIROPAY_ID);
```

Paydirekt Payment Type
======================

[](#paydirekt-payment-type)

This is the only payment type that accepts a shopping cart details and a `CreditCard` object for shipping details.

Capabilities of this payment type include `authorize` and `purchase`. An authorization transaction can be further processed though `capture`and `void`. A purchase transaction can accept a `refund`.

The gateway requires cart item prices to be in minor units. Since Omnipay 2.x (or 3.x at this time) does not define the units cart items use, some assumptions will be made and conversions performed as follows (all these formats are treated as the same amount, namely 123 minor units, such as €1.23):

- `Money\Money::EUR(123)`
- String '1.23'
- String '123'
- Integer 123
- Float 1.23

If no currency is set explicitly with `setCurrency()` then it will be taken from the amount if using a `Money\Money` object. To avoid ambiguity, we recommend you use `Money\Money` for all `ItemBag` `price` amounts.

Payment Page Payment Type
=========================

[](#payment-page-payment-type)

This payment type offers the customer all payment methods available from the merchant rather than displaying them separately. The payment page allows the customer to select the payment method they wish to use and then the selected payment is initialized accordingly.

Payment Page Projects List
--------------------------

[](#payment-page-projects-list)

This method returns a list of possible GiroCockpit projects. The list contains the following elements:

- Project Id
- Project Name
- Paymethod Number (see [Payment methods](http://api.girocheckout.de/en:girocheckout:paypage:start#payment_methods))
- Mode (*TEST* or *LIVE*)

```
$gateway->setPaymentType(Gateway::PAYMENT_TYPE_PAYMENTPAGE);

$request = $gateway->getProjects();

$response = $request->send();

if ($response->isSuccessful()) {
    $projects = $response->getProjects();

    var_dump($projects);
}

// array(5) {
//     [0]=>
//     array(4) {
//       ["id"]=>
//       string(5) "37570"
//      ["name"]=>
//       string(11) "Giropay One"
//       ["paymethod"]=>
//      string(1) "1"
//       ["mode"]=>
//       string(4) "TEST"
//     }
//    ...
// }
```

Cancel Url
----------

[](#cancel-url)

The Payment Page's `cancelUrl` differs to the rest of the payment types as it does not return the transaction cancelled details. If the user follows the cacnel URL from this payment method, it seems the transaction is not actually cancelled, but is left to time out instead, at which point your merchant site will be sent a cancellation notification. In summary, you must **not** call `completeAuthorise` when returning to the merchant site from the *Payment Page* payment type.

Bluecode Payment Type
=====================

[](#bluecode-payment-type)

This payment type works currently only with bank accounts in Germany and Austria.

Bluecode only supports purchase (sale) and refund operations. There is not authorize and/or void, like with credit cards.

Bluecode Purchase
-----------------

[](#bluecode-purchase)

Issue a purchase transaction:

```
$gateway->setPaymentType(Gateway::PAYMENT_TYPE_BLUECODE);

$purchaseRequest = $gateway->purchase([
    'transactionId' => $yourMerchantTransactionId,
    'amount' => 4.56,
    'currency' => 'EUR', // or any other valid currency code
    'description' => 'Reason for the transaction',
    'returnUrl' => 'url to bring the user back to the marchant site',
    'notifyUrl' => 'url for the gateway to send direct notifications',
]);
```

Bluecode Refund
---------------

[](#bluecode-refund)

Issue a refund

```
$gateway->setPaymentType(Gateway::PAYMENT_TYPE_BLUECODE);

$refundRequest = $gateway->refund([
    'transactionId' => $yourMerchantTransactionId,
    'amount' => 4.56,
    'currency' => 'EUR', // or any other valid currency code
    'description' => 'Reason for the transaction',
    'transactionReference' => 'original purchase transaction reference'
]);
```

###  Health Score

38

—

LowBetter than 85% of packages

Maintenance7

Infrequent updates — may be unmaintained

Popularity40

Moderate usage in the ecosystem

Community15

Small or concentrated contributor base

Maturity72

Established project with proven stability

 Bus Factor1

Top contributor holds 66.4% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~12 days

Total

19

Last Release

2839d ago

Major Versions

0.11.0 → 3.02018-01-18

2.2.0 → 3.0.2-alpha2018-03-27

2.x-dev → 3.0.62018-07-12

PHP version history (3 changes)0.8.0PHP &gt;=5.4

0.11.0PHP &gt;=5.5

3.0PHP &gt;=5.6

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/395934?v=4)[Jason Judge](/maintainers/judgej)[@judgej](https://github.com/judgej)

---

Top Contributors

[![judgej](https://avatars.githubusercontent.com/u/395934?v=4)](https://github.com/judgej "judgej (87 commits)")[![JamesNuttall](https://avatars.githubusercontent.com/u/22011451?v=4)](https://github.com/JamesNuttall "JamesNuttall (30 commits)")[![thommyhh](https://avatars.githubusercontent.com/u/13288620?v=4)](https://github.com/thommyhh "thommyhh (11 commits)")[![barryvdh](https://avatars.githubusercontent.com/u/973269?v=4)](https://github.com/barryvdh "barryvdh (3 commits)")

---

Tags

girocheckoutomnipaypayment-apipayment-gatewayphppaymentgatewaypaymerchantomnipaypurchasegirosolutiongirocheckout

###  Code Quality

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/academe-omnipay-girocheckout/health.svg)

```
[![Health](https://phpackages.com/badges/academe-omnipay-girocheckout/health.svg)](https://phpackages.com/packages/academe-omnipay-girocheckout)
```

###  Alternatives

[lokielse/omnipay-alipay

Alipay gateway for Omnipay payment processing library

587421.0k11](/packages/lokielse-omnipay-alipay)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
