composer require revenuemonster/sdk
- 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
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();
}
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......
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();
}
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();
}
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();
}
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();
}