@extends('admin.layouts.master')
@push('css')
@endpush
@section('page-title')
@include('admin.components.page-title', ['title' => __($page_title)])
@endsection
@section('breadcrumb')
@include('admin.components.breadcrumb', [
'breadcrumbs' => [
[
'name' => __('Dashboard'),
'url' => setRoute('admin.dashboard'),
],
],
'active' => __('Extensions'),
])
@endsection
@section('content')
<div class="table-area">
<div class="table-wrapper">
<div class="table-header">
<h5 class="title">{{ __("Extensions") }}</h5>
</div>
<div class="table-responsive">
<table class="custom-table">
<thead>
<tr>
<th></th>
<th>{{ __("Name") }}</th>
<th>{{ __("Status") }}</th>
<th>{{ __("Action") }}</th>
</tr>
</thead>
<tbody>
@forelse ($extensions as $key => $item)
<tr data-image="{{ $item->support_image }}">
<td>
<ul class="user-list">
<li><img src="{{ get_image($item->image, 'extensions') }}" alt="image"></li>
</ul>
</td>
<td>{{ $item->name ? $item->name : '' }}</td>
<td>
@include('admin.components.form.switcher', [
'name' => 'status',
'data_target' => $item->id,
'value' => $item->status,
'options' => [__('Enable') => 1, __('Disable') => 0],
'onload' => true,
'permission' => "admin.extension.status.update",
])
</td>
<td>
@if (admin_permission_by_name("admin.extension.update"))
<button type="button" class="btn btn--base edit-button" data-name="{{ __($item->name) }}"
data-shortcode="{{ json_encode($item->shortcode) }}"
data-action="{{ setRoute('admin.extension.update', $item->id) }}">
<i class="las la-pencil-alt"></i>
</button>
@endif
<button class="btn btn--base helpButton" data-description="{{ __($item->description) }}" data-support="{{ __($item->support) }}"><i class="las la-info-circle"></i></button>
</td>
</tr>
@empty
@include('admin.components.alerts.empty',['colspan' => 5])
@endforelse
</tbody>
</table>
</div>
</div>
</div>
{{-- Edit Modal --}}
@include('admin.components.modals.extension-edit')
{{-- Info Modal --}}
<div id="instruction-modal" class="mfp-hide large">
<div class="modal-data">
<div class="modal-header px-0">
<h5 class="modal-title">{{ __("Instructions") }}</h5>
</div>
<div class="modal-body">
</div>
</div>
</div>
@endsection
@push('script')
<script>
(function($) {
"use strict";
$('.helpButton').on('click', function() {
var modal = $('#instruction-modal');
var image = $(this).parents("tr").attr('data-image');
var path = "{{ files_asset_path('extensions') }}";
var imgLink = path + "/" + image;
modal.find('.modal-body').html(`<div class="mb-2">${$(this).data('description')}</div>`);
if ($(this).data('support') != 'na') {
modal.find('.modal-body').append(`<img src="${imgLink}">`);
}
openModalBySelector("#instruction-modal");
});
})(jQuery);
switcherAjax("{{ setRoute('admin.extension.status.update') }}");
</script>
@endpush
Get access token to initiates payment transaction.
generate-token
| Parameter | Type | Comments |
|---|---|---|
| client_id | string | Enter merchant API client/primary key |
| secret_id | string | Enter merchant API secret key |
| env | string | Enter merchant API environment |
| merchant_id | string | Enter merchant API merchant id |
Request Example (guzzle)
<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', $base_url. 'v1/generate-token', [
'headers' => [
'accept' => 'application/json',
'content-type' => 'application/json',
],
'form_params' => [
'client_id' => '$client_id',
'secret_id' => 'secret_id',
'env' => 'env',
'merchant_id' => 'merchant_id',
],
]);
echo $response->getBody();
**Response: SUCCESS (200 OK)**
{
"message": {
"success": [
"Successfully token is generated"
]
},
"data": {
"token":"eyJpdiI6InpkczhjTjhQdVhUL2lKQ0pSUUx6aUE9PSIsInZhbHVlIjoiVGVBTVBDTXltbjNZcEIvdEJveGpTSno3TU5NRUtnVkhCZ1pHTFNCUnZGQ2UxMnYxN202cEE1YVRDTEFsc0ZERExoTjdtL0dTL2xoU3QzeUJJOExiMUx5T0w1L0llUXhTUkU1cWVLWEdEbEplb0dKNXcwbTNRM0VxdkUwYzZuNFdtNkhMQ0pRZysyNWkvdzBxSlBoSVBSOGFTekNnR2RXNHVtcG9lMGZOTmNCcm1hR3c5Sk9KTnB4Y3ltZDl6cm90MThrR21Ca3B1azc3bXRiQ0J6SW96UVo1elNkU1ZqeE05bTcwWGp1MEUxWlJFdnNWTmpSbnVpeW92b2U4dXZkUGgyb1VmK0luaGdyaFlsVTZlcVpVRnZlTG1DeFF6Ykk2T2h6Z3JzbnIyNHpNdHowSE5JdDR0Y0pZT20zUm1XYW8iLCJtYWMiOiJlY2M4NGE1OGUzYzkzYzk0YzljNmVmNjE0YWI0ZDIwOGI3NDQ2YWEyY2ZhNzc0NzE4ZmY1ZmYyMz
IyZmQzNDY1IiwidGFnIjoiIn0=",
},
"type": "success"
}
**Response: ERROR (400 FAILED)**
{
"message": {
"error": [
"Invalid credentials."
]
},
"data": null,
"type": "error"
}