diff --git a/app/Http/Middleware/NoHttpCache.php b/app/Http/Middleware/NoHttpCache.php
index d76a5eb..21392d2 100644
--- a/app/Http/Middleware/NoHttpCache.php
+++ b/app/Http/Middleware/NoHttpCache.php
@@ -31,10 +31,10 @@ class NoHttpCache
/**
* @var $headers \Symfony\Component\HttpFoundation\HeaderBag
*/
- $response->header('Pragma', 'no-cache');
- $response->header('Expires', 'Fri, 01 Jan 1990 00:00:00 GMT');
- $response->header('Cache-Control', 'no-cache, must-revalidate, no-store, max-age=0, private');
+ $response->headers->set('Pragma', 'no-cache');
+ $response->headers->set('Expires', 'Fri, 01 Jan 1990 00:00:00 GMT');
+ $response->headers->set('Cache-Control', 'no-cache, must-revalidate, no-store, max-age=0, private');
return $response;
}
-}
\ No newline at end of file
+}
diff --git a/config/filesystems.php b/config/filesystems.php
index 94c8112..6298208 100644
--- a/config/filesystems.php
+++ b/config/filesystems.php
@@ -48,6 +48,11 @@ return [
'root' => storage_path('app'),
],
+ 'supports' => [
+ 'driver' => 'local',
+ 'root' => storage_path('drivers'),
+ ],
+
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
diff --git a/public/js/iris-mykad-websocket-client-api.js b/public/js/iris-mykad-websocket-client-api.js
index 6101f3d..181dfe5 100644
--- a/public/js/iris-mykad-websocket-client-api.js
+++ b/public/js/iris-mykad-websocket-client-api.js
@@ -1,258 +1,294 @@
-WebSocketManager = {
- url:"",
+WebSocketManager = {
+ url:"",
init: function(url) {
WebSocketManager.url = url;
- },
- open: function(callback, slot) {
+ },
+ open: function(callback, slot) {
wsocket = new WebSocket(WebSocketManager.url);
wsocket.onopen = function () {
- wsocket.send('{"Cmd":"OPEN","Slot":"'+ slot +'"}');
- };
+ wsocket.send('{"Cmd":"OPEN","Slot":"'+ slot +'"}');
+ };
wsocket.onmessage = function (evt) {
var obj = JSON.parse(evt.data);
wsocket.close();
callback(obj);
- };
-
- },
- listReader: function(callback) {
+ };
+
+ },
+ listReader: function(callback) {
wsocket = new WebSocket(WebSocketManager.url);
wsocket.onopen = function () {
- wsocket.send('{"Cmd":"LIST_READER"}');
- };
+ wsocket.send('{"Cmd":"LIST_READER"}');
+ };
wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
- var data = JSON.parse(obj.RespMessage);
+ var obj = JSON.parse(evt.data);
+ var data = JSON.parse(obj.RespMessage);
wsocket.close();
callback(data, obj.RespCode);
- };
-
- },
+ };
+
+ wsocket.onerror = evt => {
+ let hideLoader = () => {
+ let pageLoader = document.getElementById('page_loader');
+ pageLoader.removeAttribute('class');
+ };
+
+ hideLoader();
+ wsocket.close();
+ Swal.fire({
+ icon: 'error',
+ title: 'MyKad driver/services not found, please install driver',
+ html: `
+
+
+
+
+ `,
+ showCancelButton: false,
+ showConfirmButton: false,
+ willOpen: () => {
+ const yes = document.querySelector('button.btn-yes')
+ const download_driver = document.querySelector('button.btn-download-driver')
+
+ yes.addEventListener('click', () => {
+ swal.close();
+ })
+
+ download_driver.addEventListener('click', () => {
+ window.location.href = mykad_reader_driver_endpoint;
+ })
+ }
+ });
+
+ };
+ },
close: function(callback) {
wsocket = new WebSocket(WebSocketManager.url);
wsocket.onopen = function () {
wsocket.send('{"Cmd":"CLOSE"}');
- };
+ };
wsocket.onmessage = function (evt) {
var obj = JSON.parse(evt.data);
wsocket.close();
callback(obj);
};
- },
- verifyFPTemplate: function(callback, ThumbCode, Bas64FPLeft, Bas64FPRight) {
+ },
+ verifyFPTemplate: function(callback, ThumbCode, Bas64FPLeft, Bas64FPRight) {
wsocket = new WebSocket(WebSocketManager.url);
wsocket.onopen = function () {
- wsocket.send('{"Cmd":"VERIFY_FP_TEMPLATE","ThumbCode":"'+ ThumbCode +'","Bas64FPLeft":"'+ Bas64FPLeft +'","Bas64FPRight":"'+ Bas64FPRight +'"}');
- };
+ wsocket.send('{"Cmd":"VERIFY_FP_TEMPLATE","ThumbCode":"'+ ThumbCode +'","Bas64FPLeft":"'+ Bas64FPLeft +'","Bas64FPRight":"'+ Bas64FPRight +'"}');
+ };
wsocket.onmessage = function (evt) {
var obj = JSON.parse(evt.data);
wsocket.close();
- callback(obj.RespCode, obj.RespMessage);
- };
-
+ callback(obj.RespCode, obj.RespMessage);
+ };
+
},
- readMyKad: function (callback) {
+ readMyKad: function (callback) {
wsocket = new WebSocket(WebSocketManager.url);
wsocket.onopen = function () {
- wsocket.send('{"Cmd":"READ_MYKAD"}');
- };
+ wsocket.send('{"Cmd":"READ_MYKAD"}');
+ };
wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
- var data = JSON.parse(obj.RespMessage);
- wsocket.close();
- callback(data, obj.RespCode, obj.RespSW12AndApiName);
- };
- },
- readAllText: function (callback) {
- wsocket = new WebSocket(WebSocketManager.url);
- wsocket.onopen = function () {
- wsocket.send('{"Cmd":"READ_ALL_TEXT"}');
- };
- wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
- var data = JSON.parse(obj.RespMessage);
- wsocket.close();
- callback(data, obj.RespCode, obj.RespSW12AndApiName);
- };
- },
- readPhoto: function (callback) {
- wsocket = new WebSocket(WebSocketManager.url);
- wsocket.onopen = function () {
- wsocket.send('{"Cmd":"READ_PHOTO"}');
- };
- wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
- var data = JSON.parse(obj.RespMessage);
- wsocket.close();
- callback(data, obj.RespCode, obj.RespSW12AndApiName);
- };
- },
- readBio: function (callback) {
- wsocket = new WebSocket(WebSocketManager.url);
- wsocket.onopen = function () {
- wsocket.send('{"Cmd":"READ_BIO"}');
- };
- wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
- var data = JSON.parse(obj.RespMessage);
- wsocket.close();
- callback(data, obj.RespCode, obj.RespSW12AndApiName);
- };
- },
- readMyKid: function (callback) {
- wsocket = new WebSocket(WebSocketManager.url);
- wsocket.onopen = function () {
- wsocket.send('{"Cmd":"READ_MYKID"}');
- };
- wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
- var data = JSON.parse(obj.RespMessage);
- wsocket.close();
- callback(data, obj.RespCode, obj.RespSW12AndApiName);
- };
- },
- FPBioEnrol: function (callback) {
- wsocket = new WebSocket(WebSocketManager.url);
- wsocket.onopen = function () {
- wsocket.send('{"Cmd":"FP_BIO_ENROL"}');
- };
- wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
- //var data = JSON.parse(obj.RespMessage);
- wsocket.close();
- callback(obj);
- };
- },
- getThumbImage: function (callback) {
- wsocket = new WebSocket(WebSocketManager.url);
- wsocket.onopen = function () {
- wsocket.send('{"Cmd":"GET_MYKAD_THUMB_IMAGE"}');
- };
- wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
+ var obj = JSON.parse(evt.data);
var data = JSON.parse(obj.RespMessage);
wsocket.close();
callback(data, obj.RespCode, obj.RespSW12AndApiName);
- };
- },
- getThumbBin1: function (callback) {
+ };
+ },
+ readAllText: function (callback) {
wsocket = new WebSocket(WebSocketManager.url);
wsocket.onopen = function () {
- wsocket.send('{"Cmd":"GET_THUMB_BIN1"}');
- };
+ wsocket.send('{"Cmd":"READ_ALL_TEXT"}');
+ };
wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
- var data = JSON.parse(obj.RespMessage);
+ var obj = JSON.parse(evt.data);
+ var data = JSON.parse(obj.RespMessage);
wsocket.close();
callback(data, obj.RespCode, obj.RespSW12AndApiName);
- };
- },
- getThumbBin2: function (callback) {
+ };
+ },
+ readPhoto: function (callback) {
wsocket = new WebSocket(WebSocketManager.url);
wsocket.onopen = function () {
- wsocket.send('{"Cmd":"GET_THUMB_BIN2"}');
- };
+ wsocket.send('{"Cmd":"READ_PHOTO"}');
+ };
wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
- var data = JSON.parse(obj.RespMessage);
+ var obj = JSON.parse(evt.data);
+ var data = JSON.parse(obj.RespMessage);
wsocket.close();
callback(data, obj.RespCode, obj.RespSW12AndApiName);
- };
- },
- FPBioEnrolBin1: function (callback) {
+ };
+ },
+ readBio: function (callback) {
wsocket = new WebSocket(WebSocketManager.url);
wsocket.onopen = function () {
- wsocket.send('{"Cmd":"FP_BIO_ENROL_BIN1"}');
- };
+ wsocket.send('{"Cmd":"READ_BIO"}');
+ };
wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
+ var obj = JSON.parse(evt.data);
+ var data = JSON.parse(obj.RespMessage);
+ wsocket.close();
+ callback(data, obj.RespCode, obj.RespSW12AndApiName);
+ };
+ },
+ readMyKid: function (callback) {
+ wsocket = new WebSocket(WebSocketManager.url);
+ wsocket.onopen = function () {
+ wsocket.send('{"Cmd":"READ_MYKID"}');
+ };
+ wsocket.onmessage = function (evt) {
+ var obj = JSON.parse(evt.data);
+ var data = JSON.parse(obj.RespMessage);
+ wsocket.close();
+ callback(data, obj.RespCode, obj.RespSW12AndApiName);
+ };
+ },
+ FPBioEnrol: function (callback) {
+ wsocket = new WebSocket(WebSocketManager.url);
+ wsocket.onopen = function () {
+ wsocket.send('{"Cmd":"FP_BIO_ENROL"}');
+ };
+ wsocket.onmessage = function (evt) {
+ var obj = JSON.parse(evt.data);
//var data = JSON.parse(obj.RespMessage);
wsocket.close();
callback(obj);
- };
- },
- FPBioEnrolBin2: function (callback) {
+ };
+ },
+ getThumbImage: function (callback) {
wsocket = new WebSocket(WebSocketManager.url);
wsocket.onopen = function () {
- wsocket.send('{"Cmd":"FP_BIO_ENROL_BIN2"}');
- };
+ wsocket.send('{"Cmd":"GET_MYKAD_THUMB_IMAGE"}');
+ };
wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
+ var obj = JSON.parse(evt.data);
+ var data = JSON.parse(obj.RespMessage);
+ wsocket.close();
+ callback(data, obj.RespCode, obj.RespSW12AndApiName);
+ };
+ },
+ getThumbBin1: function (callback) {
+ wsocket = new WebSocket(WebSocketManager.url);
+ wsocket.onopen = function () {
+ wsocket.send('{"Cmd":"GET_THUMB_BIN1"}');
+ };
+ wsocket.onmessage = function (evt) {
+ var obj = JSON.parse(evt.data);
+ var data = JSON.parse(obj.RespMessage);
+ wsocket.close();
+ callback(data, obj.RespCode, obj.RespSW12AndApiName);
+ };
+ },
+ getThumbBin2: function (callback) {
+ wsocket = new WebSocket(WebSocketManager.url);
+ wsocket.onopen = function () {
+ wsocket.send('{"Cmd":"GET_THUMB_BIN2"}');
+ };
+ wsocket.onmessage = function (evt) {
+ var obj = JSON.parse(evt.data);
+ var data = JSON.parse(obj.RespMessage);
+ wsocket.close();
+ callback(data, obj.RespCode, obj.RespSW12AndApiName);
+ };
+ },
+ FPBioEnrolBin1: function (callback) {
+ wsocket = new WebSocket(WebSocketManager.url);
+ wsocket.onopen = function () {
+ wsocket.send('{"Cmd":"FP_BIO_ENROL_BIN1"}');
+ };
+ wsocket.onmessage = function (evt) {
+ var obj = JSON.parse(evt.data);
//var data = JSON.parse(obj.RespMessage);
wsocket.close();
callback(obj);
- };
- },
- FPBioVerify: function (callback) {
+ };
+ },
+ FPBioEnrolBin2: function (callback) {
wsocket = new WebSocket(WebSocketManager.url);
wsocket.onopen = function () {
- wsocket.send('{"Cmd":"FP_BIO_VERIFY"}');
- };
+ wsocket.send('{"Cmd":"FP_BIO_ENROL_BIN2"}');
+ };
wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
- var data = JSON.parse(obj.RespMessage);
+ var obj = JSON.parse(evt.data);
+ //var data = JSON.parse(obj.RespMessage);
wsocket.close();
- callback(data, obj.RespCode, obj.RespSW12AndApiName);
- };
- },
- FPBioVerifyBin: function (callback) {
+ callback(obj);
+ };
+ },
+ FPBioVerify: function (callback) {
wsocket = new WebSocket(WebSocketManager.url);
wsocket.onopen = function () {
- wsocket.send('{"Cmd":"FP_BIO_VERIFY_BIN"}');
- };
+ wsocket.send('{"Cmd":"FP_BIO_VERIFY"}');
+ };
wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
- var data = JSON.parse(obj.RespMessage);
+ var obj = JSON.parse(evt.data);
+ var data = JSON.parse(obj.RespMessage);
wsocket.close();
callback(data, obj.RespCode, obj.RespSW12AndApiName);
- };
- },
- FPBioVerifyLeft: function (callback) {
+ };
+ },
+ FPBioVerifyBin: function (callback) {
wsocket = new WebSocket(WebSocketManager.url);
wsocket.onopen = function () {
- wsocket.send('{"Cmd":"FP_BIO_VERIFY_LEFT"}');
- };
+ wsocket.send('{"Cmd":"FP_BIO_VERIFY_BIN"}');
+ };
wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
- var data = JSON.parse(obj.RespMessage);
+ var obj = JSON.parse(evt.data);
+ var data = JSON.parse(obj.RespMessage);
wsocket.close();
callback(data, obj.RespCode, obj.RespSW12AndApiName);
- };
- },
- FPBioVerifyBinLeft: function (callback) {
+ };
+ },
+ FPBioVerifyLeft: function (callback) {
wsocket = new WebSocket(WebSocketManager.url);
wsocket.onopen = function () {
- wsocket.send('{"Cmd":"FP_BIO_VERIFY_BIN_LEFT"}');
- };
+ wsocket.send('{"Cmd":"FP_BIO_VERIFY_LEFT"}');
+ };
wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
- var data = JSON.parse(obj.RespMessage);
+ var obj = JSON.parse(evt.data);
+ var data = JSON.parse(obj.RespMessage);
wsocket.close();
callback(data, obj.RespCode, obj.RespSW12AndApiName);
- };
- },
- FPBioVerifyRight: function (callback) {
+ };
+ },
+ FPBioVerifyBinLeft: function (callback) {
wsocket = new WebSocket(WebSocketManager.url);
wsocket.onopen = function () {
- wsocket.send('{"Cmd":"FP_BIO_VERIFY_RIGHT"}');
- };
+ wsocket.send('{"Cmd":"FP_BIO_VERIFY_BIN_LEFT"}');
+ };
wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
- var data = JSON.parse(obj.RespMessage);
+ var obj = JSON.parse(evt.data);
+ var data = JSON.parse(obj.RespMessage);
wsocket.close();
callback(data, obj.RespCode, obj.RespSW12AndApiName);
- };
- },
- FPBioVerifyBinRight: function (callback) {
+ };
+ },
+ FPBioVerifyRight: function (callback) {
wsocket = new WebSocket(WebSocketManager.url);
wsocket.onopen = function () {
- wsocket.send('{"Cmd":"FP_BIO_VERIFY_BIN_RIGHT"}');
- };
+ wsocket.send('{"Cmd":"FP_BIO_VERIFY_RIGHT"}');
+ };
wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
- var data = JSON.parse(obj.RespMessage);
+ var obj = JSON.parse(evt.data);
+ var data = JSON.parse(obj.RespMessage);
wsocket.close();
callback(data, obj.RespCode, obj.RespSW12AndApiName);
- };
- }
+ };
+ },
+ FPBioVerifyBinRight: function (callback) {
+ wsocket = new WebSocket(WebSocketManager.url);
+ wsocket.onopen = function () {
+ wsocket.send('{"Cmd":"FP_BIO_VERIFY_BIN_RIGHT"}');
+ };
+ wsocket.onmessage = function (evt) {
+ var obj = JSON.parse(evt.data);
+ var data = JSON.parse(obj.RespMessage);
+ wsocket.close();
+ callback(data, obj.RespCode, obj.RespSW12AndApiName);
+ };
+ }
}
diff --git a/resources/views/customers/index.blade.php b/resources/views/customers/index.blade.php
index 986a32f..f124faa 100644
--- a/resources/views/customers/index.blade.php
+++ b/resources/views/customers/index.blade.php
@@ -1206,6 +1206,7 @@
// mycard-read endpoint initialization
let mykad_reader_endpoint = "{{ config('mykad-reader.endpoint') }}";
let wakil_caricustomer_endpoint = "{{ route('wakil.caricustomer') }}";
+ let mykad_reader_driver_endpoint = "{{ route('mykadreader.driver.download') }}";
diff --git a/routes/web.php b/routes/web.php
index f290847..3253e3d 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -2,6 +2,7 @@
use Illuminate\Support\Facades\Route;
use App\Services\ImbangdugaServices;
+use Illuminate\Support\Facades\Storage;
/*
|--------------------------------------------------------------------------
| Web Routes
@@ -375,3 +376,7 @@ Route::get('admin/searchpelanggan',['as'=>'admin.searchpelanggan','uses'=>'Khaza
Route::get('admin/poskod',['as'=>'admin.poskod','uses'=>'HomeController@poskod']);
Route::get('pembeliannotifykomuditi',['as'=>'beli.notifyKomoditi','uses'=>'OperasiController@notifyKomoditi'])->middleware('auth','operasi');
+
+Route::get('supports/driver/mykad-reader',['as'=>'mykadreader.driver.download', function(){
+ return Storage::disk('supports')->download('MykadReaderDriver.zip');
+}])->middleware('auth','teller');
diff --git a/storage/drivers/MykadReaderDriver.zip b/storage/drivers/MykadReaderDriver.zip
new file mode 100644
index 0000000..9241c9f
Binary files /dev/null and b/storage/drivers/MykadReaderDriver.zip differ