qCnX7T

Webhook

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:

  1. Discord Webhook
  2. HTTP Webhook

Discord Webhook

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 (Advance)

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
}

Signature

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()
VRT8gAWT9FOu
0JUydOxnVTIu/lDBHmCWe7wB