Kode status HTTP dalam rentang 400-499 atau 500-599 berasal dari server Anda, dan menunjukkan sistem Anda menerima permintaan, tetapi tidak dapat memprosesnya. Coba langkah berikut ini:
Di Dashboard, lihat Respons dari server Anda untuk mengetahui informasi tambahan: Kemungkinan, tidak ada informasi tambahan dalam respons; hal ini tergantung cara server dikonfigurasi dan cara kode Anda dirancang untuk menanggapi kesalahan
Periksa log server Anda untuk melihat kesalahan atau peringatan: Kesalahan ini akan mengarahkan Anda ke sumber kesalahan respons, yang bisa jadi kode penanganan webhook atau masalah konfigurasi pada server Anda
Konfirmasi Kejadian yang diterima memiliki versi API yang dapat ditangani kode Anda: Versi API menentukan struktur objek yang terkandung dalam Kejadian; ketidakcocokan versi API antara Kejadian masuk dan kode pemrosesan Anda dapat mengakibatkan kesalahan yang tidak diharapkan
Beberapa kesalahan umum yang menyebabkan kode status 4xx dan 5xx, dan solusinya dijelaskan di bawah ini.
Kesalahan ini atau yang serupa (kata-katanya mungkin berbeda di tiap pustaka), berarti proses verifikasi tanda tangan webhook gagal. Kesalahan ini biasanya disebabkan oleh salah satu dari hal berikut ini:
Rahasia penandatanganan webhook yang salah (whsec_
) digunakan selama proses verifikasi tanda tangan
Pastikan Anda menggunakan rahasia penandatanganan webhook yang cocok dengan Endpoint Webhook yang mengirimkan Kejadian, yang dapat Anda temukan di Dashboard setelah memilih Endpoint Webhook tertentu
Jika Anda menggunakan Stripe CLI, rahasia penandatanganan webhook akan dibuat dan ditampilkan, yang dapat Anda gunakan saat menjalankan perintah stripe listen
Isi permintaan telah dimodifikasi sebelum verifikasi tanda tangan webhook dilakukan
Proses verifikasi tanda tangan webhook memerlukan isi permintaan masuk mentah dari Stripe yang belum dimodifikasi agar dapat berfungsi
Jika kode Anda mengurai, memformat, atau memodifikasi isi permintaan sebelum verifikasi tanda tangan, Anda akan melihat kesalahan seperti ini
Sesuaikan atau hapus kode, termasuk middleware, yang mungkin memodifikasi isi permintaan masuk yang mentah, lalu coba lagi
Catatan: Middleware Node.js sering memodifikasi isi permintaan masuk; coba ekstrak isi mentah sebelum middleware lainnya berjalan
Kesalahan ini atau yang serupa (kata-katanya mungkin berbeda di tiap pustaka), berarti Kejadian yang diterima terlalu lama untuk berhasil diverifikasi. Tanda tangan webhook memiliki komponen waktu, dan harus diverifikasi segera setelah diterima.
Coba langkah berikut ini:
Pastikan pengaturan waktu dan tanggal di server Anda sudah benar
Pastikan Anda memverifikasi tanda tangan webhook yang masuk segera setelah Kejadian diterima, tanpa penundaan
Kesalahan ini biasanya disebabkan oleh kode yang melempar pengecualian, kesalahan penguraian, atau beberapa jenis perubahan yang melanggar.
Seringnya, kelas kesalahan ini disebabkan oleh beberapa jenis perubahan pada server atau infrastruktur yang bertanggung jawab untuk menerima dan memproses webhook. Kode baru atau yang diubah, pembaruan server, atau perubahan konfigurasi dapat menyebabkan mode kegagalan atau ketidakcocokan baru.
Ketika Anda mengalami kesalahan ini, periksa log kesalahan server Anda untuk mengetahui informasi selengkapnya. Lokasi log kesalahan bervariasi di tiap server tergantung konfigurasi, sistem operasi, server web, bahasa pemrograman yang digunakan, dan faktor lainnya, sehingga kami tidak dapat memberikan instruksi khusus. Sebaiknya periksa log dan log kesalahan konfigurasi untuk salah satu hal berikut yang mungkin Anda gunakan untuk menerima webhook:
Bahasa pemrograman Anda (Ruby, Python, PHP, Java, Node.js, Go, .NET, dll.)
Server web Anda (Nginx, Apache, Microsoft IIS, dll.)
Penyedia cloud atau server Anda (Amazon Web Services, Google Cloud Computing, Cloudflare, dll.)