Menurut artikel yang ditulis pada niagahoster, webhook adalah salah satu cara komunikasi antar sistem; khususnya yaitu sebuah callback atau panggilan balik. Secara singkat, fitur webhook membuat saweria dapat berkomunikasi dengan sistem atau aplikasi lainnya.
Hingga saat ini, ada 2 sistem webhook yang secara native sudah di integrasikan pada saweria yaitu:
Dengan mengaktifkan fitur ini, saweria akan membantu "mencatat" dukungan yang masuk ke channel discord pilihan kamu. Coba ikuti link ini untuk melakukan pengaturan.
HTTP webhook dapat jika kamu ingin membuat integrasi custom kamu sendiri!
Request webhook dari saweria menuju sistem kamu:
Method: POST
Content-Type: application/json
Header: {
Saweria-Callback-Signature: string
}
Body: {
version: string
created_at: string
id: string
amount_raw: integer
cut: integer
donator_name: string
donator_email: string
donator_is_user: bool
message: string
}
Pada header terdapat Saweria-Callback-Signature yang dapat digunakan untuk memastikan bahwa callback berasal dari saweria.
Kode untuk memvalidasi Saweria-Callback-Signature
# Python code
import hmac
saweria_streaming_key = "xxxx"
# from callback, order sensitive!
callback_payload = [version, id, amount_raw, donator_name, donator_email]
msg = "".join([v for v in callback_payload]).encode()
signature = hmac.new(key=saweria_streaming_key.encode(), msg=msg, digestmod=sha256).hexdigest()