black-coffee04/ws-siasn-php

软件开发套件 Web 服务 SiASN

1.1.1 2024-09-30 01:53 UTC

This package is auto-updated.

Last update: 2024-09-30 01:55:24 UTC


README

Latest Version PHP Version tests Total Downloads

欢迎来到 SiASN Web 服务 SDK!该 SDK 设计用于简化开发人员使用 PHP 访问 SiASN 服务的操作。使用本 SDK,您可以轻松地将应用程序与 SiASN 服务集成,如身份验证、数据参考访问和其他操作。

目录

安装

系统需求

在继续安装 SiASN SDK 之前,请确保您的系统满足以下要求

  • 所需的最低 PHP 版本是 7.4
  • 所需的 PHP 扩展
    • ext-curl
    • ext-json

使用 Composer 安装

您可以使用 Composer 安装 SDK SiASN。在开始之前,请确保您已安装 Composer。

composer require black-coffee04/ws-siasn-php

或者

将依赖项行添加到您的 composer.json 文件中

如果您选择通过文件 composer.json 添加 SDK SiASN 的依赖项,以下是步骤

  1. 编辑 composer.json 文件

    打开您的项目中的 composer.json 文件。

  2. 添加依赖项行

    "require" 部分添加以下行

    {
        "require": {
            "black-coffee04/ws-siasn-php": "^1.*"
        }
    }
    

手动安装

如果您选择手动安装 SDK SiASN,以下是步骤

  1. 下载 SDK

    下载 SiASN SDK.

  2. 解压 SDK

    将 SDK 文件解压到您的项目目录中。

  3. 使用 Autoload

    确保将 SDK 的 autoload.php 文件添加到您的项目中。此文件将配置自动加载,以便正确访问 SDK 的类。以下是在 PHP 应用程序中使用 autoload 的示例

    require_once __DIR__ . '/path/to/ws-siasn-php/autoload.php';

配置

在开始使用 SiASN SDK 之前,请确保您已准备所需的配置。这些配置通常包含用于访问 SiASN 服务的身份验证信息和其他设置。以下是需要准备的示例配置

require_once __DIR__ . './../vendor/autoload.php';

use SiASN\Sdk\SiasnClient;

$config = [
    "consumerKey"    => 'consumerKeyAnda',
    "consumerSecret" => 'consumerSecretAnda',
    "clientId"       => 'clientIdAnda',
    "username"       => 'usernameAnda',
    "password"       => 'passwordAnda'
];

$siasnClient = new SiasnClient($config);

配置详情

或者

您可以在 examples 文件夹中查看示例用法。

API 文档

身份验证

以下是 Authentication 资源中可用的完整方法列表

身份验证用法示例

获取 WSO 访问令牌

$siasnClient->authentication()->getWsoAccessToken();

获取 SSO 访问令牌

$siasnClient->authentication()->getSsoAccessToken();

参考

以下是 Reference 资源中可用的完整方法列表

参考用法示例

#Buat ke true apa bila ingin menyimpan dalam cache, cache akan expired dalam 1 jam
$storeCache = true; 

#Mengambil referensi data unor
$siasnClient->referensi()->unor($cache)->get();

#Mengambil referensi data agama
$siasnClient->referensi()->agama()->get();

其他方法

  • ->search($attributes):根据指定的属性执行搜索。
  • ->like($keywords):使用指定的关键字在指定的属性上执行筛选。
  • ->limit($limit):根据 $limit 值限制显示的数据量。
  • ->get():获取搜索和筛选数据的结果。

注意:此方法仅适用于资源引用调用,不能用于其他资源

其他方法用法示例

# Mengambil semua data referensi Unit Organisasi (UNOR)
$unorData = $siasnClient->referensi()->unor()->get();

# Mengambil data referensi UNOR dengan batasan 3 data
$unorDataLimited = $siasnClient->referensi()->unor()->limit(3)->get();

# Mengambil data referensi UNOR berdasarkan atribut 'NamaUnor' yang mengandung kata 'puskesmas' dengan batasan 3 data
$filteredUnorData = $siasnClient->referensi()
                                ->agama()
                                ->search('NamaUnor')
                                ->like('puskesmas')
                                ->limit(3)
                                ->get();

# Mengambil semua data referensi UNOR berdasarkan atribut 'NamaUnor' yang mengandung kata 'puskesmas'
$unfilteredUnorData = $siasnClient->referensi()
                                  ->agama()
                                  ->search('NamaUnor')
                                  ->like('puskesmas')
                                  ->get();

PNS

以下是 PNS 资源中可用的完整方法列表

PNS API 用法示例

$nipAsn = 'xxxxxxxxxxxxxxxxxxxxx';

#Mengambil data pns berdasarkan NIP
$siasn  = new SiasnClient($config);

#Mengambil Data Utama
$dataUtama = $siasn->pns()->dataUtama($nipAsn);

$data = [
    "alamat"          => "string",
    "email"           => "string",
    "email_gov"       => "string",
    "kabupaten_id"    => "string",
    "karis_karsu"     => "string",
    "kelas_jabatan"   => "string",
    "kpkn_id"         => "string",
    "lokasi_kerja_id" => "string",
    "nomor_bpjs"      => "string",
    "nomor_hp"        => "string",
    "nomor_telpon"    => "string",
    "npwp_nomor"      => "string",
    "npwp_tanggal"    => "string",
    "pns_orang_id"    => "string",
    "tanggal_taspen"  => "string",
    "tapera_nomor"    => "string",
    "taspen_nomor"    => "string",
];
#Update data utama
$update = $siasn->pns()->updateDataUtama($nipAsn);
var_dump($update);

职位

以下是职位资源中可用的完整方法列表

其他方法

->includeDokumen($file):在添加职位数据时添加文档/文件,可以使用url/二进制文件。

API职位使用示例

获取公务员数据

$siasnClient->jabatan()->pns($nipAsn);

#Menambahakan data jabatan beserta dokumennya
$dokumen = "http://url/to/pdf"; #Bisa mengunakan url/binary file
$riwayatJabatanId = $siasnClient->jabatan()
    ->create($data)
    ->includeDokumen($dokumen) 
    ->save();

文件

以下是文档资源上可用的完整方法列表

API文档使用示例

$idRefDokumen = 'string';
$dokumen      = 'path\to\esample.pdf' #Dapat menggunakan binary dokumen/URL dokumen;
$path         = 'path/to/penyimpanan/dokumen';
$fileName     = 'nama file tanpa extensi'; #Nama file tanpa extensi

$response     = $siasnClient->dokumen()->upload($idRefDokumen, $dokumen);
#Save dokumen ke local server
echo $siasnClient->dokumen()->download($response)->setName($fileName)->saveTo($path);

#Tampilkan dokumen tanpa menyimpan
$siasnClient->dokumen()->download($response)->setName($fileName)->outputStream();

退休

以下是退休资源上可用的完整方法列表

API退休使用示例

$tanggalAwal   = '2022-01-01';
$tanggalAkhir  = '2022-12-01';

$daftarPemberhentian   = $siasnClient->pemberhentian()->get($tanggalAwal, $tanggalAkhir);

采购

以下是采购资源上可用的完整方法列表

API采购使用示例

$tahunAnggaran = '2023';

$daftarPengadaan  = $siasnClient->pengadaan()->get($tahunAnggaran);
$dokumenPengadaan = $siasnClient->pengadaan()->dokumen();

奖励

以下是奖励资源上可用的完整方法列表

API奖励使用示例

#minyam data penghargaan
$data = [
    "hargaId"    => "ref_penghargaan",
    "pnsOrangId" => "pnsOrangId",
    "skDate"     => "dd-mm-yyyy",
    "skNomor"    => "string",
    "tahun"      => int,
];

$response = $siasnClient->penghargaan()->create($data)->save();

if (isset($response['success']) && $response['success']) {
    #mengambil data riwayat penghargaan
    $penghargaan = $siasnClient->penghargaan()->get($response['data']['id']);
}

print_r($penghargaan);

#Hapus data riwayat penghargaan
$siasnClient->penghargaan()->remove($idRiwayatPenghargaan)

晋升

以下是KP资源上可用的完整方法列表

SiASN客户端方法列表

API晋升使用示例

$periode = '2022-04-01';

$daftarKp = $siasnClient->kp()->get($periode);

记录

以下是历史资源上可用的完整方法列表

API历史使用示例

$nip  = 'xxxxxxxxxxxxxxxxxx';

$riwayatKursus = $siasnClient->riwayat()->kursus($nip);

信用分

以下是学分资源上可用的完整方法列表

API学分使用示例

$data = [
    "bulanMulaiPenailan"   => "string",
    "bulanSelesaiPenailan" => "string",
    "isAngkaKreditPertama" => "string",
    "isIntegrasi"          => "string",
    "isKonversi"           => "string",
    "kreditBaruTotal"      => "string",
    "kreditPenunjangBaru"  => "string",
    "kreditUtamaBaru"      => "string",
    "nomorSk"              => "string",
    "pnsId"                => "pnsId",
    "rwJabatanId"          => "rwJabatanId",
    "tahunMulaiPenailan"   => "yyyy",
    "tahunSelesaiPenailan" => "yyyy",
    "tanggalSk"            => "dd-mm-yyyy",
];

#Menyimpan data angka kredir
$response = $siasnClient->angkaKredit()
    ->create($data)
    ->includeDokumen("https://url_to_file_angka_kredit.pdf")
    ->save();
if (isset($response['success']) && $response['success']) {
    #Mengambil data angka kredir
    $angkaKredit = $siasnClient->angkaKredit()->get($response['data']['id']);
    #Menghapus data angka kredir
    $angkaKredit = $siasnClient->angkaKredit()->remove($response['data']['id']);
}
var_dump($angkaKredit);die();

CPNS

以下是CPNS资源上可用的完整方法列表

API CPNS使用示例

$skCpns = "path/to/dokumen.pdf";
$spmt = "path/to/dokumen.pdf";
$siasnClient->cpns()
    ->create($data)
    ->includeDokumen($skCpns, $spmt) #URL FILE atau Path to dokumen
    ->save()

培训

以下是培训资源上可用的完整方法列表

API培训使用示例

$data = [
    "bobot"                  => integer,
    "id"                     => null,
    "institusiPenyelenggara" => "string",
    "jenisKompetensi"        => "string",
    "jumlahJam"              => integer,
    "latihanStrukturalId"    => "string",
    "nomor"                  => "string",
    "pnsOrangId"             => "string",
    "tahun"                  => integer,
    "tanggal"                => "d-m-Y",
    "tanggalSelesai"         => "d-m-Y",
];
$response = $siasnClient->diklat()
    ->create($data)
    ->includeDokumen("file.pdf") //Hapus methods ini jika tidak menggunakan dokumen
    ->save();

$riwayatDiklat = $siasnClient->diklat()->get($response['data']['id']);
print_r($riwayatDiklat);

$riwayatDiklat = $siasnClient->diklat()->remove($response['data']['id']);

纪律处分

以下是纪律处分资源上可用的完整方法列表

API纪律处分使用示例

$data = [
    "akhirHukumanTanggal"       => "string",
    "alasanHukumanDisiplinId"   => "string",
    "golonganId"                => "string",
    "golonganLama"              => "string",
    "hukdisYangDiberhentikanId" => "string",
    "hukumanTanggal"            => "string",
    "id"                        => "string",
    "jenisHukumanId"            => "string",
    "jenisTingkatHukumanId"     => "string",
    "kedudukanHukumId"          => "string",
    "keterangan"                => "string",
    "masaBulan"                 => "string",
    "masaTahun"                 => "string",
    "nomorPp"                   => "string",
    "pnsOrangId"                => "string",
    "skNomor"                   => "string",
    "skPembatalanNomor"         => "string",
    "skPembatalanTanggal"       => "string",
    "skTanggal"                 => "string",
];
$response = $siasnClient->hukdis()
    ->create($data)
    ->includeDokumen("path/to/dokumen.pdf") //Hapus metod ini apabila tidak menggunakan dokumen
    ->save();

print_r($siasnClient->hukdis()->get($response['data']['id']));

定期绩效

以下是定期绩效资源上可用的完整方法列表

API定期绩效使用示例

$data        = [
    "bulanMulaiPenilaian"   => "numeric",
    "bulanSelesaiPenilaian" => "numeric",
    "hasilKinerjaNilai"     => "referensi perilakuDanKinerja", //integer
    "koefisienId"           => "referensi koefisien",
    "kuadranKinerjaNilai"   => referensi kuadranNilai,
    "penilaiGolongan"       => "referensi golonganPns",
    "penilaiJabatanNama"    => "string",
    "penilaiNama"           => "string",
    "penilaiNipNrp"         => "string",
    "penilaiUnorNama"       => "string",
    "perilakuKerjaNilai"    => "referensi perilakuDanKinerja", //integer,
    "periodikId"            => "referensi periodik",
    "pnsDinilaiId"          => "string",
    "statusPenilai"         => "ASN/NON ASN",
    "tahun"                 => integer,
    "tahunMulaiPenilaian"   => integer,
    "tahunSelesaiPenilaian" => integer,
];

$response = $siasnClient->kinerjaPeriodik()
    ->create($data)
    ->includeDokumen("https://pdfobject.com/pdf/sample.pdf")
    ->save();

$deleted = $siasnClient->kinerjaPeriodik()->remove($response['data']['id']);

课程

以下是课程资源上可用的完整方法列表

API课程使用示例

$data = [
    "instansiId"             => "string",
    "institusiPenyelenggara" => "string",
    "jenisDiklatId"          => "referensi jenis diklat",
    "jenisKursus"            => "",
    "jenisKursusSertipikat"  => "string",
    "jumlahJam"              => integer,
    "lokasiId"               => "",
    "namaKursus"             => "string",
    "nomorSertipikat"        => "string",
    "pnsOrangId"             => "string",
    "tahunKursus"            => integer,
    "tanggalKursus"          => "string",
    "tanggalSelesaiKursus"   => "string",
];
$response = $siasnClient->kursus()->create($data)->save();
$kursus = $siasnClient->kursus()->get($response['data']['id']);

$siasnClient->kursus()->remove($response['data']['id']);

工作绩效评估

以下是SKP资源上可用的完整方法列表

SiASN客户端SKP方法列表

API SKP使用示例

#minyam data kursus
$response = $siasnClient->skp()
    ->create($tahun, $data)
    ->includeDokumen($file)
    ->save();

#mengambil data riwayat skp
$skp = $siasnClient->skp()->get($tahun, $idRiwayatSkp);

print_r($skp);

运行测试

要运行此SDK的测试,请确保您已使用Composer安装了依赖项,并配置了之前所述的必要设置。

运行测试的步骤

  1. 准备环境

    请确保您的开发环境已准备好,并安装了PHP >= 7.4以及所需的扩展,如ext-curlext-json

  2. 克隆仓库

    将SDK克隆到您的本地计算机

    git clone https://github.com/black-coffee04/ws-siasn-php.git
    cd ws-siasn-php
  3. 安装依赖项

    使用Composer安装所有依赖项

    composer install
  4. 运行测试

    运行命令来运行测试

    composer test
    
    composer test:service #Testing service

许可协议

MIT