Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Multipayment Gateways Laravel Package

musahmusah/laravel-multipayment-gateways

View on GitHub
Deep Wiki
Context7

Transaction API

Handle Transaction

Stripe Payment can be handled in similar ways as Paystack Payment. The package allow you to make payment requests using the facade, helper or dependency injection.

  1. Prepare your route to handle the payment request:

    use Illuminate\Support\Facades\Route;
    use App\Http\Controllers\StripePaymentController;
    
    Route::post('/payment/stripe', [StripePaymentController::class, 'initiatePayment'])->name('payment.stripe.initiate');
    
  2. Create a controller to handle the payment request: In the controller, you can use your desired Payment Gateway to handle the payment request using the facade, helper or dependency injection

    • Create a controller to handle the payment request using Facade.

      use Illuminate\Http\Request;
      use MusahMusah\LaravelMultipaymentGateways\Facades\Stripe;
      
      class StripePaymentController extends Controller
      {
          public function initiatePayment(Request $request)
          {
              $payment = Stripe::createIntent([
                  'amount' => 1000,
                  'currency' => 'usd',
                  'payment_method_types' => ['card'],
                  'payment_method' => 'xxxxxxx',
                  'metadata' => ['custom_fields' => ['name' => 'Musah Musah']],
              ]);
      
              return $payment;
          }
      }
      
    • Create a controller to handle the payment request using Dependency Injection through the StripeContract interface.

      use Illuminate\Http\Request;
      use MusahMusah\LaravelMultipaymentGateways\Contracts\StripeContract;
      
      class StripePaymentController extends Controller
      {
          public function initiatePayment(Request $request, StripeContract $stripe)
          {
              $payment = $stripe->createIntent([
                  'amount' => 1000,
                  'currency' => 'usd',
                  'payment_method_types' => ['card'],
                  'payment_method' => 'xxxxxxx',
                  'metadata' => ['custom_fields' => ['name' => 'Musah Musah']],
              ]);
      
              return $payment;
          }
      }
      
    • Create a controller to handle the payment request using Helper.

      use Illuminate\Http\Request;
      
      class StripePaymentController extends Controller
      {
          public function initiatePayment(Request $request)
          {
              $payment = stripe()->createIntent([
                  'amount' => 1000,
                  'currency' => 'usd',
                  'payment_method_types' => ['card'],
                  'payment_method' => 'xxxxxxx',
                  'metadata' => ['custom_fields' => ['name' => 'Musah Musah']],
              ]);
      
              return $payment;
          }
      }
      

The createIntent method will create a payment intent and return the client secret to be used in the frontend to confirm the payment. In addition, the package also provides a method to confirm the payment intent. You can confirm the payment intent in the following ways:

  1. Prepare your route to handle the payment confirmation request:

    use Illuminate\Support\Facades\Route;
    use App\Http\Controllers\StripePaymentController;
    
    Route::post('/payment/stripe/confirm', [StripePaymentController::class, 'confirmPayment'])->name('payment.stripe.confirm');
    
  2. Create a controller to handle the payment confirmation request using Facade:

    use Illuminate\Http\Request;
    use MusahMusah\LaravelMultipaymentGateways\Facades\Stripe;
    
    class StripePaymentController extends Controller
    {
        public function confirmPayment(Request $request)
        {
            $payment = Stripe::confirmIntent($request->payment_intent_id);
    
            if ($payment->status === 'succeeded') {
                // Payment was successful
            }
    
            return $payment;
        }
    }
    

    The confirmIntent method will confirm the payment intent and return the payment response. This can also be done using the helper or dependency injection.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
elnasnato/laraliveui
labrodev/rest-sdk
sampaui/sampaui
babelqueue/php-sdk
facebook/capi-param-builder-php
babelqueue/symfony
hamzi/corewatch
minionfactory/raw-hydrator
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui
devgeek/beacon-admin
benjamin-rqt/data-watcher-bundle
atriumphp/atrium