PHP code example of aliirfaan / laravel-mu-qr-code

1. Go to this page and download the library: Download aliirfaan/laravel-mu-qr-code 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/ */

    

aliirfaan / laravel-mu-qr-code example snippets


  aliirfaan\LaravelMuQrCode\LaravelMuQrCodeProvider::class,



namespace App\Http\Controllers;

use Illuminate\Http\Request;

// import data objects you want to use
use aliirfaan\LaravelMuQrCode\DataObjects\RootDataObject;
use aliirfaan\LaravelMuQrCode\DataObjects\PayloadFormatIndicator;
use aliirfaan\LaravelMuQrCode\DataObjects\PointOfInitiationMethod;
use aliirfaan\LaravelMuQrCode\DataObjects\GloballyUniqueIdentifier;
use aliirfaan\LaravelMuQrCode\DataObjects\PayeeParticipantCode;
use aliirfaan\LaravelMuQrCode\DataObjects\MerchantAccountNumber;
use aliirfaan\LaravelMuQrCode\DataObjects\MerchantId;
use aliirfaan\LaravelMuQrCode\DataObjects\MuMerchantAccountInformation;
use aliirfaan\LaravelMuQrCode\DataObjects\MerchantCategoryCode;
use aliirfaan\LaravelMuQrCode\DataObjects\TransactionCurrency;
use aliirfaan\LaravelMuQrCode\DataObjects\CountryCode;
use aliirfaan\LaravelMuQrCode\DataObjects\MerchantName;
use aliirfaan\LaravelMuQrCode\DataObjects\MerchantCity;
use aliirfaan\LaravelMuQrCode\DataObjects\AdditionalDataFieldTemplate;
use aliirfaan\LaravelMuQrCode\DataObjects\BillNumber;
use aliirfaan\LaravelMuQrCode\DataObjects\ReferenceLabel;
use aliirfaan\LaravelMuQrCode\DataObjects\MobileNumber;
use aliirfaan\LaravelMuQrCode\DataObjects\PurposeOfTransaction;

class TestController extends Controller
{
    public function test(Request $request)
    {
        try {

            // create root data object
            $rootDataObject = new RootDataObject();

            // create more data objects and add to root data object
            $payloadFormatIndicator = new PayloadFormatIndicator();
            $rootDataObject->pushChildDataObject($payloadFormatIndicator);

            $pointOfInitiationMethod = new PointOfInitiationMethod();
            $pointOfInitiationMethod->setValue(11);
            $rootDataObject->pushChildDataObject($pointOfInitiationMethod);

            // MU Merchant Account Information template
            $muMerchantAccountInformation = new MuMerchantAccountInformation();

            // push to template
            $globallyUniqueIdentifier = new GloballyUniqueIdentifier();
            $globallyUniqueIdentifier->setValue('mu.taucas');
            $muMerchantAccountInformation->pushChildDataObject($globallyUniqueIdentifier);

            $payeeParticipantCode = new PayeeParticipantCode();
            $payeeParticipantCode->setValue('MSTDMXMVXXXX');
            $muMerchantAccountInformation->pushChildDataObject($payeeParticipantCode);

            $merchantAccountNumber = new MerchantAccountNumber();
            $merchantAccountNumber->setValue('01234123412');
            $muMerchantAccountInformation->pushChildDataObject($merchantAccountNumber);

            $merchantId = new MerchantId();
            $merchantId->setValue('000000000000050');
            $muMerchantAccountInformation->pushChildDataObject($merchantId);

            // push template to root data object
            $rootDataObject->pushChildDataObject($muMerchantAccountInformation);

            $merchantCategoryCode = new MerchantCategoryCode();
            $merchantCategoryCode->setValue('9222');
            $rootDataObject->pushChildDataObject($merchantCategoryCode);

            $transactionCurrency = new TransactionCurrency();
            $rootDataObject->pushChildDataObject($transactionCurrency);

            $countryCode = new CountryCode();
            $rootDataObject->pushChildDataObject($countryCode);

            $merchantName = new MerchantName();
            $merchantName->setValue('Bank of Lalaland');
            $rootDataObject->pushChildDataObject($merchantName);

            $merchantCity = new MerchantCity();
            $merchantCity->setValue('Portlouis');
            $rootDataObject->pushChildDataObject($merchantCity);

            // additional data field template
            $additionalDataFieldTemplate = new AdditionalDataFieldTemplate();
            $billNumber = new BillNumber();
            $billNumber->setValue('MCQ459789');
            $additionalDataFieldTemplate->pushChildDataObject($billNumber);

            $mobileNumber = new MobileNumber();
            $mobileNumber->setValue('52516315');
            $additionalDataFieldTemplate->pushChildDataObject($mobileNumber);

            $referenceLabel = new ReferenceLabel();
            $referenceLabel->setValue('MOM123');
            $additionalDataFieldTemplate->pushChildDataObject($referenceLabel);

            $purposeOfTransaction = new PurposeOfTransaction();
            $purposeOfTransaction->setValue('Payment of network fees');
            $additionalDataFieldTemplate->pushChildDataObject($purposeOfTransaction);

            $rootDataObject->pushChildDataObject($additionalDataFieldTemplate);

            $generateRootRepresentationResponse = $rootDataObject->generateRootRepresentation();
            dump($generateRootRepresentationResponse);

            // success response
            /*
            array(5) { 
                ["success"]=> bool(true) 
                ["result"]=> string(207) "00020101021126630009mu.taucas0112MSTDMXMVXXXX02110123412341203150000000000000505204922253034805802MU5916Bank of Lalaland6009Portlouis62620109MCQ4597890208525163150506MOM1230823Payment of network fees630492BC" 
                ["errors"]=> NULL 
                ["message"]=> NULL 
                ["issues"]=> array(0) { } 
            } 
            */

            // error response
            /*
            array(5) { 
                ["success"]=> bool(false) 
                ["result"]=> NULL 
                ["errors"]=> bool(true) 
                ["message"]=> NULL 
                ["issues"]=> array(1) { 
                    ["merchant_category_code"]=> array(1) { 
                        ["value"]=> array(1) { 
                            [0]=> string(33) "The value field must be 4 digits." 
                        } 
                    } 
                } 
            } 
            */
            
        } catch (\Exception $e) {
            report($e);
        }
    }
}