PHP code example of alifaraun / laravel-moamalat-pay
1. Go to this page and download the library: Download alifaraun/laravel-moamalat-pay library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
alifaraun / laravel-moamalat-pay example snippets
return [
/*
|--------------------------------------------------------------------------
| Moamalat Payment Gateway Config
|--------------------------------------------------------------------------
|
| These options to set your configurations of muamalat
|
*/
// MID => merchant_id or outlet_number
'merchant_id' => env('MOAMALATPAY_MID'),
// TID => terminal_id
'terminal_id' => env('MOAMALATPAY_TID'),
// Secure key
'key' => env('MOAMALATPAY_KEY'),
/*
|--------------------------------------------------------------------------
| Production
|--------------------------------------------------------------------------
|
| If the production is set to "true", you will work on production environment
| otherwise it will use testing environment
|
*/
'production' => env('MOAMALATPAY_PRODUCTION', false),
/*
|--------------------------------------------------------------------------
| Show
|--------------------------------------------------------------------------
|
| If the show_logs is set to "true", you will see configurations
| and response of requests in browser console
|
*/
'show_logs' => false,
/*
|--------------------------------------------------------------------------
| Generate Secure Hash api
|--------------------------------------------------------------------------
|
| This is service (api) to generate secureHash to be used in pay in Lightbox.
|
| url is route of api of generate secureHash
|
| route_name is name of route of api of generate secureHash
|
*/
'generate-securekey' => [
'url' => 'moamalat-pay/securekey',
'route_name' => 'moamalat_pay.generate_securekey',
],
/*
|--------------------------------------------------------------------------
| Notification (Webhook) api
|--------------------------------------------------------------------------
|
| This is service from moamalat on any transaction you will receive notification
| on api (webhook)
|
| key is your private notification key to use it in validate transaction requests
|
| url is route to receive notification
|
| table is name of table that will be used to save notifications
|
| allowed_ips are ips that will receive notification from them
| ['*'] means receive from any ip but it is not secure to receive notifcations from anyone
| you should ask moamalat on ips of their servers and use them
|
*/
'notification' => [
'key' => env('MOAMALATPAY_NOTIFICATION_KEY'),
'url' => 'moamalat-pay/notify',
'route_name' => 'moamalat_pay.notification',
'table' => 'moamalat_pay_notifications',
'allowed_ips' => ['*'],
]
];
// Initialize pay
app('moamalat-pay')->init();
// call pay
// $amount int libyan dirham not dinar
//$reference is optional
app('moamalat-pay')->pay(int $amount,string $reference = '');
use MoamalatPay\Transaction;
// get transaction from NPG(moamalat)
$transaction = new Transaction($networkReference, $merchantReference);
// Throws an exception if there is a problem in loading the transaction
/** available methods to interact with transaction **/
/**
* Get all properties of transaction
* @return Array
*/
$transaction->getAll();
/**
* Get property of transaction
* @param $property key
* @return mixed
*/
$transaction->get($property);
/**
* Get property of reponse , if property not exists return default value
*
* @param $property
* @param $default
* @return mixed
*/
$transaction->getWithDefault($property, $default = null);
/**
* Get all properties of reponse
* @return Array
*/
$transaction->getResponse();
/**
* Check status of transaction is Approved
*
* @param $amount
* @param $card
* @return boolean
*/
$transaction->checkApproved($amount = null, $card = null);
/*
MoamalatPay\Models\MoamalatPayNotification \\ Eloquent Model
\\ properites
id
MerchantId
TerminalId
DateTimeLocalTrxn
TxnType
Message
PaidThrough
SystemReference
NetworkReference
MerchantReference
Amount
Currency
PayerAccount
PayerName
ActionCode
request
ip
verified
created_at
*/
// filter to get approved transactions (ActionCode = 00)
MoamalatPay\Models\MoamalatPayNotification::approved()
// filter to get verified transactions (verified = 1)
MoamalatPay\Models\MoamalatPayNotification::verified()
// filter to get transactions for currency terminal_id and merchant_id in config
MoamalatPay\Models\MoamalatPayNotification::currentCredential()
// event will be fired when receive request from ip not exists in allowed_ips in config of moamalat-pay
Event::listen(function (MoamalatPay\Events\DisallowedRequestEvent $event) {
});
// event will be fired after check secureHas is unverified
Event::listen(function (MoamalatPay\Events\UnverfiedTransaction $event) {
$event->notification // Eloquent Model of transaction
});
// event will be fired after check secureHas is verified
Event::listen(function (MoamalatPay\Events\VerfiedTransaction $event) {
$event->notification // Eloquent Model of transaction
});
// event will be fired after check secureHas is verified and transaction status is approved
Event::listen(function (MoamalatPay\Events\ApprovedTransaction $event) {
$event->notification // Eloquent Model of transaction
});
// event will be fired after check secureHas is verified and transaction status is approved
// and type of transaction is : 1: Sale
Event::listen(function (MoamalatPay\Events\ApprovedSaleTransaction $event) {
$event->notification // Eloquent Model of transaction
});
// event will be fired after check secureHas is verified and transaction status is approved
// and type of transaction is : 2: Refund
Event::listen(function (MoamalatPay\Events\ApprovedRefundTransaction $event) {
$event->notification // Eloquent Model of transaction
});
// event will be fired after check secureHas is verified and transaction status is approved
// and type of transaction is : 3: Void Sale
Event::listen(function (MoamalatPay\Events\ApprovedVoidSaleTransaction $event) {
$event->notification // Eloquent Model of transaction
});
// event will be fired after check secureHas is verified and transaction status is approved
// and type of transaction is : 4: Void Refund
Event::listen(function (MoamalatPay\Events\ApprovedVoidRefundTransaction $event) {
$event->notification // Eloquent Model of transaction
});
/**
* Refund transaction by system reference of transaction
* @param string|integer $systemReference
* @param string|integer $amount
* @return array content response of moamalat
*/
app('moamalat-pay-refund')->refundBySystemReference($systemReference, $amount)->getAll()
// Throws an exception if there is a problem in refund the transaction
/**
* Refund transaction by network reference of transaction
* @param string|integer $networkReference
* @param string|integer $amount
* @return array content response of moamalat
*/
app('moamalat-pay-refund')->refundByNetworkReference($networkReference, $amount)->getAll()
// Throws an exception if there is a problem in refund the transaction
/* response : return of getAll() method
{
"Message": "Approved",
"Success": true,
"ActionCode": null,
"AuthCode": null,
"DecimalFraction": 3,
"ExternalTxnId": null,
"IsEnableRefund": false,
"MerchantReference": null,
"NetworkReference": null,
"ReceiptNumber": null,
"ReceiverAccountNumber": null,
"ReceiverName": null,
"ReceiverScheme": null,
"RefNumber": "1233678", // System reference for the new refund transaction
"SystemReference": 0,
"SystemTxnId": 0,
"TxnDate": null
}
*/
$r = app('moamalat-pay-refund')->refundBySystemReference("1233114", "10");
// or
$r = app('moamalat-pay-refund')->refundByNetworkReference("223414600869", "10");
// will return instance of MoamalatPay\Refund class
/**
* Get all properties of reponse
* @return array
*/
$r->getAll();
/* response
{
"Message": "Approved",
"Success": true,
"ActionCode": null,
"AuthCode": null,
"DecimalFraction": 3,
"ExternalTxnId": null,
"IsEnableRefund": false,
"MerchantReference": null,
"NetworkReference": null,
"ReceiptNumber": null,
"ReceiverAccountNumber": null,
"ReceiverName": null,
"ReceiverScheme": null,
"RefNumber": "1233678", // System reference for the new refund transaction
"SystemReference": 0,
"SystemTxnId": 0,
"TxnDate": null
}
*/
/**
* Get property of transaction
* @param $property key
* @return mixed
*/
$r->get($property);
$r->get('Message');
// return Approved
/**
* Get property of reponse , if property not exists return default value
*
* @param $property
* @param $default
* @return mixed
*/
$r->getWithDefault($property, $default = null);
$r->getWithDefault('Card', 'No Card');
// return No Card
/**
* Get SystemReference of new refund transaction
* @return string|integer
*/
$r->getRefNumber();
// return 1233678