Commit 6ab56e3b by irul

Menambahkan fake-api untuk samsat-banten

1 parent 59178878
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
// Autoload files using composer // Autoload files using composer
require_once __DIR__ . '/vendor/autoload.php'; require_once __DIR__ . '/vendor/autoload.php';
require_once __DIR__ . '/rpc/samsat-banten.php';
// Use this namespace // Use this namespace
use Steampixel\Route; use Steampixel\Route;
......
<?php
// irul @ 20200515
/**
* fake samsat-banten
*/
class SamsatBanten
{
public function __construct()
{
$rpc = new JsonRPC\Server();
$rpc->getProcedureHandler()
->withCallback('get_tagihan', function ($data) {
return call_user_func('SamsatBanten::get_tagihan', $data);
})
->withCallback('get_kd_bayar', function ($data) {
return call_user_func('SamsatBanten::get_kd_bayar', $data);
})
->withCallback('inquiry', function ($data) {
return call_user_func('SamsatBanten::inquiry', $data);
})
->withCallback('payment', function ($data) {
return call_user_func('SamsatBanten::payment', $data);
})
->withCallback('reversal', function ($data) {
return call_user_func('SamsatBanten::reversal', $data);
})
->withCallback('reprint', function ($data) {
return call_user_func('SamsatBanten::reprint', $data);
});
echo $rpc->execute();
}
private static function get_tagihan($payload)
{
// PAYLOAD:
// {
// "params": {
// "data": {
// "kd_bank": "110",
// "kd_channel": "6010",
// "kd_produk": 4,
// "kd_biller": "0001",
// "no_polisi": "A-1259-AV"
// }
// },
// "jsonrpc": "2.0",
// "method": "get_tagihan",
// "id": 1
// }
return self::fake_data($payload);
}
private static function get_kd_bayar($payload)
{
// PAYLOAD:
// {
// "params": {
// "data": {
// "kd_bank": "110",
// "kd_channel": "6010",
// "kd_produk": 4,
// "kd_biller": "0001",
// "no_polisi": "A-5247-HV",
// "no_identitas": "3673200304950001",
// "no_rangka": "MHBJ2CH2FGJ-015773"
// }
// },
// "jsonrpc": "2.0",
// "method": "get_kd_bayar",
// "id": 1
// }
return self::fake_data($payload);
}
private static function inquiry($payload)
{
// PAYLOAD:
// {
// "params": {
// "data": {
// "kd_bank": "110",
// "kd_channel": "6010",
// "kd_produk": 4,
// "kd_biller": "0001",
// "invoice_no": "123456"
// }
// },
// "jsonrpc": "2.0",
// "method": "inquiry",
// "id": 1
// }
return self::fake_data($payload);
}
private static function payment($payload)
{
// PAYLOAD:
// {
// "params": {
// "data": {
// "kd_bank": "110",
// "kd_channel": "6010",
// "kd_produk": 4,
// "kd_biller": "0001",
// "invoice_no": "123456",
// "amount": 100123,
// "ntb": "NTB123456",
// "tgl_transaksi": "2020-01-23",
// "jam_transaksi": "00:11:22"
// }
// },
// "jsonrpc": "2.0",
// "method": "payment",
// "id": 1
// }
return self::fake_data($payload);
}
private static function reversal($payload)
{
// PAYLOAD:
// {
// "params": {
// "data": {
// "kd_bank": "110",
// "kd_channel": "6010",
// "kd_produk": 4,
// "kd_biller": "0001",
// "invoice_no": "123456",
// "ntb": "NTB123456",
// "tgl_transaksi": "2020-01-23",
// "jam_transaksi": "00:11:22",
// "ntp": "NTP123456"
// }
// },
// "jsonrpc": "2.0",
// "method": "reversal",
// "id": 1
// }
return self::fake_data($payload);
}
private static function reprint($payload)
{
// PAYLOAD:
// {
// "params": {
// "data": {
// "kd_bank": "110",
// "kd_channel": "6010",
// "kd_produk": 4,
// "kd_biller": "0001",
// "invoice_no": "123456",
// "ntb": "NTB123456",
// "tgl_transaksi": "2020-01-23",
// "jam_transaksi": "00:11:22",
// "ntp": "NTP123456"
// }
// },
// "jsonrpc": "2.0",
// "method": "reprint",
// "id": 1
// }
return self::fake_data($payload);
}
private static function fake_data($payload)
{
$faker = Faker\Factory::create();
$pokok_pkb = $faker->numberBetween(123, 999) * 100;
$pokok_swd = $faker->numberBetween(1, 99) * 100;
$jumlah = $pokok_pkb + $pokok_swd;
$fake_response = array(
'kd_bank' => isset($payload['kd_bank']) ? $payload['kd_bank'] : 'kd_bank',
'kd_channel' => isset($payload['kd_channel']) ? $payload['kd_channel'] : 'kd_channel',
'kd_produk' => isset($payload['kd_produk']) ? $payload['kd_produk'] : 'kd_produk',
'kd_biller' => isset($payload['kd_biller']) ? $payload['kd_biller'] : 'kd_biller',
'no_polisi' => isset($payload['no_polisi']) ? $payload['no_polisi'] : 'no_polisi',
'kd_plat' => isset($payload['kd_plat']) ? $payload['kd_plat'] : 'kd_plat',
'pokok_bbn' => 0,
'denda_bbn' => 0,
'pokok_pkb' => $pokok_pkb,
'denda_pkb' => 0,
'pokok_swd' => $pokok_swd,
'denda_swd' => 0,
'pokok_adm_stnk' => 0,
'pokok_adm_tnkb' => 0,
'admin' => 0,
'jumlah' => $jumlah,
'jatuh_tempo' => '20200506',
'nm_wp' => strtoupper($faker->name),
'jln_wp' => strtoupper($faker->address),
'no_identitas' => $faker->creditCardNumber(),
'nm_op' => 'DATSUN',
'jenis_op' => 'MINIBUS',
'model_op' => 'GO PANCA T 1.2 M/T',
'no_rangka' => 'MHBJ2CH2FGJ-015773',
'no_mesin' => 'HR12-761493T',
'no_identita' => '',
'warna_tnkb' => $faker->randomElement(array('MERAH', 'KUNING', 'ABU-ABU', 'HIJAU', 'BIRU', 'HITAM')),
'milik_ke' => 1,
'tahun_produksi' => $faker->date('Y'),
'tgl_lama' => '20200620',
'tgl_baru' => '20210620',
'tgl_akhir_stnk' => '20210620',
);
foreach ($payload as $key => $value) {
if (!array_key_exists($key, $fake_response)) {
$fake_response[$key] = $value;
}
}
$fake_response = array_merge($fake_response, array(
'keterangan' => 'SUKSES',
'reserved_01' => '01',
));
return array('data' => $fake_response);
}
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!