Giter VIP home page Giter VIP logo

transbank's Introduction

rawpixel - Unsplash (UL) #SEDqvdbkDQw

Latest Stable Version License PHP Composer Coverage Status

Transbank

Easy-to-use Transbank SDK for PHP.

Supports Webpay, Webpay Mall and Webpay Oneclick Mall.

Requisites:

Installation

Require it with Composer:

composer require darkghosthunter/webpay

Usage

This SDK mimics all the Webpay, Webpay Mall and Oneclick Mall methods from the official Transbank SDK for PHP.

You can check the documentation of these services in Transbank Developer's site.

Quickstart

Instance the Transbank object. You can do it manually, or with make() which will use Guzzle o Symfony HTTP Clients if any of these is already installed.

use DarkGhostHunter\Transbank\Transbank;

$transbank = Transbank::make();

If your project doesn't manage single instances, you can use getInstance() to receive a static Transbank instance.

use DarkGhostHunter\Transbank\Transbank;

$transbank = Transbank::getInstance();

Environments and credentials

By default, this SDK starts up in integration environment, where all transactions made are fake by using Transbank's own integration server.

To operate in production mode, where all transaction will be real, you will need to use toProduction() along an array with the name of the service and their production credentials issued by Transbank to you: webpay, webpayMall or oneclickMall.

$transbank->toProduction([
    'patpass' => ['555876543210','7a7b7d6cce5e...']
]);

For Mall operations, the "child" commerce code is only needed when doing the transactions.

Using a Service

To use a Transbank service, just call the method on the Transbank instance: webpay, webpayMall and oneclickMall.

use DarkGhostHunter\Transbank\Transbank;

$transaction = Transbank::singleton()
        ->webpay()
        ->create('order#123', 9990, 'https://app.com/compra');

HTTP Client

This package is compatible with any PSR-18 compliant HTTP Client. IF you don't have one, you can install Guzzle or Symfony

composer require guzzlehttp/guzzle:>=7.0

or

composer require symfony/http-client:>=5.2

Some PHP platforms already ship with their own HTTP Client, like Amp, ReactPHP, or Swoole.

Logger (optional)

You can use this package with any PSR-3 compliant Log system, allowing to debug transactions. You can use Monolog if you don't have one.

composer require monolog/monolog

All operations are sent to the logger using debug.

Event dispatcher (optional)

You can use this package with any PSR-14 compliant Event Dispatcher, so you will be able to hear transactions started and completed. You can use Symfony or League if you don't have one.

composer require symfony/event-dispatcher

or

composer require league/event

This package sends the following events:

  • TransactionCreating before a transaction is created in Transbank.
  • TransactionCreated after a transaction is created in Transbank, but pending payment.
  • TransactionCompleted after a transaction or refund is completed in Transbank, regardless of the success.

Excepciones

All exceptions implement TransbankException, so you can easily catch and check what happened.

Transactions properly rejected by banks or credit card issuers do not throw exceptions.

There are 4 types of exceptions:

  • ClientException: Any error byproduct of bad transactions, bad configuration, abort, abandonment, timeout or invalid values.
  • NetworkException: Any communication error from Transbank Server, like network timeouts or wrong endpoints.
  • ServerException: Any internal Transbank error.
  • UnknownException: Any other error.

Exceptions are not logged.

Licence

The MIT License (MIT). Please see License File for more information.

Redcompra, Webpay, Oneclick, Onepay, Patpass and Transbank are trademarks of Transbank S.A.. This package and its author are not associated with Transbank S.A.

transbank's People

Contributors

darkghosthunter avatar

Watchers

 avatar

Forkers

rootchile

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.