bawes / myfatoorah-php
MyFatoorah PHP Library
Requires
- php: >=5.4.0
- ext-curl: *
This package is auto-updated.
Last update: 2024-09-29 04:49:03 UTC
README
Installation
The preferred way to install this library is through composer.
Either run
$ composer require bawes/myfatoorah-php
or add
"bawes/myfatoorah-php": "^1.0"
to the require section of your application's composer.json
file.
Usage
First we need to decide which environment we want to use
Step 1: Initialize based on the environment
Test Environment
<?php use bawes/myfatoorah/MyFatoorah; $my = MyFatoorah::test();
Live Environment
<?php use bawes/myfatoorah/MyFatoorah; $merchantCode = "[Your merchant code here]"; $username = "[Your merchant username here]"; $password = "[Your merchant password here]"; $my = MyFatoorah::live($merchantCode, $username, $password);
Step 2: Request a payment link and redirect to it
<?php use bawes/myfatoorah/MyFatoorah; $merchantCode = "[Your merchant code here]"; $username = "[Your merchant username here]"; $password = "[Your merchant password here]"; $my = MyFatoorah::live($merchantCode, $username, $password); $my->setPaymentMode(MyFatoorah::GATEWAY_ALL) ->setReturnUrl("https://google.com") ->setErrorReturnUrl("https://google.com") ->setCustomer("Khalid", "customer@email.com", "97738271") ->setReferenceId() //Pass unique order number or leave empty to use time() ->addProduct("iPhone", 5.350, 3) ->addProduct("Samsung", 12.000, 1) ->getPaymentLinkAndReference(); $paymentUrl = $my['paymentUrl']; $myfatoorahRefId = $my['paymentRef']; //good idea to store this for later status checks // Redirect to payment url header("Location: $paymentUrl"); die();
Step 3: Request Order Status for Payment status confirmation
Use MyFatoorah::getOrderStatus($referenceId)
to get an update on the status of the payment.
This is best called after receiving a callback from MyFatoorah's returnUrl or errorReturnUrl.
You can also manually call this function after an interval if you store the reference id locally.
Sample Order Status Request
<?php use bawes/myfatoorah/MyFatoorah; // Example Ref ID $myfatoorahRefId = $_GET['id']; // Order status on Test environment $orderStatus = MyFatoorah::test() ->getOrderStatus($myfatoorahRefId); // Order status on Live environment $merchantCode = "[Your merchant code here]"; $username = "[Your merchant username here]"; $password = "[Your merchant password here]"; $orderStatus = MyFatoorah::live($merchantCode, $username, $password) ->getOrderStatus($myfatoorahRefId);
Order Status Response (Success)
<?php $orderStatus = [ 'responseCode' => '0', //MyFatoorah::REQUEST_SUCCESSFUL 'responseMessage' => 'SUCCESS', 'result' => 'CAPTURED', // Successful payment fields 'payMode' => 'KNET', 'orderId' => '1085183', 'payTransactionId' => '673386261283050', 'grossAmountPaid' => '32.500', 'netAmountToBeDeposited' => '32.300', // User defined fields 'udf1' => '', 'udf2' => '', 'udf3' => '', 'udf4' => '', 'udf5' => '' ]
Order Status Response (Failure)
<?php $orderStatus = [ 'responseCode' => '2009', 'responseMessage' => 'Transaction Failed Messages', 'result' => 'Payment Server detected an error', // User defined fields 'udf1' => '', 'udf2' => '', 'udf3' => '', 'udf4' => '', 'udf5' => '' ]
Payment Gateways
Configure the gateway you wish to use by passing GATEWAY constants available on the MyFatoorah
class to MyFatoorah::setPaymentMode
.
MyFatoorah::GATEWAY_ALL
- Generated link sends to MyFatoorah page with all payment methodsMyFatoorah::GATEWAY_KNET
- Generated link sends user directly to KNET portalMyFatoorah::GATEWAY_VISA_MASTERCARD
- Generated link sends user directly to VISA/MASTER portalMyFatoorah::GATEWAY_SAUDI_SADAD
- Generated link sends user directly to Sadad Saudi portalMyFatoorah::GATEWAY_BAHRAIN_BENEFIT
- Generated link sends user directly to BENEFIT BAHRAIN portalMyFatoorah::GATEWAY_QATAR_QPAY
- Generated link sends user directly to Qpay Qatar portalMyFatoorah::GATEWAY_UAECC
- Generated link sends user directly to UAE debit cards portal
Usage Example:
<?php use bawes/myfatoorah/MyFatoorah; $my = MyFatoorah::live($merchantCode, $username, $password); $my->setPaymentMode(MyFatoorah::GATEWAY_ALL)
Test cards
These cards will only work if you initialize using MyFatoorah::test()
environment.