groupedesign/tap-payments-laravel

Tap Payment REST API package for Laravel

dev-main 2021-05-11 14:02 UTC

This package is not auto-updated.

Last update: 2024-09-25 05:53:33 UTC


README

Laravel package for https://www.tap.company

Installation

Add groupedesign/tap-payments-laravel to your composer.json.

"groupedesign/tap-payments-laravel": "dev-master"

Run composer update to pull down the latest version of package.

OR simply run

composer require "groupedesign/tap-payments-laravel"

This package supports Laravel new Package Discovery.

Otherwise you need to open up /config/app.php and add the service provider to your providers array.

'providers' => [
	\Groupedesign\TapPayment\TapPaymentServiceProvider::class
]

Now add the alias.

'aliases' => [
	'TapPayment' => \Groupedesign\TapPayment\Facade\TapPayment::class
]

Configuration

To publish config run

php artisan vendor:publish --provider="Groupedesign\TapPayment\TapPaymentServiceProvider"

and modify the config file with your own information. File is located in /config/tap-payment.php

you can use this environment variables in your .env file

TAP_PAYMENT_API_KEY=your_api_key

Current version Functions

  • TapPayment::createCharge() - Creating an ApiInvoice
  • TapPayment::findCharge($id) - Finding an ApiInvoice by ID

Usage example

Creating Charge(make payment)

use Groupedesign\TapPayment\Facade\TapPayment;

public function pay()
{
	try{

		$payment = TapPayment::createCharge();

		$payment->setCustomerName( "John Doe" );
		
		$payment->setCustomerPhone( "123456789" );
		
		$payment->setDescription( "Some description" );

		$payment->setAmount( 123 );

		$payment->setCurrency( "KWD" );
		
		$payment->setSource( "src_kw.knet" );
        
		$payment->setRedirectUrl( "https://example.com" );

		$payment->setPostUrl( "https://example.com" ); // if you are using post request to handle payment updates

		$payment->setMetaData( [ 'package' => json_encode( $package ) ] ); // if you want to send metadata

		$invoice = $payment->pay();
		
	} catch( \Exception $exception ){
		// your handling of request failure
	}
    
    $payment->isSuccess() // check if TapPayment has successfully handled request.
}

Find ApiInvoice

public function check( $id )
{
	try{
	
		 $invoice = TapPayment::findCharge( $id );;
		 
	 } catch( \Exception $exception ){
		// your handling of request failure
	}
	$invoice->checkHash($request->header('Hashstring')); // check hashstring to make sure that request comes from Tap
	$invoice->isSuccess(); // check if invoice is paid
	$invoice->isInitiated(); // check if invoice is unpaid yet
}