Transaction History
Ringkasan
Layanan ini digunakan untuk mengelola dan menampilkan daftar riwayat transaksi bisnis Paydia pengguna. Informasi detail akan dijelaskan pada bagian selanjutnya.
Spesifikasi API Paydia akan mencakup 1 endpoint utama, yaitu:
No | Nama API | Deskripsi |
---|---|---|
1 | Riwayat Transaksi | API ini digunakan untuk mengambil daftar riwayat transaksi bisnis Paydia pengguna |
Pembuatan dan Validasi Signature
Berikut akan dijelaskan tentang Pembuatan dan validasi Signature.
Simetris dengan Akses Token B2B (HMAC_SHA512)
Langkah-langkah berikut akan menjelaskan Simetris dengan Akses Token B2B (HMAC_SHA512).
Pembuatan Signature Digital
Terapkan Signature Token B2B
- Rangkai string yang akan ditandatangani:
- String Signature dihasilkan dari string yang akan ditandatangani di atas dengan menerapkan SHA-256 dengan enkripsi RSA-2048 menggunakan kunci privat pkcs8, dan kemudian kodekan hasilnya ke base64.
- Letakkan string Signature ke dalam header HTTP “X-SIGNATURE“ saat memanggil API untuk menerapkan akses token B2B.
X-CLIENT-KEY + "|" + X-TIMESTAMP |
Signature Transaksi
- Rangkai string yang akan ditandatangani:
- String Signature dihasilkan dari string yang akan ditandatangani di atas dengan menerapkan enkripsi HMAC_SHA512 menggunakan kunci rahasia yang diberikan oleh Paydia, dan kemudian kodekan hasilnya ke base64.
- Letakkan string Signature ke dalam header HTTP “X-SIGNATURE“ saat memanggil API Paydia.
HTTP METHOD + ”:” + URL PATH RELATIF + “:“ + TOKEN AKSES B2B + “:“ + LowerCase(HexEncode(SHA-256(Minify(HTTP BODY)))) + “:“ + X-TIMESTAMP |
Validasi Signature Digital
Terapkan Signature Token B2B
Berikut adalah langkah-langkah Pembuatan Signature digital:
- Ambil Signature dari header HTTP “X-SIGNATURE“.
- Dekripsi Signature menggunakan kunci publik yang sesuai dengan kunci privat yang digunakan untuk menghasilkan Signature.
- Verifikasi kebenaran Signature berdasarkan enkripsi SHA-256 dengan enkripsi RSA-2048 terhadap string yang akan ditandatangani.
- Jika verifikasi benar, maka terima pesan tersebut.
Signature Transaksi
- Rangkai string yang akan ditandatangani:
- Hasilkan Signature dari string yang akan ditandatangani di atas dengan menerapkan enkripsi HMAC_SHA512 menggunakan kunci rahasia yang diberikan oleh Paydia, dan kemudian kodekan hasilnya ke base64.
- Ambil Signature dari header HTTP “X-SIGNATURE“.
- Bandingkan nilai antara X-SIGNATURE dan Signature yang dihasilkan, jika nilai tersebut sama, maka terima pesan tersebut.
HTTP METHOD + ”:” + URL PATH RELATIF + “:“ + TOKEN AKSES B2B + “:“ + LowerCase(HexEncode(SHA-256(Minify(HTTP BODY)))) + “:“ + X-TIMESTAMP |
Asimetris tanpa Akses Token (SHA256withRSA)
Langkah-langkah berikut akan menjelaskan Asimetris tanpa Akses Token (SHA256withRSA).
Pembuatan Kunci Asimetris
Berikut akan dijelaskan tentang Pembuatan kunci asimetris:
- Buat Kunci Privat
- Ekspor Kunci Publik
- Kodekan Kunci Privat ke PKCS#8
openssl genrsa -out rsa_private_key.pem 2048 |
openssl rsa -in rsa_private_key.pem -out rsa_public_key.pem -pubout |
openssl pkcs8 -topk8 -in rsa_private_key.pem -out pkcs8_rsa_private_key.pem -nocrypt |
Mitra harus menghasilkan Signature dengan pkcs8_rsa_private_key.pem, dan Paydia akan menggunakan rsa_public_key.pem untuk memvalidasi Signature dan sebaliknya.
Pembuatan Signature Digital
Berikut adalah langkah-langkah Pembuatan Signature digital:
- Rangkai string yang akan ditandatangani:
- Terapkan token:
- Transaksional:
- String Signature dihasilkan dari string yang akan ditandatangani di atas dengan menerapkan enkripsi SHA-256 dengan enkripsi RSA-2048 menggunakan kunci privat pkcs8, dan kemudian kodekan hasilnya ke base64.
- Letakkan string Signature ke dalam header HTTP “X-SIGNATURE“.
X-CLIENT-KEY + "|" + X-TIMESTAMP |
HTTP METHOD + ”:” + URL PATH RELATIF + “:“ + LowerCase(HexEncode(SHA-256(Minify(HTTP BODY)))) + “:“ + X-TIMESTAMP |
Contoh:
X-SIGNATURE: HVbXQ3t0LFSwQeIhsyBKyqzDwPvzEMOWkcvd/meK5FmflPtkAMPgIEnpITcGHGNrXi8yOAsaNLOYwk2/FEp5bKpj9IsEXerCmnAtEs6Ys6pn6SwtGdm+ds99ClppYbJ+D6S1hf+r2NwJ8noFK1CnwxJaN67vj/zKIlNNltsXbJUAlo3FDsoJYXtWS9yda87vzqn2N38xTiYVQrdwQv2uilMZQf/cI92Wejm80W6qiW3sizqo0I3vi3CHUHgE672/Jy1UWAIymPYjGW1WOzfnCWRjG5OcFW1qkUqGt2GIlR7GzlZaduj/mVOnOg+kbQ6BNxdsU+ZbBdADsEwmUsfpIg== |
Validasi Signature Digital
Berikut adalah langkah-langkah validasi Signature digital:
- Ambil Signature dari header HTTP “X-SIGNATURE“.
- Dekripsi Signature menggunakan kunci publik yang sesuai dengan kunci privat yang digunakan untuk menghasilkan Signature.
- Verifikasi kebenaran Signature berdasarkan enkripsi SHA-256 dengan enkripsi RSA-2048 terhadap string yang akan ditandatangani.
- Jika verifikasi benar, maka terima pesan tersebut.
Versi Dokumen
Tabel berikut digunakan untuk menunjukkan versi dokumen ini:
No | Tanggal | Versi | Catatan | Halaman |
---|---|---|---|---|
1 | 10 Mei 2023 | 1.2.2 |
| |
2 | 27 April 2023 | 1.2.1 |
|