Framework/tookit berbasis pydantic dan FastAPI untuk implementasi SNAP (Standar Nasional Open API Pembayaran) Indonesia
Project description
snapapi
Framework/tookit berbasis pydantic dan FastAPI untuk implementasi SNAP (Standar Nasional Open API Pembayaran) Indonesia
Transaksi
Virtual Account:
- Inquiry, Service Code '24'
- Payment, Service Code '25'
Iya, masih banyak Transaksi yang harus dibuat Modelnya :)
Python
snapapi dibuat dengan menggunakan Python versi 3.8.20, semoga bisa digunakan dibanyak OS yang mungkin masih belum support python terbaru.
snapapi menggunakan type hints yang diverifikasi dengan mypy.
Dependency
SNAP-API membutuhkan module sbb:
-
pydantichttps://pydantic.dev
Dasar dari validasi model agar sesuai dengan spesifikasi yang telah ditetapkan oleh Bank Indonesia dan ASPI (Asosiasi Sistem Pembayaran Indonesia). Core validasi menggunakanrustsehingga pydantic dikenal sebagai model validator tercepat di python. -
pycryptodomehttps://www.pycryptodome.org
Digunakan untuk membuat dan meverifikasi Asymmetric Signature dengan algorithma SHA256withRSA. -
PyJWThttps://pyjwt.readthedocs.io/en/latest
Dibutuhkan untuk membuat dan meverifikasi Access Token berbasis JWT. -
fastapihttps://fastapi.tiangolo.com
Lighweight and fast framework API berdasarkan OpenAPI. -
asyncerhttps://asyncer.tiangolo.com
Thin layer module yang membuat sync method (sptclass Crypto) menjadi async. Dengan module, dijamin end-to-end API menjadi full async.
Optional
-
uvicornhttps://www.uvicorn.org
ASGI web server -
aiocachehttps://aiocache.aio-libs.org/en/latest
Digunakan untuk cache keys pada API Transaksi. Backend untuk store keys bisa dipilih antaramemcached,redisataumemory(default) -
orjsonhttps://github.com/ijl/orjson
Pengganti yang lebih baik daripada standarjson
Cara Pakai
Install package dengan pip.
$ pip install snapapi
Import class SNAPAPI kemudian instantiate sama seperti class FastAPI https://fastapi.tiangolo.com/reference/fastapi/?h=class+fastapi#fastapi.FastAPI
app = SNAPAPI(
title='SNAP-API Demo',
version="0.1.1",
description="""
### Standar Nasional Open API Pembayaran Versi 1.0.2
> Flow Inbound (Direct): Bank -> API
""")
Silakan lihat direktori app/demo untuk contoh implementasi.
Untuk menjalankan aplikasi Demo, silakan baca app/README.md dan ikuti petunjuknya.
Future Development
Module SNAP-API dibuat berdasarkan kebutuhan project profesional developer untuk implementasi SNAP dengan flow Inbound atau Direct; Bank -> API
Bank yang melakukan initiate query (
inquirydanpayment) untuk Virtual Account dimana Bill, Virtual Account dan Customer management dilakukan oleh Backend terlepas dari API ini.
Jadi module ini cukup jika digunakan untuk skenario di atas. Agar compliance dengan SNAP, masih banyak skenario yang harus diimplementasi.
Fokus pengembangan module ini adalah:
- Mengikuti perkembangan SNAP supaya compliance setiap kali ada versi terbaru.
- Implementasi Model lain agar sesuai dengan dokumentasi SNAP, terutama melengkapi fitur Virtual Account.
- Refactoring fitur yang sudah ada supaya lebih ringan, tidak terlalu banyak dependency, dan mudah digunakan.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file snapapi-0.1.9.tar.gz.
File metadata
- Download URL: snapapi-0.1.9.tar.gz
- Upload date:
- Size: 33.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
968e8b4b2efd3782aa0bdb12a4427021585ea2bbb7a3567570f53e3ced3e135f
|
|
| MD5 |
5bcba641d07ac7e4285e459489ab9200
|
|
| BLAKE2b-256 |
ab29b265f74dbd6bde7f18984dc2a1338a34fe73336b881a34ae1741a131989d
|
File details
Details for the file snapapi-0.1.9-py3-none-any.whl.
File metadata
- Download URL: snapapi-0.1.9-py3-none-any.whl
- Upload date:
- Size: 30.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a5b7c0642bf82c35226fc9e3493de7ce6fdbba299506fe21e06b316ea2666bc8
|
|
| MD5 |
0e7752656ad4f40b07ec7cfb55b7474e
|
|
| BLAKE2b-256 |
04448eebd4c78a88ff683f3723b96c7db18736deb70fd07567a15fbc29b581cb
|