234 lines
10 KiB
Smarty
234 lines
10 KiB
Smarty
|
{include file="sections/header.tpl"}
|
|||
|
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
|
|||
|
<style>
|
|||
|
.styled-form-group {
|
|||
|
margin-bottom: 20px;
|
|||
|
}
|
|||
|
|
|||
|
.styled-btn {
|
|||
|
color: #28a745;
|
|||
|
border: 1px solid #28a745;
|
|||
|
background-color: #fff;
|
|||
|
padding: 10px 20px;
|
|||
|
font-size: 16px;
|
|||
|
text-align: center;
|
|||
|
text-decoration: none;
|
|||
|
display: inline-block;
|
|||
|
transition: all 0.3s ease;
|
|||
|
}
|
|||
|
|
|||
|
.styled-btn:hover {
|
|||
|
background-color: #28a745;
|
|||
|
color: #fff;
|
|||
|
}
|
|||
|
|
|||
|
.styled-small-text {
|
|||
|
color: blue;
|
|||
|
margin-top: 10px;
|
|||
|
display: block;
|
|||
|
font-size: 14px;
|
|||
|
}
|
|||
|
|
|||
|
.switch {
|
|||
|
position: relative;
|
|||
|
display: inline-block;
|
|||
|
width: 50px;
|
|||
|
height: 24px;
|
|||
|
}
|
|||
|
|
|||
|
/* Hidden checkbox */
|
|||
|
.switch input {
|
|||
|
opacity: 0;
|
|||
|
width: 0;
|
|||
|
height: 0;
|
|||
|
}
|
|||
|
|
|||
|
/* Slider */
|
|||
|
.slider {
|
|||
|
position: absolute;
|
|||
|
cursor: pointer;
|
|||
|
top: 0;
|
|||
|
left: 0;
|
|||
|
right: 0;
|
|||
|
bottom: 0;
|
|||
|
background-color: #ccc;
|
|||
|
-webkit-transition: .4s;
|
|||
|
transition: .4s;
|
|||
|
border-radius: 24px;
|
|||
|
}
|
|||
|
|
|||
|
.slider:before {
|
|||
|
position: absolute;
|
|||
|
content: "";
|
|||
|
height: 18px;
|
|||
|
width: 18px;
|
|||
|
left: 3px;
|
|||
|
bottom: 3px;
|
|||
|
background-color: white;
|
|||
|
-webkit-transition: .4s;
|
|||
|
transition: .4s;
|
|||
|
border-radius: 50%;
|
|||
|
}
|
|||
|
|
|||
|
input:checked+.slider {
|
|||
|
background-color: #2196F3;
|
|||
|
}
|
|||
|
|
|||
|
input:focus+.slider {
|
|||
|
box-shadow: 0 0 1px #2196F3;
|
|||
|
}
|
|||
|
|
|||
|
input:checked+.slider:before {
|
|||
|
-webkit-transform: translateX(26px);
|
|||
|
-ms-transform: translateX(26px);
|
|||
|
transform: translateX(26px);
|
|||
|
}
|
|||
|
</style>
|
|||
|
|
|||
|
{if isset($message)}
|
|||
|
<div class="alert alert-{if $notify_t == 's'}success{else}danger{/if}">
|
|||
|
<button type="button" class="close" data-dismiss="alert">
|
|||
|
<span aria-hidden="true">×</span>
|
|||
|
</button>
|
|||
|
<div>{$message}</div>
|
|||
|
</div>
|
|||
|
{/if}
|
|||
|
<form class="form-horizontal" method="post" role="form" action="{$_url}plugin/c2b_settings">
|
|||
|
<div class="row">
|
|||
|
<div class="col-sm-12 col-md-12">
|
|||
|
<div class="panel panel-primary panel-hovered panel-stacked mb30">
|
|||
|
<div class="panel-heading">{Lang::T('M-Pesa C2B Payment Gateway')}</div>
|
|||
|
<div class="panel-body">
|
|||
|
<div class="form-group col-6">
|
|||
|
<label class="col-md-3 control-label">{Lang::T('M-Pesa C2B Environment')}</label>
|
|||
|
<div class="col-md-6">
|
|||
|
<select class="form-control" name="mpesa_c2b_env" id="mpesa_c2b_env">
|
|||
|
<option value="sandbox" {if $_c['mpesa_c2b_env']=='sandbox' }selected{/if}>
|
|||
|
{Lang::T('SandBox or
|
|||
|
Testing')}</option>
|
|||
|
<option value="live" {if $_c['mpesa_c2b_env']=='live' }selected{/if}>{Lang::T('Live or
|
|||
|
Production')}
|
|||
|
</option>
|
|||
|
</select>
|
|||
|
<small class="form-text text-muted">
|
|||
|
<font color="red"><b>{Lang::T('Sandbox')}</b></font> {Lang::T('is for testing purpose,
|
|||
|
please switch to')} <font color="green"><b>{Lang::T('Live')}</b></font> {Lang::T('in
|
|||
|
production.')}
|
|||
|
</small>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="form-group col-6">
|
|||
|
<label class="col-md-3 control-label">M-Pesa C2B Consumer Key</label>
|
|||
|
<div class="col-md-6">
|
|||
|
<input type="text" class="form-control" id="mpesa_c2b_consumer_key"
|
|||
|
name="mpesa_c2b_consumer_key" placeholder="xxxxxxxxxxxxxxxxx"
|
|||
|
value="{$_c['mpesa_c2b_consumer_key']}">
|
|||
|
<small class="form-text text-muted"><a href="https://developer.safaricom.co.ke/MyApps"
|
|||
|
target="_blank">https://developer.safaricom.co.ke/MyApps</a></small>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="form-group col-6">
|
|||
|
<label class="col-md-3 control-label">M-Pesa C2B Consumer Secret</label>
|
|||
|
<div class="col-md-6">
|
|||
|
<input type="password" class="form-control" id="mpesa_c2b_consumer_secret"
|
|||
|
name="mpesa_c2b_consumer_secret" placeholder="xxxxxxxxxxxxxxxxx"
|
|||
|
value="{$_c['mpesa_c2b_consumer_secret']}">
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="form-group col-6">
|
|||
|
<label class="col-md-3 control-label">M-Pesa C2B Business Shortcode</label>
|
|||
|
<div class="col-md-6">
|
|||
|
<input type="text" class="form-control" id="mpesa_c2b_business_code"
|
|||
|
name="mpesa_c2b_business_code" placeholder="xxxxxxx" maxlength="7"
|
|||
|
value="{$_c['mpesa_c2b_business_code']}">
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="form-group col-6">
|
|||
|
<label class="col-md-3 control-label">M-Pesa C2B Version</label>
|
|||
|
<div class="col-md-6">
|
|||
|
<select class="form-control" name="mpesa_c2b_api">
|
|||
|
<option value="v1" {if $_c['mpesa_c2b_api']=='v1' }selected{/if}>v1</option>
|
|||
|
<option value="v2" {if $_c['mpesa_c2b_api']=='v2' }selected{/if}>v2</option>
|
|||
|
</select>
|
|||
|
<small class="form-text text-muted">Select the version of the API you want to
|
|||
|
use.</small>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="form-group col-6">
|
|||
|
<label class="col-md-3 control-label">Bill Ref Number Type</label>
|
|||
|
<div class="col-md-6">
|
|||
|
<select class="form-control" name="mpesa_c2b_bill_ref">
|
|||
|
<option value="phone" {if $_c['mpesa_c2b_bill_ref']=='phone' }selected{/if}>Phone Number</option>
|
|||
|
<option value="username" {if $_c['mpesa_c2b_bill_ref']=='username' }selected{/if}>Username</option>
|
|||
|
<option value="id" {if $_c['mpesa_c2b_bill_ref']=='id' }selected{/if}>Account ID</option>
|
|||
|
</select>
|
|||
|
<small class="form-text text-muted">How will the system identify your customers. BillRefNumber must be a unique identity</small>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="form-group col-6">
|
|||
|
<label class="col-md-3 control-label">{Lang::T('Accept Insufficient Fee')}</label>
|
|||
|
<div class="col-md-6">
|
|||
|
<label class="switch">
|
|||
|
<input type="checkbox" id="mpesa_c2b_low_fee" value="1"
|
|||
|
name="mpesa_c2b_low_fee" {if $_c['mpesa_c2b_low_fee']==1}checked{/if}>
|
|||
|
<span class="slider"></span>
|
|||
|
</label>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
{if $_c['c2b_registered'] && $_c['mpesa_c2b_env']!='sandbox'}
|
|||
|
<div class="form-group col-12 styled-form-group">
|
|||
|
<label class="col-md-3 control-label">Register C2B URL</label>
|
|||
|
<div class="col-md-6">
|
|||
|
<button class="btn styled-btn">URLs Already Registered</button>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
{else}
|
|||
|
<div class="form-group col-12 styled-form-group">
|
|||
|
<label class="col-md-3 control-label">Register C2B URL</label>
|
|||
|
<div class="col-md-6">
|
|||
|
<a href="{$_url}plugin/c2b_registerUrl" class="btn styled-btn">Click to Register Mpesa
|
|||
|
C2B URL</a>
|
|||
|
<small class="form-text text-muted styled-small-text">Click only after you have saved
|
|||
|
the changes.</small>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
{/if}
|
|||
|
<div class="form-group col-6">
|
|||
|
<div class="col-lg-offset-3 col-lg-10">
|
|||
|
<button class="btn btn-primary waves-effect waves-light" name="save" value="save"
|
|||
|
type="submit">Save Changes</button>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="bs-callout bs-callout-info" id="callout-navbar-role">
|
|||
|
<h4><b>Accept Insufficient Fee</b>:</h4>
|
|||
|
<p> If Enable the money customer sent will be convert to customer balance, but if disabled the system will reject it. <br> It requires Validation URL</p>
|
|||
|
<h4><b>Note</b>:</h4>
|
|||
|
<p> Before click on Register URL <br>
|
|||
|
Make sure you have fill the required fields <br>
|
|||
|
</p>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</form>
|
|||
|
|
|||
|
<script>
|
|||
|
$(document).ready(function () {
|
|||
|
toggleTillNumberInput();
|
|||
|
$('#mpesa_c2b_transaction').on('change', function () {
|
|||
|
toggleTillNumberInput();
|
|||
|
});
|
|||
|
function toggleTillNumberInput() {
|
|||
|
if ($('#mpesa_c2b_transaction').val() === 'BuyGoods') {
|
|||
|
$('#tillNumberContainer').show();
|
|||
|
} else {
|
|||
|
$('#tillNumberContainer').hide();
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
</script>
|
|||
|
{include file="sections/footer.tpl"}
|