Memperbaiki api
This commit is contained in:
parent
181f1cc236
commit
2ec7008f61
@ -9,6 +9,7 @@ use Tymon\JWTAuth\Facades\JWTFactory;
|
|||||||
use Illuminate\Support\Facades\Hash;
|
use Illuminate\Support\Facades\Hash;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
|
use GuzzleHttp\Client;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
@ -19,6 +20,7 @@ use Laravolt\Indonesia\Models\City;
|
|||||||
use Laravolt\Indonesia\Models\District;
|
use Laravolt\Indonesia\Models\District;
|
||||||
use Laravolt\Indonesia\Models\Province;
|
use Laravolt\Indonesia\Models\Province;
|
||||||
use Laravolt\Indonesia\Models\Village;
|
use Laravolt\Indonesia\Models\Village;
|
||||||
|
use Pusher\Pusher;
|
||||||
use Tymon\JWTAuth\Facades\JWTAuth;
|
use Tymon\JWTAuth\Facades\JWTAuth;
|
||||||
|
|
||||||
|
|
||||||
@ -120,26 +122,11 @@ class LoginApiController extends Controller
|
|||||||
$gender = $request->input('gender');
|
$gender = $request->input('gender');
|
||||||
$kode_kelurahan = $request->input('village_code');
|
$kode_kelurahan = $request->input('village_code');
|
||||||
|
|
||||||
// $ktpBase64 = $request->input('ktp');
|
|
||||||
// $wajahBase64 = $request->input('wajah');
|
|
||||||
|
|
||||||
// if ($ktpBase64 && $wajahBase64) {
|
|
||||||
// // Konversi string Base64 ke file gambar
|
|
||||||
// $ktpFile = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $ktpBase64));
|
|
||||||
// $wajahFile = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $wajahBase64));
|
|
||||||
|
|
||||||
// $foto_ktp = 'Foto-KTP-' . $nama_depan . '-' . $nama_belakang . '.jpg';
|
|
||||||
// $foto_wajah = 'Foto-Wajah-' . $nama_depan . '-' . $nama_belakang . '.jpg';
|
|
||||||
|
|
||||||
// file_put_contents(public_path('storage/foto-ktp/' . $foto_ktp), $ktpFile);
|
|
||||||
// file_put_contents(public_path('storage/foto-wajah/' . $foto_wajah), $wajahFile);
|
|
||||||
// }
|
|
||||||
|
|
||||||
if ($request->hasFile('ktp') && $request->hasFile('wajah')) {
|
if ($request->hasFile('ktp') && $request->hasFile('wajah')) {
|
||||||
$fileKtp = $request->file('ktp');
|
$fileKtp = $request->file('ktp');
|
||||||
$fileWajah = $request->file('wajah');
|
$fileWajah = $request->file('wajah');
|
||||||
$foto_ktp = $nama_depan.'-'.$nama_belakang. '.' . $fileKtp->getClientOriginalExtension();
|
$foto_ktp = 'Foto-KTP-'.$email. '.' . $fileKtp->getClientOriginalExtension();
|
||||||
$foto_wajah = $nama_depan.'-'.$nama_belakang. '.' . $fileWajah->getClientOriginalExtension();
|
$foto_wajah = 'Foto-Wajah'.$email.'.' . $fileWajah->getClientOriginalExtension();
|
||||||
$pathKtp = 'foto-ktp/' . $foto_ktp;
|
$pathKtp = 'foto-ktp/' . $foto_ktp;
|
||||||
$pathWajah = 'foto-wajah/' . $foto_wajah;
|
$pathWajah = 'foto-wajah/' . $foto_wajah;
|
||||||
|
|
||||||
@ -149,48 +136,59 @@ class LoginApiController extends Controller
|
|||||||
|
|
||||||
//OCR
|
//OCR
|
||||||
try {
|
try {
|
||||||
// $fotoKTP = public_path('storage/foto-ktp/' . $foto_ktp);
|
// OCR
|
||||||
|
$client = new Client();
|
||||||
|
$response = $client->request('POST', 'http://localhost:8888/process-image', [
|
||||||
|
'multipart' => [
|
||||||
|
[
|
||||||
|
'name' => 'image',
|
||||||
|
'contents' => fopen(public_path('storage/foto-ktp/'.$foto_ktp), 'r'),
|
||||||
|
'filename' => $foto_ktp,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
|
||||||
// $image = Image::make($fotoKTP);
|
$result = $response->getBody()->getContents();
|
||||||
|
|
||||||
// $image->greyscale(); // Convert to grayscale
|
$lines = json_decode($result,true);
|
||||||
// $image->contrast(10); // Increase contrast, adjust the value as needed
|
|
||||||
|
|
||||||
// $preprocessedfotoKTP = public_path('storage/preprocessed/preprocessed_image.jpg');
|
$namaKTP = str_replace(' ','',strtolower($nama_depan.$nama_belakang));
|
||||||
// $image->save($preprocessedfotoKTP);
|
$nikKTP = $nik;
|
||||||
|
$persentaseNama = 0;
|
||||||
|
$persentaseNik = 0;
|
||||||
|
|
||||||
// $result = (new TesseractOCR($preprocessedfotoKTP))->run();
|
foreach($lines['result'] as $line){
|
||||||
|
$teks = str_replace(' ','',strtolower($line));
|
||||||
|
$persentaseNamaSementara = 0;
|
||||||
|
$persentaseNikSementara = 0;
|
||||||
|
similar_text($teks,$namaKTP,$persentaseNamaSementara);
|
||||||
|
similar_text($teks,$nikKTP,$persentaseNikSementara);
|
||||||
|
|
||||||
// (5) Normalize
|
if($persentaseNamaSementara > 0){
|
||||||
|
if($persentaseNamaSementara > $persentaseNama){
|
||||||
|
$persentaseNama = $persentaseNamaSementara;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// $lines = explode("\n", $result);
|
if($persentaseNikSementara > 0){
|
||||||
// $namaOCR = '';
|
if($persentaseNikSementara > $persentaseNik){
|
||||||
// $nikOCR = '';
|
$persentaseNik = $persentaseNikSementara;
|
||||||
// $nikInputan = $nik;
|
}
|
||||||
// $namaInputan = $nama_depan . ' ' . $nama_belakang;
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// foreach ($lines as $line) {
|
$persentase_kemiripan = ($persentaseNama + $persentaseNik)/2;
|
||||||
// // Mencari NIK
|
|
||||||
// if (strpos($line, $nikInputan) !== false) {
|
|
||||||
// $nikOCR = preg_replace('/[^0-9]/', '', $line);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // Mencari nama
|
$status = 'Progress';
|
||||||
// if (strpos($line, $namaInputan) !== false) {
|
|
||||||
// $namaOCR = trim(substr($line, strpos($line, ':') + 1));
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
//Selesai
|
if($status >= 50){
|
||||||
|
$status = 'Finished';
|
||||||
// $persentase_kemiripan = (similar_text($nikInputan, $nikOCR, $percent) + similar_text($namaOCR, $namaOCR, $percent)) / 2;
|
}else if($status <= 35){
|
||||||
// $status = 'Progress';
|
return response()->json([
|
||||||
|
'status' => false,
|
||||||
// if (similar_text($nikInputan, $nikOCR, $percent) >= 70 && similar_text($namaOCR, $namaOCR, $percent) >= 70) {
|
'message' => 'Sistem tidak dapat mendeteksi foto KTP. Kemungkinan foto tidak jelas atau buram, silahkan upload foto KTP yang jelas. Persentase kemiripan inputan : '.$persentase_kemiripan.'%'
|
||||||
// $status = 'Progress';
|
]);
|
||||||
// } else {
|
}
|
||||||
// $status = 'Progress';
|
|
||||||
// }
|
|
||||||
|
|
||||||
DB::beginTransaction();
|
DB::beginTransaction();
|
||||||
|
|
||||||
@ -212,14 +210,35 @@ class LoginApiController extends Controller
|
|||||||
'gender' => $gender,
|
'gender' => $gender,
|
||||||
'kode_kelurahan' => $kode_kelurahan,
|
'kode_kelurahan' => $kode_kelurahan,
|
||||||
'remember_token' => Str::random(10),
|
'remember_token' => Str::random(10),
|
||||||
|
'status' => $status
|
||||||
]);
|
]);
|
||||||
|
|
||||||
DB::commit();
|
DB::commit();
|
||||||
|
|
||||||
|
$options = [
|
||||||
|
'cluster' => 'ap1',
|
||||||
|
'useTLS' => true,
|
||||||
|
];
|
||||||
|
|
||||||
|
$pusher = new Pusher('3e5bdc20dddd7fbc655e', 'f2274c37c616d29ff590', '1659859', $options);
|
||||||
|
|
||||||
|
$payload = [
|
||||||
|
'service' => 'User',
|
||||||
|
];
|
||||||
|
|
||||||
|
$pusher->trigger('chanel-update-notifikasi-untuk-admin', 'event-update-notifikasi-untuk-admin', $payload);
|
||||||
|
|
||||||
|
if($status == 'Finished'){
|
||||||
|
return response()->json([
|
||||||
|
'status' => true,
|
||||||
|
'message' => 'Akun anda sudah terdaftar dan dapat digunakan',
|
||||||
|
]);
|
||||||
|
}else{
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'status' => true,
|
'status' => true,
|
||||||
'message' => 'Akun anda sudah terdaftar dan butuh verifikasi hingga maksimal 1 hari kerja',
|
'message' => 'Akun anda sudah terdaftar dan butuh verifikasi hingga maksimal 1 hari kerja',
|
||||||
]);
|
]);
|
||||||
|
}
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
DB::rollBack();
|
DB::rollBack();
|
||||||
|
|
||||||
|
@ -182,8 +182,6 @@ class LoginController extends Controller
|
|||||||
$ktpBase64 = $request->request->get('ktp');
|
$ktpBase64 = $request->request->get('ktp');
|
||||||
$wajahBase64 = $request->request->get('wajah');
|
$wajahBase64 = $request->request->get('wajah');
|
||||||
|
|
||||||
// $validatedData['email_verified_at'] = now();
|
|
||||||
|
|
||||||
if ($ktpBase64 && $wajahBase64) {
|
if ($ktpBase64 && $wajahBase64) {
|
||||||
// Konversi string Base64 ke file gambar
|
// Konversi string Base64 ke file gambar
|
||||||
$ktpFile = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $ktpBase64));
|
$ktpFile = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $ktpBase64));
|
||||||
|
@ -151,7 +151,7 @@ class PembeliController extends Controller
|
|||||||
'name' => $nama_barang,
|
'name' => $nama_barang,
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'id' => 'BA01',
|
'id' => 'BA'.random_int(1,9),
|
||||||
'price' => $total_keuntungan,
|
'price' => $total_keuntungan,
|
||||||
'quantity' => 1,
|
'quantity' => 1,
|
||||||
'name' => 'Biaya Admin',
|
'name' => 'Biaya Admin',
|
||||||
@ -894,7 +894,7 @@ class PembeliController extends Controller
|
|||||||
';
|
';
|
||||||
}
|
}
|
||||||
|
|
||||||
if($row->status_transaksi == 'sent'){
|
// if($row->status_transaksi == 'sent'){
|
||||||
$html_code .= '
|
$html_code .= '
|
||||||
<li><a class="dropdown-item" data-toggle="modal"
|
<li><a class="dropdown-item" data-toggle="modal"
|
||||||
data-target="#modalFinish"
|
data-target="#modalFinish"
|
||||||
@ -902,7 +902,7 @@ class PembeliController extends Controller
|
|||||||
href="#">Selesaikan</a>
|
href="#">Selesaikan</a>
|
||||||
</li>
|
</li>
|
||||||
';
|
';
|
||||||
}
|
// }
|
||||||
|
|
||||||
$html_code .= '
|
$html_code .= '
|
||||||
</ul>
|
</ul>
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 131 KiB After Width: | Height: | Size: 194 KiB |
@ -59,11 +59,11 @@
|
|||||||
@include('user.transaction.pembeli.modal-end-transaction')
|
@include('user.transaction.pembeli.modal-end-transaction')
|
||||||
@include('user.transaction.pembeli.modal-tracking')
|
@include('user.transaction.pembeli.modal-tracking')
|
||||||
@include('user.transaction.pembeli.modal-keterangan-status')
|
@include('user.transaction.pembeli.modal-keterangan-status')
|
||||||
|
<script type="text/javascript" src="https://app.sandbox.midtrans.com/snap/snap.js"
|
||||||
|
data-client-key="SB-Mid-client-lEMALcmIPviksRRe"></script>
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@section('tambahan-js')
|
@section('tambahan-js')
|
||||||
<script type="text/javascript" src="https://app.sandbox.midtrans.com/snap/snap.js"
|
|
||||||
data-client-key="SB-Mid-client-lEMALcmIPviksRRe"></script>
|
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
let listPembeli = $('#table-pembeli').DataTable({
|
let listPembeli = $('#table-pembeli').DataTable({
|
||||||
|
@ -20,18 +20,15 @@
|
|||||||
refund. Harap diminta kesadaran penuh anda sebelum memilih selesaikan transaksi atau
|
refund. Harap diminta kesadaran penuh anda sebelum memilih selesaikan transaksi atau
|
||||||
ajukan
|
ajukan
|
||||||
komplain.</p>
|
komplain.</p>
|
||||||
</div>
|
|
||||||
</div>
|
<div class="container">
|
||||||
</div>
|
<div class="row justify-content-center d-flex">
|
||||||
<div class="row m-4">
|
<div class="col-6">
|
||||||
<div class="col-12">
|
<img src="{{ asset('assets/img/modal-end/approve.png') }}" class="img-fluid"
|
||||||
<div class="activities">
|
|
||||||
<div class="col-6 d-flex justify-content-center">
|
|
||||||
<img src="{{ asset('assets/img/modal-end/approve.png') }}" style="width:100%;"
|
|
||||||
alt="approve">
|
alt="approve">
|
||||||
</div>
|
</div>
|
||||||
<div class="col-6 d-flex justify-content-center">
|
<div class="col-6">
|
||||||
<img src="{{ asset('assets/img/modal-end/refund.png') }}" style="width:100%;"
|
<img src="{{ asset('assets/img/modal-end/refund.png') }}" class="img-fluid"
|
||||||
alt="refund">
|
alt="refund">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -39,6 +36,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="modal-footer d-flex justify-content-center">
|
<div class="modal-footer d-flex justify-content-center">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user