2017 © Pedro Peláez
 

library laravel-payfort

Laravel-payfort is a simple package to process payments throught Payfort payment gateway.

image

wshurafa/laravel-payfort

Laravel-payfort is a simple package to process payments throught Payfort payment gateway.

  • Saturday, June 30, 2018
  • by wshurafa
  • Repository
  • 1 Watchers
  • 9 Stars
  • 275 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 4 Forks
  • 2 Open issues
  • 3 Versions
  • 76 % Grown

The README.md

Laravel Payfort Package

Software License, (*1)

Laravel Payfort provides a simple and rich way to perform and handle operations for Payfort (MEA based online payment gateway) check here to read more Payfort.
This package supports a set of Payfort operations as listed below, other operations are open for future work and contribution., (*2)

  • AUTHORIZATION/PURCHASE
  • TOKENIZATION
  • SDK_TOKEN
  • CHECK_STATUS

You have to read the Payfort documentation very well before proceeding in using any package, the package author will not write about Payfort operations, what and how to use., (*3)

Installation

You can install the package via composer:, (*4)

composer require wshurafa/laravel-payfort

You can publish the config file with:, (*5)

php artisan vendor:publish --provider "LaravelPayfort\Providers\PayfortServiceProvider"

This is the contents of the file that will be published at config/payfort.php :, (*6)

return [
    /**
     * Defines wether to activate the Payfort sandbox enviroment or not.
     */
    'sandbox' => env('PAYFORT_USE_SANDBOX', false),

    /**
     * The Payfort merchant account identifier.
     */
    'merchant_identifier' => env('PAYFORT_MERCHANT_IDENTIFIER'),

    /**
     * The Payfort account access code.
     */
    'access_code' => env('PAYFORT_ACCESS_CODE'),

    /**
     * The Payfort account sha type (sha256/sha512).
     */
    'sha_type' => env('PAYFORT_SHA_TYPE', 'sha256'),

    /**
     * The Payfort account sha request phrase.
     */
    'sha_request_phrase' => env('PAYFORT_SHA_REQUEST_PHRASE'),

    /**
     * The Payfort account sha response phrase.
     */
    'sha_response_phrase' => env('PAYFORT_SHA_RESPONSE_PHRASE'),

    /**
     * The default currency for you app. Currency ISO code 3.
     */
    'currency' => env('PAYFORT_CURRENCY', 'USD'),

    /**
     * The URL to return after submitting Payfort forms.
     */
    'return_url' => env('PAYFORT_RETURN_URL', '/')
];
 ```

### Then you have to add the following constants in the `.env` file:

```bash
PAYFORT_USE_SANDBOX=true                      # Defines wether to activate the payfort sandbox enviroment or not.
PAYFORT_MERCHANT_IDENTIFIER=s2b3rj1vrjrhc1x   # The payfort merchant account identifier
PAYFORT_ACCESS_CODE=s31bpM1ebfNnwqo           # The payfort account access code
PAYFORT_SHA_TYPE=sha256                       # The payfort account sha type. sha256/sha512
PAYFORT_SHA_REQUEST_PHRASE=keljhgiergh        # The payfort account sha request phrase
PAYFORT_SHA_RESPONSE_PHRASE=lkejgoegj         # The payfort account sha response phrase
PAYFORT_CURRENCY=USD                          # The default currency for you app. Currency ISO code 3.
PAYFORT_RETURN_URL=/payfort/handle            # The url to return after submitting payfort forms.

You can find most of these values in your Payfort account, (*7)

Usage

Once all configuration steps are done, you are ready to use payfort operations in your app. Here is some examples on how to use this package:, (*8)

Authorization/Purchase request (Redirection)

To display payfort authorization or purchase page, in your controller's method add the following code snippet:, (*9)

return Payfort::redirection()->displayRedirectionPage([
    'command' => 'AUTHORIZATION',              # AUTHORIZATION/PURCHASE according to your operation.
    'merchant_reference' => 'ORDR.34562134',   # You reference id for this operation (Order id for example).
    'amount' => 100,                           # The operation amount.
    'currency' => 'QAR',                       # Optional if you need to use another currenct than set in config.
    'customer_email' => 'example@example.com'  # Customer email.
]); 

Other optional parameters that can be passed to displayRedirectionPage method as follows: * token_name * payment_option * sadad_olp * eci * order_description * customer_ip * customer_name * merchant_extra * merchant_extra1 * merchant_extra2 * merchant_extra3, (*10)

Payfort page will be displayed and once user submits the payment form, the return url defined in the environment configurations will be called., (*11)

See Payfort documentation for more info., (*12)

Tokenization request

To display payfort tokenization page, in your controller's method add the following code snippet:, (*13)

return Payfort::redirection()->displayTokenizationPage([
    'merchant_reference' => 'ORDR.34562134',   # You reference id for this operation (Order id for example).
]); 

Payfort page will be displayed and once user submits the payment form, the return url defined in the config file will be called., (*14)

See Payfort documentation for more info., (*15)

Handling Payfort Authorization/Purchase response

Handling callback (return)

In your handling controller that handle the return url, you can simply use the PayfortResponse trait as follows:, (*16)

use LaravelPayfort\Traits\PayfortResponse as PayfortResponse;

class PayfortOrdersController extends Controller{
    use PayfortResponse;

    public function processReturn(Request $request){
        $payfort_return = $this->handlePayfortCallback($request);
        # Here you can process the response and make your decision.
        # The response structure is as described in payfort documentation
    }
}

See Payfort documentation for more info., (*17)

Handling Direct Transaction Feedback

Same as handling payfort response except that you have to call handlePayfortFeedback instead of handlePayfortCallback, (*18)

Localization

The redirect page can be translated by simply using the json file of the language wihtin the lang directory of your app., (*19)

For example, ar.json file:, (*20)

{
    ...
    "Payment redirect page": "صفحة إعادة توجيه الدفع",
    "Click here to proceed to payment if you are not automatically redirected": "انقر هنا لمتابعة الدفع إذا لم تتم إعادة توجيهك تلقائيًا",
    ...
}

Contribution

Want to improve this package or found a bug ?. Open an issue or do this contribution by yourself and get this honor., (*21)

Simply, fork => do you work => make pull request., (*22)

Write clear comments and description ;-)., (*23)

License

Laravel Payfort is open-sourced software licensed under the MIT license, (*24)

The Versions

30/06 2018

dev-develop

dev-develop

Laravel-payfort is a simple package to process payments throught Payfort payment gateway.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Wael AlShurafa

payment http payfort laravel payfort

30/06 2018

dev-master

9999999-dev

Laravel-payfort is a simple package to process payments throught Payfort payment gateway.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Wael AlShurafa

payment http payfort laravel payfort

18/10 2017

dev-fix-merchant-page-auto-submit

dev-fix-merchant-page-auto-submit

Laravel-payfort is a simple package to process payments throught Payfort payment gateway.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Wael AlShurafa

payment http payfort laravel payfort