Skip to content
This repository has been archived by the owner on May 27, 2024. It is now read-only.

ctf0/laravel-paymob

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Dec 23, 2020
674eafc · Dec 23, 2020

History

2 Commits
Dec 23, 2020
Dec 23, 2020
Dec 23, 2020
Dec 18, 2020
Dec 23, 2020
Dec 23, 2020

Repository files navigation

Laravel PayMob
Latest Stable Version Total Downloads

Paymob integration for laravel.

Currently Supported

Installation

  • install the package

    composer require ctf0/laravel-paymob
  • publish the package assets with

    php artisan vendor:publish --provider="ctf0\PayMob\PayMobServiceProvider"

Config


Setup

  • add the package routes to your routes/web.php ex.

    Route::group([
        'prefix'     => 'orders',
        'as'         => 'order.',
        'middleware' => 'auth',
    ], function () {
        ctf0\PayMob\PayMobRoutes::routes();
    });
  • add Billable to the model you will be billing.

  • next add getBillingData() which should return all the required fields for the order creation, check paymob requirements for more info.

    • all the optional fields has already been taken care of.
    use ctf0\PayMob\Integrations\Contracts\Billable;
    
    class Client implements Billable
    {
        // ...
    
        public function getBillingData(): array
        {
            return [
                'email'        => $this->email,
                'first_name'   => $this->first_name,
                'last_name'    => $this->last_name,
                'street'       => $this->address,
                'phone_number' => $this->phone_number,
            ];
        }
    }

Usage

# Normal

  • update controller with your own controller, which should have 3 methods

    you can check DummyController for a more detailed overview.

    type @method return
    GET checkOut returns the view where the user will press the checkout btn
    POST process get the selected payment type & make a request to paymob server
    GET complete check for the transaction hmac & save it to your server, for more info check.

# Refund

  • all you need to is to call PayMob::refund and pass to it the transaction_id & amount_in_pounds that will be refunded, ex.

    for more info check

    PayMob::refund(655, 10);