diff --git a/system/autoload/PGDuitku.php b/system/autoload/PGDuitku.php new file mode 100644 index 00000000..c5af3363 --- /dev/null +++ b/system/autoload/PGDuitku.php @@ -0,0 +1,45 @@ +user = $user; + $this->trx = $trx; + } + + function getSignature($amount,$datetime) + { + global $_c; + return hash('sha256', $_c['duitku_merchant_id'] . $amount . $datetime . $_c['duitku_merchant_key']); + } + + + function createTransaction($channel) + { + } + + function getStatus($trxID) + { + } + + private function getServer() + { + global $_app_stage; + if ($_app_stage == 'Live') { + return 'https://passport.duitku.com/webapi/api/merchant/'; + } else { + return 'https://sandbox.duitku.com/webapi/api/merchant/'; + } + } +} \ No newline at end of file diff --git a/system/autoload/PGTripay.php b/system/autoload/PGTripay.php index 2c1de696..76af265b 100644 --- a/system/autoload/PGTripay.php +++ b/system/autoload/PGTripay.php @@ -24,7 +24,7 @@ class PGTripay return hash_hmac('sha256', $_c['tripay_merchant'] . $this->trx['id'] . $this->trx['price'], $_c['tripay_secret_key']); } - function createTransaction($channel) //$trxID, $channel, $amount, $user, $description) + function createTransaction($channel) { global $_c; $json = [ diff --git a/system/controllers/paymentgateway.php b/system/controllers/paymentgateway.php index 5421f4d9..66169e45 100644 --- a/system/controllers/paymentgateway.php +++ b/system/controllers/paymentgateway.php @@ -13,7 +13,7 @@ switch ($action) { case 'xendit': $ui->assign('_title', 'Xendit - Payment Gateway - '. $config['CompanyName']); $ui->assign('channels', json_decode(file_get_contents('system/paymentgateway/channel_xendit.json'), true)); - $ui->display('app-xendit.tpl'); + $ui->display('pg-xendit.tpl'); break; case 'xendit-post': $xendit_secret_key = _post('xendit_secret_key'); @@ -56,7 +56,7 @@ switch ($action) { case 'midtrans': $ui->assign('_title', 'Midtrans - Payment Gateway - '. $config['CompanyName']); $ui->assign('channels', json_decode(file_get_contents('system/paymentgateway/channel_midtrans.json'), true)); - $ui->display('app-midtrans.tpl'); + $ui->display('pg-midtrans.tpl'); break; case 'midtrans-post': $midtrans_merchant_id = _post('midtrans_merchant_id'); @@ -110,7 +110,7 @@ switch ($action) { case 'tripay': $ui->assign('_title', 'Tripay - Payment Gateway - '. $config['CompanyName']); $ui->assign('channels', json_decode(file_get_contents('system/paymentgateway/channel_tripay.json'), true)); - $ui->display('app-tripay.tpl'); + $ui->display('pg-tripay.tpl'); break; case 'tripay-post': $tripay_merchant = _post('tripay_merchant'); @@ -161,4 +161,50 @@ switch ($action) { r2(U . 'paymentgateway/tripay', 's', $_L['Settings_Saved_Successfully']); break; + case 'duitku': + $ui->assign('_title', 'Duitku - Payment Gateway - '. $config['CompanyName']); + $ui->assign('channels', json_decode(file_get_contents('system/paymentgateway/channel_duitku.json'), true)); + $ui->display('pg-duitku.tpl'); + break; + case 'duitku-post': + $duitku_merchant_id = _post('duitku_merchant_id'); + $duitku_merchant_key = _post('duitku_merchant_key'); + $d = ORM::for_table('tbl_appconfig')->where('setting', 'duitku_merchant_id')->find_one(); + if($d){ + $d->value = $duitku_merchant_id; + $d->save(); + }else{ + $d = ORM::for_table('tbl_appconfig')->create(); + $d->setting = 'duitku_merchant_id'; + $d->value = $duitku_merchant_id; + $d->save(); + } + $d = ORM::for_table('tbl_appconfig')->where('setting', 'duitku_merchant_key')->find_one(); + if($d){ + $d->value = $duitku_merchant_key; + $d->save(); + }else{ + $d = ORM::for_table('tbl_appconfig')->create(); + $d->setting = 'duitku_merchant_key'; + $d->value = $duitku_merchant_key; + $d->save(); + } + + $d = ORM::for_table('tbl_appconfig')->where('setting', 'duitku_channel')->find_one(); + if($d){ + $d->value = implode(',',$_POST['duitku_channel']); + $d->save(); + }else{ + $d = ORM::for_table('tbl_appconfig')->create(); + $d->setting = 'duitku_channel'; + $d->value = implode(',',$_POST['duitku_channel']); + $d->save(); + } + + _log('[' . $admin['username'] . ']: Duitku ' . $_L['Settings_Saved_Successfully'], 'Admin', $admin['id']); + + r2(U . 'paymentgateway/duitku', 's', $_L['Settings_Saved_Successfully']); + break; + default: + $ui->display('a404.tpl'); } diff --git a/system/paymentgateway/channel_duitku.json b/system/paymentgateway/channel_duitku.json new file mode 100644 index 00000000..e2e4c569 --- /dev/null +++ b/system/paymentgateway/channel_duitku.json @@ -0,0 +1,98 @@ +[ + { + "id": "BC", + "name": "BCA" + }, + { + "id": "M2", + "name": "Mandiri" + }, + { + "id": "VA", + "name": "Maybank" + }, + { + "id": "I1", + "name": "BNI" + }, + { + "id": "MANDIRIVA", + "name": "Mandiri" + }, + { + "id": "B1", + "name": "CIMB Niaga" + }, + { + "id": "BT", + "name": "Permata Bank" + }, + { + "id": "A1", + "name": "ATM Bersama" + }, + { + "id": "AG", + "name": "Artha Graha" + }, + { + "id": "NC", + "name": "Bank Neo Commerce/BNC" + }, + { + "id": "BR", + "name": "BRIVA" + }, + { + "id": "S1", + "name": "Bank Sahabat Sampoerna" + }, + { + "id": "OV", + "name": "OVO" + }, + { + "id": "SA", + "name": "Shopee Pay" + }, + { + "id": "LF", + "name": "LinkAja Apps (Fixed Fee)" + }, + { + "id": "LA", + "name": "LinkAja Apps (Percentage Fee)" + }, + { + "id": "DA", + "name": "DANA" + }, + { + "id": "SP", + "name": "QRIS Shopee Pay" + }, + { + "id": "LQ", + "name": "QRIS LinkAja" + }, + { + "id": "NQ", + "name": "QRIS Nobu" + }, + { + "id": "FT", + "name": "Pegadaian/ALFA/Pos" + }, + { + "id": "A2", + "name": "POS Indonesia" + }, + { + "id": "IR", + "name": "Indomaret" + }, + { + "id": "VC", + "name": "Credit Card (Visa / Master Card / JCB)" + } +] diff --git a/system/paymentgateway/channel_midtrans.json b/system/paymentgateway/channel_midtrans.json index 7794c156..53600d01 100644 --- a/system/paymentgateway/channel_midtrans.json +++ b/system/paymentgateway/channel_midtrans.json @@ -1,82 +1,66 @@ [ { "id": "credit_card", - "name": "Credit Card", - "min": 10000 + "name": "Credit Card" }, { "id": "bca_va", - "name": "BCA", - "min": 10000 + "name": "BCA" }, { "id": "permata_va", - "name": "Permata", - "min": 10000 + "name": "Permata" }, { "id": "bni_va", - "name": "BNI", - "min": 10000 + "name": "BNI" }, { "id": "bri_va", - "name": "BRI", - "min": 10000 + "name": "BRI" }, { "id": "echannel", - "name": "Mandiri Bill", - "min": 10000 + "name": "Mandiri Bill" }, { "id": "gopay", - "name": "Gopay", - "min": 1000 + "name": "Gopay" }, { "id": "bca_klikbca", - "name": "KLIKBCA", - "min": 10000 + "name": "KLIKBCA" }, { "id": "bca_klikpay", - "name": "BCA KLIKPAY", - "min": 10000 + "name": "BCA KLIKPAY" }, { "id": "cimb_clicks", - "name": "CIMB Clicks", - "min": 10000 + "name": "CIMB Clicks" }, { "id": "danamon_online", - "name": "Danamon", - "min": 5000 + "name": "Danamon" }, { "id": "bri_epay", - "name": "BRImo", - "min": 10000 + "name": "BRImo" }, { "id": "indomaret", - "name": "Indomaret", - "min": 5000 + "name": "Indomaret" }, { "id": "alfamart", - "name": "Alfamart", - "min": 5000 + "name": "Alfamart" }, { "id": "ShopeePay", - "name": "ShopeePay", - "min": 1000 + "name": "ShopeePay" }, { "id": "uob_ezpay", - "name": "UOB EZ Pay", - "min": 1000 + "name": "UOB EZ Pay" } ] diff --git a/system/paymentgateway/channel_tripay.json b/system/paymentgateway/channel_tripay.json index 9f1d8b78..6dd0577e 100644 --- a/system/paymentgateway/channel_tripay.json +++ b/system/paymentgateway/channel_tripay.json @@ -1,92 +1,74 @@ [ { "id": "PERMATAVA", - "name": "Permata Bank", - "min": 10000 + "name": "Permata Bank" }, { "id": "MYBVA", - "name": "Maybank", - "min": 10000 + "name": "Maybank" }, { "id": "BNIVA", - "name": "BNI", - "min": 10000 + "name": "BNI" }, { "id": "BRIVA", - "name": "BRI", - "min": 10000 + "name": "BRI" }, { "id": "MANDIRIVA", - "name": "Mandiri", - "min": 10000 + "name": "Mandiri" }, { "id": "BCAVA", - "name": "BCA", - "min": 10000 + "name": "BCA" }, { "id": "SMSVA", - "name": "Sinarmas", - "min": 10000 + "name": "Sinarmas" }, { "id": "MUAMALATVA", - "name": "Muamalat", - "min": 10000 + "name": "Muamalat" }, { "id": "SAMPOERNAVA", - "name": "Sahabat Sampoerna", - "min": 10000 + "name": "Sahabat Sampoerna" }, { "id": "BSIVA", - "name": "BSI", - "min": 10000 + "name": "BSI" }, { "id": "ALFAMART", - "name": "Alfamart ", - "min": 5000 + "name": "Alfamart " }, { "id": "INDOMARET", - "name": "Indomaret ", - "min": 10000 + "name": "Indomaret " }, { "id": "ALFAMIDI", - "name": "Alfamidi ", - "min": 5000 + "name": "Alfamidi " }, { "id": "OVO", - "name": "OVO", - "min": 1000 + "name": "OVO" }, { "id": "QRIS", - "name": "QRIS by ShopeePay", - "min": 1000 + "name": "QRIS by ShopeePay" }, { "id": "QRISC", - "name": "QRIS (Customizable)", - "min": 1000 + "name": "QRIS (Customizable)" }, { "id": "QRIS2", - "name": "QRIS", - "min": 1000 + "name": "QRIS" }, { "id": "SHOPEEPAY", - "name": "ShopeePay ", - "min": 1000 + "name": "ShopeePay " } ] diff --git a/system/paymentgateway/channel_xendit.json b/system/paymentgateway/channel_xendit.json index 00afe33b..6141f87b 100644 --- a/system/paymentgateway/channel_xendit.json +++ b/system/paymentgateway/channel_xendit.json @@ -1,82 +1,66 @@ [ { "id": "CREDIT_CARD", - "name": "CREDIT CARD", - "min": 10000 + "name": "CREDIT CARD" }, { "id": "PERMATA", - "name": "Permata Bank", - "min": 10000 + "name": "Permata Bank" }, { "id": "BNI", - "name": "BNI", - "min": 10000 + "name": "BNI" }, { "id": "BRI", - "name": "BRI", - "min": 10000 + "name": "BRI" }, { "id": "MANDIRI", - "name": "Mandiri", - "min": 10000 + "name": "Mandiri" }, { "id": "BCA", - "name": "BCA", - "min": 10000 + "name": "BCA" }, { "id": "BSI", - "name": "BSI", - "min": 10000 + "name": "BSI" }, { "id": "DD_BRI", - "name": "Direct Debit BRI", - "min": 10000 + "name": "Direct Debit BRI" }, { "id": "DD_BCA_KLIKPAY", - "name": "Direct Debit BCA KLIKPAY", - "min": 10000 + "name": "Direct Debit BCA KLIKPAY" }, { "id": "ALFAMART", - "name": "Alfamart ", - "min": 5000 + "name": "Alfamart " }, { "id": "INDOMARET", - "name": "Indomaret ", - "min": 10000 + "name": "Indomaret " }, { "id": "OVO", - "name": "OVO", - "min": 1000 + "name": "OVO" }, { "id": "DANA", - "name": "DANA", - "min": 1000 + "name": "DANA" }, { "id": "LINKAJA", - "name": "LinkAja", - "min": 1000 + "name": "LinkAja" }, { "id": "SHOPEEPAY", - "name": "ShopeePay ", - "min": 1000 + "name": "ShopeePay " }, { "id": "QRIS", - "name": "QRIS", - "min": 1000 + "name": "QRIS" } ] diff --git a/system/radius.php b/system/radius.php index bd6ae1de..6de89c63 100644 --- a/system/radius.php +++ b/system/radius.php @@ -7,8 +7,8 @@ if(php_sapi_name() !== 'cli'){ die("RUN ON COMMAND LINE ONLY BY RADIUS ENGINE"); } -require('config.php'); -require('orm.php'); +require(__DIR__.'/config.php'); +require(__DIR__.'/orm.php'); use PEAR2\Net\RouterOS; require_once 'autoload/PEAR2/Autoload.php'; diff --git a/ui/ui/app-settings.tpl b/ui/ui/app-settings.tpl index 49a19ec6..f9f231ed 100644 --- a/ui/ui/app-settings.tpl +++ b/ui/ui/app-settings.tpl @@ -34,10 +34,11 @@ {* *} + -
+ +
+ +
+ +
+
+
+ + +
+ +
+ +
+ {foreach $channels as $channel} + + {/foreach} +
+
+
+
+ +
+
+
/ip hotspot walled-garden
+add dst-host=duitku.com
+add dst-host=*.duitku.com
+
+ + + + + +{include file="sections/footer.tpl"} diff --git a/ui/ui/app-midtrans.tpl b/ui/ui/pg-midtrans.tpl similarity index 100% rename from ui/ui/app-midtrans.tpl rename to ui/ui/pg-midtrans.tpl diff --git a/ui/ui/app-tripay.tpl b/ui/ui/pg-tripay.tpl similarity index 100% rename from ui/ui/app-tripay.tpl rename to ui/ui/pg-tripay.tpl diff --git a/ui/ui/app-xendit.tpl b/ui/ui/pg-xendit.tpl similarity index 100% rename from ui/ui/app-xendit.tpl rename to ui/ui/pg-xendit.tpl diff --git a/ui/ui/sections/header.tpl b/ui/ui/sections/header.tpl index 22719724..31c7676c 100644 --- a/ui/ui/sections/header.tpl +++ b/ui/ui/sections/header.tpl @@ -271,6 +271,7 @@
  • Xendit
  • {*
  • Midtrans
  • *}
  • Tripay
  • +
  • Duitku
  •