1. Go to this page and download the library: Download ibnnajjaar/mib-global-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/ */
use IbnNajjaar\MIBGlobalPay\MIBGlobalPayConnector;
$connector = new MIBGlobalPayConnector($merchant_portal_url, $merchant_id, $api_password);
// .env file
MIB_MERCHANT_URL=sandbox.gateway.mastercard.com
MIB_MERCHANT_ID=your_merchant_id
MIB_API_PASSWORD=your_api_password
// In your code
$connector = new MIBGlobalPayConnector(
$_ENV['MIB_MERCHANT_URL'],
$_ENV['MIB_MERCHANT_ID'],
$_ENV['MIB_API_PASSWORD']
);
// Minimum = 'order123';
$amount = 100.00;
$payment_details = OrderData::make($order_id, $amount);
// You can chain methods to set other information. All available methods are as follows:
$payment_details->setOrderCurrency('MVR')
->setOrderDescription('Test Order')
->setMerchantAddressLine1('Sample, Majeedhee Magu')
->setMerchantEmail('[email protected]')
->setMerchantLogo('https://example.mv/logo.svg')
->setMerchantName('Merchant Name')
->setMerchantPhone('1234567890')
->setMerchantUrl('https://example.mv')
// Return URL is important though not
use IbnNajjaar\MIBGlobalPay\Requests\DataObjects\OrderData;
try {
$response = $connector->createTransaction($payment_details);
$response_data = $response->toDto();
$session_id = $response_data->getSessionId();
$success_indicator = $response_data->getSuccessIndicator();
// Store success indicator for later verification
// You may store it in your transaction or order record.
// This will be used later to verify payment
} catch (Exception $e) {
// Handle error appropriately
echo $e->getMessage();
}
// Get the result indicator from the redirect
$return_data = HostedCheckoutReturnData::fromArray($_GET);
$result_indicator = $return_data->getResultIndicator();
// Retrieve the stored success indicator
// Verify payment result
if ($result_indicator && $result_indicator == $success_indicator) {
// Payment was successful
// Normally you should make a GET request to get order details
// to confirm the payment before marking the order as paid
echo "Payment was successful!";
} else {
// Payment failed or was cancelled
echo "Payment was not successful.";
}
$order_reference = 'order_12345'; // Use the order ID you saved earlier
try {
$response = $connector->getOrderDetails($order_reference);
$response_data = $response->toDto();
// Available methods on dto
$response_data->getOrderStatus();
$response_data->getTotalCapturedAmount();
$response_data->getTransactions();
$response_data->getRawResponse();
$response_data->paymentSuccessfullyCaptured();
// To mark the order as paid
if ($response_data->paymentSuccessfullyCaptured()) {
// Mark order as paid
}
} catch (Exception $e) {
error_log('Failed to retrieve payment status: ' . $e->getMessage());
echo "Could not retrieve payment status.";
}
$webhook_data = WebhookResponseData::fromArray($_POST, getallheaders());
// Available methods: returns all strings or null
$webhook_data->getOrderReference();
$webhook_data->getOrderAmount(); // returns float|null
$webhook_data->getOrderCurrency();
$webhook_data->getOrderStatus();
$webhook_data->getNotificationSecret();
$webhook_data->getResult();
$webhook_data->getGatewayCode();
$webhook_data->getRawResponse();
$webhook_data->paymentIsSuccessful(); // returns a boolean