revenuemonster / sdk
A PHP SDK for RevenueMonster APIs
Installs: 5 250
Dependents: 1
Suggesters: 0
Security: 0
Stars: 4
Watchers: 6
Forks: 10
Open Issues: 4
Requires
- php: ^8.0
- illuminate/collections: ^11.24
- nategood/httpful: ^1.0
- rakit/validation: ^1.4.0
README
🪣 Minimum Requirements
🔨 Installation
composer require revenuemonster/sdk
📻 Legacy Support
✨ Covered Functions
- Client Credentials (Authentication)
- Refresh Token (Authentication)
- Get Merchant Profile
- Get Merchant Subscriptions
- Get Stores
- Get Stores By ID
- Create Store
- Update Store
- Delete Store
- Get User Profile
- Payment (Transaction QR) - Create Transaction QRCode/URL
- Payment (Transaction QR) - Get Transaction QRCode/URL
- Payment (Transaction QR) - Get Transaction QRCode/URL By Code
- Payment (Transaction QR) - Get Transactions By Code
- Payment (Quick Pay) - Payment
- Payment (Quick Pay) - Refund
- Payment (Quick Pay) - Reverse
- Payment (Quick Pay) - Get All Payment Transactions
- Payment (Quick Pay) - Get All Payment Transaction By ID
- Payment (Quick Pay) - Daily Settlement Report
- Payment (Checkout) - Create Web/Mobile Payment (New UI support)
- Give Loyalty Point
- Get Loyalty Members
- Get Loyalty Member
- Get Loyalty Member Point History
- Issue Voucher
- Void Voucher
- Get Voucher By Code
- Get Voucher Batches
- Get Voucher Batch By Key
- Send Notification (Merchant)
- Send Notification (Store)
- Send Notification (User)
- eKYC - Mykad Prediction
- eKYC - Face Verification
📝 Examples
require __DIR__.'/vendor/autoload.php'; use RevenueMonster\SDK\RevenueMonster; use RevenueMonster\SDK\Exceptions\ApiException; use RevenueMonster\SDK\Exceptions\ValidationException; use RevenueMonster\SDK\Request\WebPayment; use RevenueMonster\SDK\Request\QRPay; use RevenueMonster\SDK\Request\QuickPay; // Initialise sdk instance $rm = new RevenueMonster([ 'clientId' => '5499912462549392881', 'clientSecret' => 'pwMapjZzHljBALIGHxfGGXmiGLxjWbkT', 'privateKey' => file_get_contents(__DIR__.'/private_key.pem'), 'isSandbox' => false, ]); // Get merchant profile try { $response = $rm->merchant->profile(); } catch(ApiException $e) { echo "statusCode : {$e->getCode()}, errorCode : {$e->getErrorCode()}, errorMessage : {$e->getMessage()}"; } catch(Exception $e) { echo $e->getMessage(); } // Get merchant subscriptions try { $response = $rm->merchant->subscriptions(); } catch(ApiException $e) { echo "statusCode : {$e->getCode()}, errorCode : {$e->getErrorCode()}, errorMessage : {$e->getMessage()}"; } catch(Exception $e) { echo $e->getMessage(); } // Get merchant's stores try { $response = $rm->store->paginate(10); } catch(ApiException $e) { echo "statusCode : {$e->getCode()}, errorCode : {$e->getErrorCode()}, errorMessage : {$e->getMessage()}"; } catch(Exception $e) { echo $e->getMessage(); } // Get transactions by QR Code try { $qrCode = '732eb1e935983d274695f250dee9eb75'; $response = $rm->payment->transactionsByQrCode($qrCode); } catch(ApiException $e) { echo "statusCode : {$e->getCode()}, errorCode : {$e->getErrorCode()}, errorMessage : {$e->getMessage()}"; } catch(Exception $e) { echo $e->getMessage(); } // Get transactions try { $response = $rm->payment->paginate(5); } catch(ApiException $e) { echo "statusCode : {$e->getCode()}, errorCode : {$e->getErrorCode()}, errorMessage : {$e->getMessage()}"; } catch(Exception $e) { echo $e->getMessage(); } // Find transaction by transaction id try { $transactionId = '100922222732432874823'; $response = $rm->payment->find($transactionId); } catch(ApiException $e) { echo "statusCode : {$e->getCode()}, errorCode : {$e->getErrorCode()}, errorMessage : {$e->getMessage()}"; } catch(Exception $e) { echo $e->getMessage(); } // Find transaction by order id try { $orderId = '1234'; $response = $rm->payment->findByOrderId($orderId); } catch(ApiException $e) { echo "statusCode : {$e->getCode()}, errorCode : {$e->getErrorCode()}, errorMessage : {$e->getMessage()}"; } catch(Exception $e) { echo $e->getMessage(); } // create QR pay try { $qrPay = new QRPay(); $qrPay->currencyType = 'MYR'; $qrPay->amount = 100; $qrPay->isPreFillAmount = true; $qrPay->order->title = '服务费'; $qrPay->order->detail = 'testing'; $qrPay->method = []; $qrPay->redirectUrl = 'https://shop.v1.mamic.asia/app/index.php?i=6&c=entry&m=ewei_shopv2&do=mobile&r=order.pay_rmwxpay.complete&openid=ot3NT0dxs4A8h4sVZm-p7q_MUTtQ&fromwechat=1'; $qrPay->storeId = '1553067342153519097'; $qrPay->type = 'DYNAMIC'; $response = $rm->payment->qrPay($qrPay); } catch(ApiException $e) { echo "statusCode : {$e->getCode()}, errorCode : {$e->getErrorCode()}, errorMessage : {$e->getMessage()}"; } catch(Exception $e) { echo $e->getMessage(); } // create Web payment try { $wp = new WebPayment; $wp->order->id = '10020'; $wp->order->title = 'Testing Web Payment'; $wp->order->currencyType = 'MYR'; $wp->order->amount = 100; $wp->order->detail = ''; $wp->order->additionalData = ''; $wp->storeId = "1553067342153519097"; $wp->redirectUrl = 'https://google.com'; $wp->notifyUrl = 'https://google.com'; $wp->layoutVersion = 'v1'; $response = $rm->payment->createWebPayment($wp); echo $response->checkoutId; // Checkout ID echo $response->url; // Payment gateway url } catch(ApiException $e) { echo "statusCode : {$e->getCode()}, errorCode : {$e->getErrorCode()}, errorMessage : {$e->getMessage()}"; } catch(ValidationException $e) { var_dump($e->getMessage()); } catch(Exception $e) { echo $e->getMessage(); } // create Quick pay try { $qp = new QuickPay; $qp->authCode = '281011026026517778602435'; $qp->order->id = '443'; $qp->order->title = '【原味系列】 猫山王榴'; $qp->order->currencyType = 'MYR'; $qp->order->amount = 10; $qp->order->detail = ''; $qp->order->additionalData = 'SH20190819100656262762'; $qp->ipAddress = '8.8.8.8'; $qp->storeId = "1553067342153519097"; $response = $rm->payment->quickPay($qp); } catch(ApiException $e) { echo "statusCode : {$e->getCode()}, errorCode : {$e->getErrorCode()}, errorMessage : {$e->getMessage()}"; } catch(ValidationException $e) { var_dump($e->getMessage()); } catch(Exception $e) { echo $e->getMessage(); }
eKYC Module
The Revenue Monster eKYC (Electronic Know Your Customer) module provides features to complete the onboarding experience.
All the methods in this module accepts only the data portion in a base64 data url.
For example, you might have a base64 string as below, just send us the data part.
Format - data:[<mediatype>][;base64],<data>
Example - data:image/jpeg;base64,/9j/4AAQSkZJRgABAQE......
Data Portion - /9j/4AAQSkZJRgABAQE......
eKYC MyKad
This method will accept a mykad image and return a request ID to be used in the liveness SDK.
try { $mykad = new EkycMyKad(); $mykad->base64Image = file_get_contents(__DIR__.'/mykad.txt'); $response = $rm->ekyc->call($mykad); } catch(Exception $e) { echo $e->getMessage(); }
Face Verification
This method will recognize and verify if the human face present on 2 images are the same person or not.
try { $image = file_get_contents(__DIR__.'/face.txt'); $face = new VerifyFace(); $face->base64Image1 = $image; // image 1 $face->base64Image2 = $image; // image 2 $response = $rm->ekyc->call($face); } catch(Exception $e) { echo $e->getMessage(); }
Get eKYC Result
This method accepts the ekycId
parameter returned from the Liveness SDK. It will return the complete eKYC result.
try { $request = new EkycGetResult(); $request->id = "62201d52239b18052126e289"; $ekycResult = $rm->ekyc->call($request); } catch(Exception $e) { echo $e->getMessage(); }
Get MyKad Result
This method accepts the id
parameter returned from the EkycMyKad
method, or mykadRequestId
parameter from the EkycGetResult
method. It will return the complete data recognized from the MyKad.
try { $request = new EkycGetMyKadResult(); $request->id = $ekycResult->mykadRequestId; $response = $rm->ekyc->call($request); } catch(Exception $e) { echo $e->getMessage(); }