marekvikartovsky/trustpay-php

TrustPay - online card payments gate.

v1.1.1 2024-06-26 16:36 UTC

This package is not auto-updated.

Last update: 2025-02-05 19:38:00 UTC


README

This library provides communication between client and TrustPay online cards payment gate.

Currently supported payment methods

  • Card payment
  • EPS
  • Sofort
  • Giropay

Requirements

  • >= PHP 8.1

Installation

composer require marekvikartovsky/trustpay-php

Usage

To create payment url you need to follow these steps.

As first as you need to instantiate \MarekVikartovsky\TrustPay\TrustPay class and provide information such as project id, private key, notification url, return urls and locale.
Cancel return URL, Error return URL and locale do not need to be specified, they have predefined values.

$trustpay = new \MarekVikartovsky\TrustPay\TrustPay(
'PROJET_ID',
'PRIVATE_KEY',
'NOTIFICATION_URL'
'SUCCESS_RETURN_URL',
'CANCEL_RETURN_URL',
'ERROR_RETURN_URL',
'en'
);

After that, you need to call a payment method, which creates payment object for specific payment method. The payment method is set by payment function parameter.
Available payment methods:
\MarekVikartovsky\TrustPay\PaymentMethods\CardPayment::PAYMENT_METHOD_NAME \MarekVikartovsky\TrustPay\PaymentMethods\Eps::PAYMENT_METHOD_NAME \MarekVikartovsky\TrustPay\PaymentMethods\Giropay::PAYMENT_METHOD_NAME \MarekVikartovsky\TrustPay\PaymentMethods\Sofort::PAYMENT_METHOD_NAME

If you want to use \MarekVikartovsky\TrustPay\PaymentMethods\CardPayment method type, you have to call setPaymentType method with Purchase value.

return $trustpay->payment(\MarekVikartovsky\TrustPay\PaymentMethods\CardPayment::PAYMENT_METHOD_NAME)
->setAmount((float) 10)
->setCurrency(\MarekVikartovsky\TrustPay\Enums\CurrencyEnum::EUR)
->setReference('MERCHANT_REFERENCE')
->setPaymentType('Purchase')
->getPaymentUrl();

Notification handler

As first as you need to instantiate \MarekVikartovsky\TrustPay\CallbackHandlers\NotificationHandler class and pass into its constructor private key and \Illuminate\Http\Request() instance.

$notification = new \MarekVikartovsky\TrustPay\CallbackHandlers\NotificationHandler('XXXXX-PRIVATE-KEY-XXXXX', new \Illuminate\Http\Request())

After that you should check if signature is valid. You can do this by calling method hasValidSignature(). This method return boolean value.

if($notification->hasValidSignature()){
    // do something
}

Than you can check for specific payment status. There are few methods which can be used: isPaid(), isRejected(), isChargeBacked(), isRapidDisputeResolution() or if you want to get value from status attribute, you can use getStatus() method. These methods return boolean values.

if($notification->isPaid()){
    // do something
}

Documentation

https://doc.trustpay.eu/aapi

License

The TrustPay API PHP library is open-sourced software licensed under the MIT license.