ma-lara / payments
Payment helper for Paypal, Paymob, Kashier, Hyperpay and Fawry
v0.1
2024-04-18 19:04 UTC
Requires
- php: >=7.0
- ext-curl: *
- ext-json: *
- laravel/framework: >=6.0
- paypal/paypal-checkout-sdk: 1.0.2
- stripe/stripe-php: *
README
Payment Helper of Payment Gateways ( PayPal - Paymob - Fawry - WeAccept - Kashier - Hyperpay - Tap - Paytabs - stripe - Vodaphone Cash - Orange Money - Meza Wallet - Etisalat Cash)
Supported gateways
- PayPal
- PayMob
- Kashier
- Fawry
- HyperPay
- Thawani
- Stripe
- Tap
- Paytabs
- E Wallets (Vodaphone Cash - Orange Money - Meza Wallet - Etisalat Cash)
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;