Skip to content

Laravel Payment Gateways PayPal - Paymob - Fawry - WeAccept - Kashier - Hyperpay - Tap - Paytabs - stripe - Vodaphone Cash - Orange Money - Meza Wallet - Etisalat Cash

License

allamo123/lara_payments_ma

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Laravel Payment Gateways

Awesome MIT License Made With Love

Payment Helper of Payment Gateways ( PayPal - Paymob - Fawry - WeAccept - Kashier - Hyperpay - Tap - Paytabs - stripe - Vodaphone Cash - Orange Money - Meza Wallet - Etisalat Cash)

Supported gateways

Installation

composer require ma/payments

Publish Vendor Files

php artisan vendor:publish --tag="ma-payments-config"
php artisan vendor:publish --tag="ma-payments-lang"

ma-payments.php file

<?php
return [

    #PAYMOB
    'PAYMOB_API_KEY' => env('PAYMOB_API_KEY'),
    'PAYMOB_INTEGRATION_ID' => env('PAYMOB_INTEGRATION_ID'),
    'PAYMOB_IFRAME_ID' => env('PAYMOB_IFRAME_ID'),
    'PAYMOB_HMAC' => env('PAYMOB_HMAC'),
    'PAYMOB_CURRENCY'=> env('PAYMOB_CURRENCY',"EGP"),


    #KASHIER
    'KASHIER_ACCOUNT_KEY' => env('KASHIER_ACCOUNT_KEY'),
    'KASHIER_IFRAME_KEY' => env('KASHIER_IFRAME_KEY'),
    'KASHIER_TOKEN' => env('KASHIER_TOKEN'),
    'KASHIER_URL' => env('KASHIER_URL', "https://checkout.kashier.io"),
    'KASHIER_MODE' => env('KASHIER_MODE', "test"), //live or test
    'KASHIER_CURRENCY'=>env('KASHIER_CURRENCY',"EGP"),


    #FAWRY
    'FAWRY_URL' => env('FAWRY_URL', "https://atfawry.fawrystaging.com/"),//https://www.atfawry.com/ for production
    'FAWRY_SECRET' => env('FAWRY_SECRET'),
    'FAWRY_MERCHANT' => env('FAWRY_MERCHANT'),


    #PayPal
    'PAYPAL_CLIENT_ID' => env('PAYPAL_CLIENT_ID'),
    'PAYPAL_SECRET' => env('PAYPAL_SECRET'),
    'PAYPAL_CURRENCY' => env('PAYPAL_CURRENCY', "USD"),
    'PAYPAL_MODE' => env('PAYPAL_MODE',"sandbox"),//sandbox or live


    #THAWANI
    'THAWANI_API_KEY' => env('THAWANI_API_KEY', ''),
    'THAWANI_URL' => env('THAWANI_URL', "https://uatcheckout.thawani.om/"),
    'THAWANI_PUBLISHABLE_KEY' => env('THAWANI_PUBLISHABLE_KEY', ''),

    #TAP
    'TAP_CURRENCY' => env('TAP_CURRENCY',"USD"),
    'TAP_SECRET_KEY'=>env('TAP_SECRET_KEY','sk_test_XKokBfNWv6FIYuTMg5sLPjhJ'),
    'TAP_PUBLIC_KEY'=>env('TAP_PUBLIC_KEY','pk_test_EtHFV4BuPQokJT6jiROls87Y'),
    'TAP_LANG_KEY'=>env('TAP_LANG_KEY','ar'),



    #PAYMOB_WALLET (vodaphone-cash,orange-money,etisalat-cash,we-cash,meza-wallet) - test phone 01010101010 ,PIN & OTP IS 123456
    'PAYMOB_WALLET_INTEGRATION_ID'=>env('PAYMOB_WALLET_INTEGRATION_ID'),

    #Paytabs
    'PAYTABS_PROFILE_ID'  => env('PAYTABS_PROFILE_ID'),
    'PAYTABS_SERVER_KEY' =>  env('PAYTABS_SERVER_KEY'),
    // for egypt country also you can change the base url to your country 
    'PAYTABS_BASE_URL' =>   env('PAYTABS_BASE_URL',"https://secure-egypt.paytabs.com"),
    'PAYTABS_CHECKOUT_LANG' => env('PAYTABS_CHECKOUT_LANG',"AR"),
    'PAYTABS_CURRENCY'=>env('PAYTABS_CURRENCY',"EGP"),

     #Stripe
    'STRIPE_API_KEY' => env('STRIPE_API_KEY'),
    'STRIPE_API_SECRET' => env('STRIPE_API_SECRET'),
    'STRIPE_BASE_URL' => env('STRIPE_BASE_URL', 'https://api.stripe.com'),
    'STRIPE_CURRENCY' => env('STRIPE_CURRENCY', "USD"),

    'VERIFY_ROUTE_NAME' => "verify-payment",
    'APP_NAME'=>env('APP_NAME'),
];

Web.php MUST Have Route with name “payment-verify”

Route::get('/payments/verify/{payment?}',[FrontController::class,'payment_verify'])->name('payment-verify');

How To Use

use Ma\Payments\PaymobPayment;

$payment = new PaymobPayment();

//pay function
$payment->pay(
	$amount, 
	$user_id = null, 
	$user_first_name = null, 
	$user_last_name = null, 
	$user_email = null, 
	$user_phone = null, 
	$source = null
);

//or use
$payment->setUserId($id)
        ->setUserFirstName($first_name)
        ->setUserLastName($last_name)
        ->setUserEmail($email)
        ->setUserPhone($phone)
        ->setCurrency($currency)
        ->setAmount($amount)
        ->pay();

//pay function response 
[
	'payment_id'=>"", // refrence code that should stored in your orders table
	'redirect_url'=>"", // redirect url available for some payment gateways
	'html'=>"" // rendered html available for some payment gateways
]

//verify function
$payment->verify($request);

//outputs
[
	'success'=>true,//or false
    'payment_id'=>"PID",
	'message'=>"Done Successfully",//message for client
	'process_data'=>""//payment response
]

Available Classes

use Ma\Payments\Classes\FawryPayment;
use Ma\Payments\Classes\HyperPayPayment;
use Ma\Payments\Classes\KashierPayment;
use Ma\Payments\Classes\PaymobPayment;
use Ma\Payments\Classes\PayPalPayment;
use Ma\Payments\Classes\ThawaniPayment;
use Ma\Payments\Classes\TapPayment;
use Ma\Payments\Classes\OpayPayment;
use Ma\Payments\Classes\PaytabsPayment;
use Ma\Payments\Classes\PaymobWalletPayment;
use Ma\Payments\Classes\StripePayment;

Test Cards

About

Laravel Payment Gateways PayPal - Paymob - Fawry - WeAccept - Kashier - Hyperpay - Tap - Paytabs - stripe - Vodaphone Cash - Orange Money - Meza Wallet - Etisalat Cash

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published