black-coffee04 / ws-siasn-php
软件开发套件 Web 服务 SiASN
Requires
- php: >=7.4
- ext-curl: *
- ext-json: *
- guzzlehttp/guzzle: ^7.8
Requires (Dev)
- phpunit/phpunit: ^9.6
README
欢迎来到 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 的依赖项,以下是步骤
-
编辑 composer.json 文件
打开您的项目中的
composer.json
文件。 -
添加依赖项行
在
"require"
部分添加以下行{ "require": { "black-coffee04/ws-siasn-php": "^1.*" } }
手动安装
如果您选择手动安装 SDK SiASN,以下是步骤
-
下载 SDK
-
解压 SDK
将 SDK 文件解压到您的项目目录中。
-
使用 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安装了依赖项,并配置了之前所述的必要设置。
运行测试的步骤
-
准备环境
请确保您的开发环境已准备好,并安装了PHP >= 7.4以及所需的扩展,如
ext-curl
和ext-json
。 -
克隆仓库
将SDK克隆到您的本地计算机
git clone https://github.com/black-coffee04/ws-siasn-php.git cd ws-siasn-php
-
安装依赖项
使用Composer安装所有依赖项
composer install
-
运行测试
运行命令来运行测试
composer test composer test:service #Testing service