forked from kevinowino869/mitrobill
tripay pg and list channels
This commit is contained in:
13
system/controllers/community.php
Normal file
13
system/controllers/community.php
Normal file
@ -0,0 +1,13 @@
|
||||
<?php
|
||||
/**
|
||||
* PHP Mikrotik Billing (https://ibnux.github.io/phpmixbill/)
|
||||
**/
|
||||
_auth();
|
||||
$ui->assign('_title', 'Community - '. $config['CompanyName']);
|
||||
$ui->assign('_system_menu', 'community');
|
||||
|
||||
$action = $routes['1'];
|
||||
$admin = Admin::_info();
|
||||
$ui->assign('_admin', $admin);
|
||||
|
||||
$ui->display('community.tpl');
|
39
system/controllers/order.php
Normal file
39
system/controllers/order.php
Normal file
@ -0,0 +1,39 @@
|
||||
<?php
|
||||
/**
|
||||
* PHP Mikrotik Billing (https://ibnux.github.io/phpmixbill/)
|
||||
**/
|
||||
_auth();
|
||||
$ui->assign('_system_menu', 'order');
|
||||
$action = $routes['1'];
|
||||
$user = User::_info();
|
||||
$ui->assign('_user', $user);
|
||||
|
||||
//Client Page
|
||||
$bill = User::_billing();
|
||||
$ui->assign('_bill', $bill);
|
||||
|
||||
|
||||
switch ($action) {
|
||||
case 'voucher':
|
||||
$ui->assign('_title', $_L['Order_Voucher'].' - '. $config['CompanyName']);
|
||||
$ui->display('user-order.tpl');
|
||||
break;
|
||||
case 'ppoe':
|
||||
$ui->assign('_title', 'Order PPOE Internet- '. $config['CompanyName']);$routers = ORM::for_table('tbl_routers')->find_many();
|
||||
$plans = ORM::for_table('tbl_plans')->where('type', 'PPPOE')->find_many();
|
||||
$ui->assign('routers',$routers);
|
||||
$ui->assign('plans', $plans);
|
||||
$ui->display('user-orderPPOE.tpl');
|
||||
break;
|
||||
case 'hotspot':
|
||||
$ui->assign('_title', 'Order Hotspot Internet- '. $config['CompanyName']);
|
||||
$routers = ORM::for_table('tbl_routers')->find_many();
|
||||
$plans = ORM::for_table('tbl_plans')->where('type', 'Hotspot')->find_many();
|
||||
$ui->assign('routers',$routers);
|
||||
$ui->assign('plans', $plans);
|
||||
$ui->display('user-orderHotspot.tpl');
|
||||
break;
|
||||
default:
|
||||
$ui->display('404.tpl');
|
||||
}
|
||||
|
@ -12,6 +12,7 @@ $ui->assign('_admin', $admin);
|
||||
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');
|
||||
break;
|
||||
case 'xendit-post':
|
||||
@ -37,6 +38,16 @@ switch ($action) {
|
||||
$d->value = $xendit_verification_token;
|
||||
$d->save();
|
||||
}
|
||||
$d = ORM::for_table('tbl_appconfig')->where('setting', 'xendit_channel')->find_one();
|
||||
if($d){
|
||||
$d->value = implode(',',$_POST['xendit_channel']);
|
||||
$d->save();
|
||||
}else{
|
||||
$d = ORM::for_table('tbl_appconfig')->create();
|
||||
$d->setting = 'xendit_channel';
|
||||
$d->value = implode(',',$_POST['xendit_channel']);
|
||||
$d->save();
|
||||
}
|
||||
|
||||
_log('[' . $admin['username'] . ']: Xendit ' . $_L['Settings_Saved_Successfully'], 'Admin', $admin['id']);
|
||||
|
||||
@ -44,7 +55,7 @@ switch ($action) {
|
||||
break;
|
||||
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');
|
||||
break;
|
||||
case 'midtrans-post':
|
||||
@ -81,9 +92,73 @@ switch ($action) {
|
||||
$d->value = $midtrans_server_key;
|
||||
$d->save();
|
||||
}
|
||||
$d = ORM::for_table('tbl_appconfig')->where('setting', 'midtrans_channel')->find_one();
|
||||
if($d){
|
||||
$d->value = implode(',',$_POST['midtrans_channel']);
|
||||
$d->save();
|
||||
}else{
|
||||
$d = ORM::for_table('tbl_appconfig')->create();
|
||||
$d->setting = 'midtrans_channel';
|
||||
$d->value = implode(',',$_POST['midtrans_channel']);
|
||||
$d->save();
|
||||
}
|
||||
|
||||
_log('[' . $admin['username'] . ']: Midtrans ' . $_L['Settings_Saved_Successfully'], 'Admin', $admin['id']);
|
||||
|
||||
r2(U . 'paymentgateway/midtrans', 's', $_L['Settings_Saved_Successfully']);
|
||||
break;
|
||||
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');
|
||||
break;
|
||||
case 'tripay-post':
|
||||
$tripay_merchant = _post('tripay_merchant');
|
||||
$tripay_api_key = _post('tripay_api_key');
|
||||
$tripay_secret_key = _post('tripay_secret_key');
|
||||
$d = ORM::for_table('tbl_appconfig')->where('setting', 'tripay_merchant')->find_one();
|
||||
if($d){
|
||||
$d->value = $tripay_merchant;
|
||||
$d->save();
|
||||
}else{
|
||||
$d = ORM::for_table('tbl_appconfig')->create();
|
||||
$d->setting = 'tripay_merchant';
|
||||
$d->value = $tripay_merchant;
|
||||
$d->save();
|
||||
}
|
||||
$d = ORM::for_table('tbl_appconfig')->where('setting', 'tripay_api_key')->find_one();
|
||||
if($d){
|
||||
$d->value = $tripay_api_key;
|
||||
$d->save();
|
||||
}else{
|
||||
$d = ORM::for_table('tbl_appconfig')->create();
|
||||
$d->setting = 'tripay_api_key';
|
||||
$d->value = $tripay_api_key;
|
||||
$d->save();
|
||||
}
|
||||
$d = ORM::for_table('tbl_appconfig')->where('setting', 'tripay_secret_key')->find_one();
|
||||
if($d){
|
||||
$d->value = $tripay_secret_key;
|
||||
$d->save();
|
||||
}else{
|
||||
$d = ORM::for_table('tbl_appconfig')->create();
|
||||
$d->setting = 'tripay_secret_key';
|
||||
$d->value = $tripay_secret_key;
|
||||
$d->save();
|
||||
}
|
||||
$d = ORM::for_table('tbl_appconfig')->where('setting', 'tripay_channel')->find_one();
|
||||
if($d){
|
||||
$d->value = implode(',',$_POST['tripay_channel']);
|
||||
$d->save();
|
||||
}else{
|
||||
$d = ORM::for_table('tbl_appconfig')->create();
|
||||
$d->setting = 'tripay_channel';
|
||||
$d->value = implode(',',$_POST['tripay_channel']);
|
||||
$d->save();
|
||||
}
|
||||
|
||||
_log('[' . $admin['username'] . ']: Tripay ' . $_L['Settings_Saved_Successfully'].json_encode($_POST['tripay_channel']), 'Admin', $admin['id']);
|
||||
|
||||
r2(U . 'paymentgateway/tripay', 's', $_L['Settings_Saved_Successfully']);
|
||||
break;
|
||||
}
|
||||
|
@ -406,7 +406,7 @@ switch ($action) {
|
||||
$in = ORM::for_table('tbl_transactions')->where('username', $c['username'])->order_by_desc('id')->find_one();
|
||||
$ui->assign('in', $in);
|
||||
|
||||
sendSMS($c['username'], "*$_c[CompanyName]*\n".
|
||||
sendWhatsapp($c['username'], "*$_c[CompanyName]*\n".
|
||||
"$_c[address]\n".
|
||||
"$_c[phone]\n".
|
||||
"\n\n".
|
||||
@ -1050,7 +1050,7 @@ switch ($action) {
|
||||
$ui->assign('in', $in);
|
||||
|
||||
|
||||
sendSMS($c['username'], "*$_c[CompanyName]*\n".
|
||||
sendWhatsapp($c['username'], "*$_c[CompanyName]*\n".
|
||||
"$_c[address]\n".
|
||||
"$_c[phone]\n".
|
||||
"\n\n".
|
||||
|
@ -18,9 +18,11 @@ use PEAR2\Net\RouterOS;
|
||||
|
||||
require_once 'system/autoload/PEAR2/Autoload.php';
|
||||
|
||||
$otpPath = 'system/uploads/sms/';
|
||||
|
||||
switch ($do) {
|
||||
case 'post':
|
||||
|
||||
$otp_code = _post('otp_code');
|
||||
$username = _post('username');
|
||||
$fullname = _post('fullname');
|
||||
$password = _post('password');
|
||||
@ -41,6 +43,32 @@ switch ($do) {
|
||||
$msg .= $_L['PasswordsNotMatch'] . '<br>';
|
||||
}
|
||||
|
||||
if(!empty($_c['sms_url'])){
|
||||
$otpPath .= sha1($username.$db_password).".txt";
|
||||
if(file_exists($otpPath) && time()-filemtime($otpPath)>300){
|
||||
unlink($otpPath);
|
||||
r2(U . 'register', 's', 'Verification code expired');
|
||||
}else if(file_exists($otpPath)){
|
||||
$code = file_get_contents($otpPath);
|
||||
if($code!=$otp_code){
|
||||
$ui->assign('username', $username);
|
||||
$ui->assign('fullname', $fullname);
|
||||
$ui->assign('address', $address);
|
||||
$ui->assign('phonenumber', $phonenumber);
|
||||
$ui->assign('notify', '<div class="alert alert-success">
|
||||
<button type="button" class="close" data-dismiss="alert">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
<div>Verification code is Wrong</div></div>');
|
||||
$ui->display('register-otp.tpl');
|
||||
exit();
|
||||
}else{
|
||||
unlink($otpPath);
|
||||
}
|
||||
}else{
|
||||
r2(U . 'register', 's', 'No Verification code');
|
||||
}
|
||||
}
|
||||
$d = ORM::for_table('tbl_customers')->where('username', $username)->find_one();
|
||||
if ($d) {
|
||||
$msg .= $_L['account_already_exist'] . '<br>';
|
||||
@ -65,9 +93,8 @@ switch ($do) {
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
<div>Failed to register</div></div>');
|
||||
$ui->display('register.tpl');
|
||||
r2(U . 'register', 's', 'Failed to register');
|
||||
}
|
||||
//r2(U . 'register', 's', $_L['account_created_successfully']);
|
||||
} else {
|
||||
$ui->assign('username', $username);
|
||||
$ui->assign('fullname', $fullname);
|
||||
@ -83,10 +110,47 @@ switch ($do) {
|
||||
break;
|
||||
|
||||
default:
|
||||
$ui->assign('username', "");
|
||||
$ui->assign('fullname', "");
|
||||
$ui->assign('address', "");
|
||||
$ui->assign('phonenumber', "");
|
||||
$ui->display('register.tpl');
|
||||
if(!empty($_c['sms_url'])){
|
||||
$username = _post('username');
|
||||
if(!empty($username)){
|
||||
$d = ORM::for_table('tbl_customers')->where('username', $username)->find_one();
|
||||
if ($d) {
|
||||
r2(U . 'register', 's', $_L['account_already_exist']);
|
||||
}
|
||||
if(!file_exists($otpPath)){
|
||||
mkdir($otpPath);
|
||||
touch($otpPath.'index.html');
|
||||
}
|
||||
$otpPath .= sha1($username.$db_password).".txt";
|
||||
if(file_exists($otpPath) && time()-filemtime($otpPath)<120){
|
||||
$ui->assign('username', $username);
|
||||
$ui->assign('notify', '<div class="alert alert-success">
|
||||
<button type="button" class="close" data-dismiss="alert">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
<div>Please wait '.(120-(time()-filemtime($otpPath))).' seconds before sending another SMS</div></div>');
|
||||
$ui->display('register-otp.tpl');
|
||||
}else{
|
||||
$otp = rand(100000,999999);
|
||||
file_put_contents($otpPath, $otp);
|
||||
sendSMS($username,$_c['CompanyName']."\nYour Verification code are: $otp");
|
||||
$ui->assign('username', $username);
|
||||
$ui->assign('notify', '<div class="alert alert-success">
|
||||
<button type="button" class="close" data-dismiss="alert">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
<div>Verification code has been sent to your phone</div></div>');
|
||||
$ui->display('register-otp.tpl');
|
||||
}
|
||||
}else{
|
||||
$ui->display('register-rotp.tpl');
|
||||
}
|
||||
}else{
|
||||
$ui->assign('username', "");
|
||||
$ui->assign('fullname', "");
|
||||
$ui->assign('address', "");
|
||||
$ui->assign('otp', false);
|
||||
$ui->display('register.tpl');
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -130,9 +130,17 @@ switch ($action) {
|
||||
}
|
||||
|
||||
if($d['name'] != $name){
|
||||
$c = ORM::for_table('tbl_routers')->where('ip_address',$ip_address)->find_one();
|
||||
$c = ORM::for_table('tbl_routers')->where('name',$name)->where_not_equal('id',$id)->find_one();
|
||||
if($c){
|
||||
$msg .= $_L['Router_already_exist']. '<br>';
|
||||
$msg .= 'Name Already Exists<br>';
|
||||
}
|
||||
}
|
||||
$oldname = $d['name'];
|
||||
|
||||
if($d['ip_address'] != $ip_address){
|
||||
$c = ORM::for_table('tbl_routers')->where('ip_address',$ip_address)->where_not_equal('id',$id)->find_one();
|
||||
if($c){
|
||||
$msg .= 'IP Already Exists<br>';
|
||||
}
|
||||
}
|
||||
|
||||
@ -152,6 +160,24 @@ switch ($action) {
|
||||
$d->password = $password;
|
||||
$d->description = $description;
|
||||
$d->save();
|
||||
$p = ORM::for_table('tbl_plans')->where('routers',$oldname)->find_result_set();
|
||||
$p->set('routers',$name);
|
||||
$p->save();
|
||||
$p = ORM::for_table('tbl_payment_gateway')->where('routers',$oldname)->find_result_set();
|
||||
$p->set('routers',$name);
|
||||
$p->save();
|
||||
$p = ORM::for_table('tbl_pool')->where('routers',$oldname)->find_result_set();
|
||||
$p->set('routers',$name);
|
||||
$p->save();
|
||||
$p = ORM::for_table('tbl_transactions')->where('routers',$oldname)->find_result_set();
|
||||
$p->set('routers',$name);
|
||||
$p->save();
|
||||
$p = ORM::for_table('tbl_user_recharges')->where('routers',$oldname)->find_result_set();
|
||||
$p->set('routers',$name);
|
||||
$p->save();
|
||||
$p = ORM::for_table('tbl_voucher')->where('routers',$oldname)->find_result_set();
|
||||
$p->set('routers',$name);
|
||||
$p->save();
|
||||
r2(U . 'routers/list', 's', $_L['Updated_Successfully']);
|
||||
}else{
|
||||
r2(U . 'routers/edit/'.$id, 'e', $msg);
|
||||
|
@ -203,6 +203,7 @@ switch ($action) {
|
||||
$telegram_bot = _post('telegram_bot');
|
||||
$telegram_target_id = _post('telegram_target_id');
|
||||
$sms_url = _post('sms_url');
|
||||
$wa_url = _post('wa_url');
|
||||
$address = _post('address');
|
||||
$payment_gateway = _post('payment_gateway');
|
||||
if ($company == '') {
|
||||
@ -254,6 +255,17 @@ switch ($action) {
|
||||
$d->save();
|
||||
}
|
||||
|
||||
$d = ORM::for_table('tbl_appconfig')->where('setting', 'wa_url')->find_one();
|
||||
if($d){
|
||||
$d->value = $wa_url;
|
||||
$d->save();
|
||||
}else{
|
||||
$d = ORM::for_table('tbl_appconfig')->create();
|
||||
$d->setting = 'wa_url';
|
||||
$d->value = $wa_url;
|
||||
$d->save();
|
||||
}
|
||||
|
||||
$d = ORM::for_table('tbl_appconfig')->where('setting', 'payment_gateway')->find_one();
|
||||
if($d){
|
||||
$d->value = $payment_gateway;
|
||||
|
Reference in New Issue
Block a user