Skip to content

Backend

Logic Intergrasi
08 Maret 2025Rd Fakhri Fadhlan Dantiano
Riwayat Dokumentasi
VersiTanggalAktorKeterangan
v1.008/Mar/2025Rd Fakhri Fadhlan DantianoKonten

Persiapan Integrasi

Konfigurasi disini mengacu pada persiapan dalam inisialisasi Key yang diberikan pihak GoFluent dan kebutuhan tambahan dalam helper, kemudian Controller melakukan pengolahan konfigurasi tersebut sebagai logic, tentu nantinya akan penulis jelaskan di Artikel berikutnya bagian Backend.

File Config

Agar inisialisasi key serta endpoint mudah diatur, file config menjadi andalan untuk menampung itu semua, file tersebut anda bisa lihat di folder config letaknya menjadi satu bagian dengan folder project modules yakni Learning.

  • DirectoryAplication
    • DirectoryModules
      • Directorylearning
        • Directoryconfig
          • gofluent_config.php
        • controllers

Fungsi dan tujuannya key serta spesifikasi lainnya untuk kepentingan authentification saat melakukan pengiriman data pegawai ke backend GoFluent di dalam proses SSO, sehingga GoFluent mengenali bahwa data yang dikirimkan adalah milik PT. Pelni (Persero).

$config['GOFLUENT_SSO_KEY'] = '81e2b46b2e281975';
$config['GOFLUENT_SSO_IV'] = '92363f33mynvfLaA';
$config['GOFLUENT_SSO_ALGO'] = 'AES-128-CBC';
$config['GOFLUENT_SSO_URL'] = 'https://portal.gofluent.com/api/v1.0/sso/connect';
$config['GOFLUENT_SSO_ID'] = 'paramPelni';
$config['GOFLUENT_PROVIDER_ID'] = 'SSOPelni';

secret_keydan custom_iv dibuat dari kesepakatan bersama antara PT. Pelni dan GoFluent. Berikut adalah email terlampir bentuk kesepakatan dalam menentukan Key dan IV nya, disepakati pada tanggal 18-10-2024.

alt text

File Helper

  • DirectoryAplication
    • Directorycontrollers
      • core
      • Directoryhelpers
        • gofluent_helper.php

Di dalam helper terdapat Function encrypt_gofluent untuk mengenskripsi sebuah string menggunakan algoritma OpenSSL.

function encrypt_gofluent($string, $algo = null, $secret_key = null, $custom_iv = null) {
return strtoupper(bin2hex(openssl_encrypt($string, $algo, $secret_key, OPENSSL_RAW_DATA, $custom_iv)));
}
  • $string → Data json yang telah diconvert menjadi string dan siap dienkripsi.
  • $algo → Algoritma enkripsi yang digunakan (disini: ‘AES-256-CBC’).
  • $secret_key → Kunci rahasia yang digunakan untuk proses enkripsi
  • $custom_iv → Kuci rahasia Vector (IV) sebagai pengaman tambahan pada enskripsi.