<?php
namespace Faker\Provider\ms_MY;
class Miscellaneous extends \Faker\Provider\Miscellaneous
{
/**
* @see https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Malaysia
*/
protected static $jpjNumberPlateFormats = [
'{{peninsularPrefix}}{{validAlphabet}}{{validAlphabet}} {{numberSequence}}',
'{{peninsularPrefix}}{{validAlphabet}}{{validAlphabet}} {{numberSequence}}',
'{{peninsularPrefix}}{{validAlphabet}}{{validAlphabet}} {{numberSequence}}',
'{{peninsularPrefix}}{{validAlphabet}}{{validAlphabet}} {{numberSequence}}',
'W{{validAlphabet}}{{validAlphabet}} {{numberSequence}} {{validAlphabet}}',
'KV {{numberSequence}} {{validAlphabet}}',
'{{sarawakPrefix}} {{numberSequence}} {{validAlphabet}}',
'{{sabahPrefix}} {{numberSequence}} {{validAlphabet}}',
'{{specialPrefix}} {{numberSequence}}',
];
/**
* Some alphabet has higher frequency that coincides with the current number
* of registrations. E.g. W = Wilayah Persekutuan
*
* @see https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Malaysia#Current_format
*/
protected static $peninsularPrefix = [
'A', 'A', 'B', 'C', 'D', 'F', 'J', 'J', 'K', 'M', 'N', 'P', 'P', 'R', 'T', 'V',
'W', 'W', 'W', 'W', 'W', 'W',
];
/**
* @see https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Malaysia#Current_format_2
*/
protected static $sarawakPrefix = [
'QA', 'QK', 'QB', 'QC', 'QL', 'QM', 'QP', 'QR', 'QS', 'QT',
];
/**
* @see https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Malaysia#Current_format_3
*/
protected static $sabahPrefix = [
'SA', 'SAA', 'SAB', 'SAC', 'SB', 'SD', 'SG',
'SK', 'SL', 'SS', 'SSA', 'ST', 'STA', 'SU',
];
/**
* @see https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Malaysia#Commemorative_plates
*/
protected static $specialPrefix = [
'1M4U',
'A1M',
'BAMbee',
'Chancellor',
'G', 'G1M', 'GP', 'GT',
'Jaguh',
'K1M', 'KRISS',
'LOTUS',
'NAAM', 'NAZA', 'NBOS',
'PATRIOT', 'Perdana', 'PERFECT', 'Perodua', 'Persona', 'Proton', 'Putra', 'PUTRAJAYA',
'RIMAU',
'SAM', 'SAS', 'Satria', 'SMS', 'SUKOM',
'T1M', 'Tiara', 'TTB',
'U', 'US',
'VIP',
'WAJA',
'XIIINAM', 'XOIC', 'XXVIASEAN', 'XXXIDB',
'Y',
];
/**
* Chances of having an empty alphabet will be 1/24
*
* @see https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Malaysia#Current_format
*/
protected static $validAlphabets = [
'A', 'B', 'C', 'D', 'E', 'F',
'G', 'H', 'J', 'K', 'L', 'M',
'N', 'P', 'Q', 'R', 'S', 'T',
'U', 'V', 'W', 'X', 'Y', '',
];
/**
* Return a valid Malaysia JPJ(Road Transport Department) vehicle licence plate number
*
* @example 'WKN 2368'
*
* @return string
*/
public function jpjNumberPlate()
{
$formats = static::toUpper(static::lexify(static::bothify(static::randomElement(static::$jpjNumberPlateFormats))));
return $this->generator->parse($formats);
}
/**
* Return Peninsular prefix alphabet
*
* @example 'W'
*
* @return string
*/
public static function peninsularPrefix()
{
return static::randomElement(static::$peninsularPrefix);
}
/**
* Return Sarawak state prefix alphabet
*
* @example 'QA'
*
* @return string
*/
public static function sarawakPrefix()
{
return static::randomElement(static::$sarawakPrefix);
}
/**
* Return Sabah state prefix alphabet
*
* @example 'SA'
*
* @return string
*/
public static function sabahPrefix()
{
return static::randomElement(static::$sabahPrefix);
}
/**
* Return specialty licence plate prefix
*
* @example 'G1M'
*
* @return string
*/
public static function specialPrefix()
{
return static::randomElement(static::$specialPrefix);
}
/**
* Return a valid license plate alphabet
*
* @example 'A'
*
* @return string
*/
public static function validAlphabet()
{
return static::randomElement(static::$validAlphabets);
}
/**
* Return a valid number sequence between 1 and 9999
*
* @example '1234'
*
* @return int
*/
public static function numberSequence()
{
return self::numberBetween(1, 9999);
}
}
Initiates a new payment transaction.
create-order
| Parameter | Type | Details |
|---|---|---|
| amount | decimal | Your Amount , Must be rounded at 2 precision. |
| currency | string | Currency Code, Must be in Upper Case (Alpha-3 code) |
| success_url | string | Enter your return or success URL |
| cancel_url | string (optional) | Enter your cancel or failed URL |
Request Example (guzzle)
<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', $base_url.'create-order', [
'headers' => [
'Authorization' => 'Bearer '. $authorizationToken,
'accept' => 'application/json',
'content-type' => 'application/json',
],
'form_params' => [
'amount' => '$amount',
'currency' => 'currency',
'success_url' => 'success_url',
'cancel_url' => 'cancel_url',
],
]);
echo $response->getBody();
**Response: SUCCESS (200 OK)**
{
"message": {
"success": [
"Order created successfully."
]
},
"data": {
"redirect_url":"https://example.com/login/OISADFDFSDFSF",
"order_details":{
"amount" : "10",
"fixed_charge" : 2,
"percent_charge" : 1,
"total_charge" : 3,
"total_payable" : 13,
"currency" : "USD",
"expiry_time": "2024-04-25T06:48:35.984285Z",
"success_url": "http://127.0.0.1/nfcpay/user/transaction/success",
"cancel_url": "http://127.0.0.1/nfcpay/user/transaction/cancel"
}
},
"type": "success"
}
**Response: ERROR (400 FAILED)**
{
"message": {
"error": [
"Invalid token."
]
},
"data": null,
"type": "error"
}