ilcleme/payum-tinkl

Tinkl's Payum extension. Pay with bitcoin

v1.1.4 2020-05-13 19:39 UTC

This package is auto-updated.

Last update: 2024-05-14 03:51:23 UTC


README

This payum gateway provides the functionality of receiving bitcoin payments for all your web applications. Take advantage of the tinkl.it service, which provides an API to manage the payment in Bitcoin.

Latest Stable Version Total Downloads Latest Unstable Version License Build Status

Requirements

The minimum requirements of the package are PHP 7.1 installed in your webserver and Payum, which will be installed directly with the gateway.

Installation

To install package you can use a simple composer command.

$ composer require ilcleme/payum-tinkl

Configuration

Once installed via composer, it must be configured and added to the gateways in Payum. To do this, simply follow these steps:

  • Register the gateway in Payum;
  • Configure your credentials (you can also enable the sandbox environment);
  • Configure any additional options (not mandatory)

The following PHP script is an example of how the gateway can be configured, you may need to modify it to configure it in your web application. If you have never used Payum or you don't know its rules, I recommend you read the documentation available on Github.

<?php
//config.php
include_once "vendor/autoload.php";

use Payum\Core\PayumBuilder;
use Payum\Core\Payum;
use Payum\Core\Model\Payment;

$paymentClass = Payment::class;

/** @var Payum $payum */
$payum = (new PayumBuilder())
    ->addDefaultStorages()
    ->addGatewayFactory('tinkl', function ($config, $coreGatewayFactory){
        return new \IlCleme\Tinkl\TinklGatewayFactory($config, $coreGatewayFactory);
    })
    ->addGateway('tinkl', [
        'factory' => 'tinkl',
        'clientId' => 'aClientId',
        'token' => 'aToken',
        'sandbox' => true, // switch to false to use in production environment
    ])
    ->getPayum();

The expiry time of the tinkl.it payment page can also be configured, simply enter it in the payment details, in this way: Every other parameters used by tinkl.it API will be calculated by the gateway itself.

<?php
// prepare.php
include __DIR__.'/config.php';
$gatewayName = 'tinkl';

/** @var \Payum\Core\Payum $payum */
$storage = $payum->getStorage($paymentClass);

$payment = $storage->create();
$payment->setNumber(uniqid());
$payment->setCurrencyCode('EUR');
$payment->setTotalAmount(500); // Price should be passed as integer but multiplied by 100
$payment->setDescription('A description');
$payment->setClientId('anId');
$payment->setClientEmail('foo@example.com');
$payment->setDetails([
    'time_limit' => 60 // Value accepted in range from 60 to 900 (1 to 15 minutes), default to 900
]);

$storage->update($payment);
$captureToken = $payum->getTokenFactory()->createCaptureToken($gatewayName, $payment, 'done.php');
header("Location: ".$captureToken->getTargetUrl());

Test

To run the package test you need to install the dev requirements (test tools). Use this composer alias or run phpunit from test folder.

composer test

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Please make sure to update tests as appropriate.

License

This extension is released under the MIT License.