Mulai Sekarang
Apakah Anda siap untuk memulai integrasi dengan webhook Xendit? Anda dapat mengikuti panduan ini untuk memulai langsung menggunakan webhook Xendit dan mengintegrasikannya dengan sistem Anda. Panduan ini tidak hanya dapat digunakan pada satu produk Xendit atau bahasa pemrograman tertentu, namun dapat digunakan pada setiap produk Xendit dan beragam macam bahasa pemrograman.
Daftar Webhook
Langkah pertama untuk memulai integrasi webhook adalah untuk mencari webhook yang akan Anda gunakan di aplikasi Anda. Ini tergantung pada produk Xendit yang Anda gunakan. Berikut daftar webhook Xendit:
- Virtual Account Status
- Virtual Account
- eWallets
- Retail Outlet
- Regional Retail Outlet
- Direct Debit Payment
- Direct Debit Payment Method
- Invoice
- Disbursement
- Batch Disbursement
- xenPlatform Account
Tentu saja, projek Anda tidak memerlukan semua webhook diatas - namun Anda dapat menambahkan fungsionalitas yang menarik dan dapat membantu Anda dengan menggunakan webhook.
Menyambut Webhook
Langkah selanjutnya adalah untuk menentukan bagaimana sistem Anda akan menyambut atau mengembalikan respon balik ke Xendit sebagai bukti penerimaan webhook. Kami merekomendasikan Anda untuk mengembalikan respon dengan kode status HTTP 2xx secara langsung. Bila algoritma webhook Anda melakukan proses yang kompleks, atau membuat panggilan lainnya untuk proses selanjutnya sebelum mengirimkan respon balik ke Xendit, besar kemungkinan webhook tersebut akan timeout sebelum Xendit menerima respon dari sistem Anda. Idealnya, sistem Anda mengembalikan respon dengan HTTP status 2xx secara langsung sebelum ada algortima atau proses-proses lainnya yang hendak dilakukan untuk event tersebut.
INFO
Xendit menentukan sebuah event telah timeout apabila kami tidak menerima respon dalam waktu 30 detik
Gunakan simulasi Webhook untuk pengembangan
Setelah Anda menentukan webhook mana yang hendak Anda gunakan, saatnya untuk memulai menulis kode. Untuk tujuan pengujian ad-hoc selama pengembangan, Anda mungkin perlu menyiapkan sistem HTTP tiruan (mock) ke aplikasi Anda. Kami merekomendasi Anda untuk menggunakan command-line tool seperti curl, atau aplikasi desktop seperti Postman.
Anda dapat menggunakan contoh permintaan webhook yang ada di Referensi Xendit API sebagai permulaan untuk membuat pesan webhook, dan kirim webhook Xendit ke layanan seperti Webhook.site atau RequestBin untuk menangkap permintaan HTTP yang dikirim.
Contoh data ewallet webhook. Lihat data webhook lainnya di API Reference
{
"event": "ewallet.capture",
"created": "2020-10-21T13:59:14.536400713Z",
"business_id": "59e0daf7049b567510c63f67",
"data": {
"id": "ewc_95d47d3a-db03-4b4b-9b6c-71077157cbc8",
"basket": null,
"status": "SUCCEEDED",
"actions": {
"mobile_web_checkout_url": "",
"desktop_web_checkout_url": "",
"mobile_deeplink_checkout_url": "https://wsa.uat.wallet.airpay.co.id/universal-link/wallet/pay?deep_and_deferred=1&token=dFhkbmR1bTBIamhWwFfJaB-n_6eGjr1eAHnlwWEJDsEpIU_-8m0QS5Tb1nFp_ZEtGrgHWKV8LuV6rwVL2COCVw"
},
"created": "2020-10-21T13:57:43.355897Z",
"updated": "2020-10-21T13:57:43.730483Z",
"currency": "IDR",
"metadata": {
"branch_code": "senayan_372"
},
"voided_at": null,
"capture_now": true,
"customer_id": null,
"callback_url": "https://webhook.site/5eebb675-6102-453a-a81c-de95fb08bc77",
"channel_code": "ID_SHOPEEPAY",
"failure_code": null,
"reference_id": "test-payload",
"charge_amount": 20000,
"capture_amount": 20000,
"checkout_method": "ONE_TIME_PAYMENT",
"payment_method_id": null,
"channel_properties": {
"success_redirect_url": "https://google.com"
},
"is_redirect_required": true
}
}
Jalankan aplikasi Anda menggunakan URL publik
Xendit memerlukan URL publik untuk mengirim webhook. Ada 2 cara untuk membuat URL publik:
- Deploy aplikasi Anda ke server pengembangan atau pengujian yang dapat dijangkau oleh Internet publik
- Gunakan tunneling tool seperti ngrok untuk membuat URL publik yang menargetkan aplikasi lokal yang Anda jalankan di komputer Anda (seperti
https://n3f6j25.ngrok.io/
)
Pada kasus tertentu, ngrok atau tunneling tool lainnya dapat diblokir oleh firewall Internet Anda. Pada kasus demikian, Anda dapat mendirikan server pengembangan untuk pengujian dengan Xendit, sebelum menjalankan projek webhook Anda ke mode Live.
Untuk informasi lebih lanjut mengenai cara membuat lingkungan pengembangan lokal Anda menjadi URL publik menggunakan ngrok, Anda dapat mengikuti panduan-panduan komunitas berikut:
- MacOS. Kredit kepada: Pentacode
- Windows. Kredit kepada: Awais Mirza
Setel URL webhook publik
Sekarang, Xendit perlu mengetahui URL Anda untuk mengirim webhook. Anda dapat menyetel URL Webhook Anda menggunakan Dasbor atau API. URL Webhook harus bersifat publik agar dapat menerima webhook dari Xendit.
Setel URL menggunakan Dasbor
INFO
Anda memerlukan akses developer untuk akses ke halaman Setelan Callback
- Navigasi ke setelan Callback di Dasbor Xendit
- Pada bagian Callback, tempel dan simpan URL Anda pada produk Xendit yang hendak Anda gunakan. Apabila Anda menggunakan API Invoice, maka Anda dapat menyetel URL webhook pada bagian Invoice. Mekanisme yang sama berlaku pada produk-produk Xendit lainnya.
INFO
Fitur Tes dan Simpan akan selalu menyimpan URL Anda terlepas dari hasil tes
Setel URL menggunakan API
Anda dapat juga menyetel URL Webhook Anda menggunakan API. Lihat Set URL API Reference untuk rincian parameter-parameternya. API ini berguna untuk pengguna XenPlatform untuk menyetel URL Webhook pada sub-akun. Fitur ini hanya dapat digunakan untuk sub-akun tipe Managed. Sub-akun tipe Owned akan menggunakan URL Webhook yang sama dengan akun Platform.
<?php
$url = 'https://api.xendit.co/callback_urls';
$apiKey = 'tambah_api_key_disini';
$headers = [];
$headers[] = 'Content-Type: application/json';
$data = [
'url' => 'https://www.xendit.co/callback_catcher'
];
$curl = curl_init();
$payload = json_encode($data);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_USERPWD, $apiKey.":");
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $payload);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);
echo $result;
?>
Validasi bahwa webhook yang diterima berasal dari Xendit
Anda perlu melakukan validasi pengirim webhook untuk memastikan bahwa webhook yang diterima berasal dari Xendit. Validasi ini untuk mencegah pihak-pihak lain selain Xendit untuk membuat webhook request ke sistem Anda.
Xendit melampirkan header parameter x-callback-token
ketika mengirimkan webhook ke sistem Anda. Nilai x-callback-token
adalah unik untuk akun Xendit Anda per environment, dimana Anda dapat menemukan nilainya di Setelan Callback dan melakukan validasi terhadap nilai tersebut. Bila webhook tersebut memiliki nilai yang sesuai dengan nilai yang Anda temui di Dasbor, maka Anda dapat menerima webhook tersebut, bila tidak, harap menolak webhook tersebut.
Tes webhook Anda di mode Live
Apabila semuanya sudah berjalan sesuai ekspektasi di mode Tes, saatnya mencoba integrasi webhook Anda di mode Live. Anda dapat mulai membuat VA, melakukan pembayaran VA, atau apa pun yang telah Anda buat dan eksekusi di mode Tes. Cobalah untuk melakukan testing sebanyak mungkin dengan aplikasi Anda, terutama untuk kasus-kasus positif dan negatif, sehingga Anda dapat melihat apakah ada asumsi yang tertinggal dari unit test atau pengujian integrasi Anda. Tambahkan kasus-kasus positif dan negatif tersebut ke pengujian otomatis Anda, saat Anda melakukan pengujian manual.
Menaikkan aplikasi Anda ke Tes dan Live
Sekarang Anda dapat mempromosikan aplikasi web Anda ke lingkungan Test, dan kemudian ke Live. Perbarui URL webhook yang Anda gunakan di Dasbor Xendit untuk memastikan bahwa pengujian yang Anda lakukan berjalan ke mode / lingkungan yang benar.
Periksa kembali apakah URL Live Xendit Anda mengarah ke environment Live pada aplikasi Anda. Demikian pula, pastikan bahwa webhook diterima dengan baik, dan aturan jaringan tidak perlu diubah di firewall.
Uji webhook Anda dengan SSL aktif dan sertifikat yang Anda gunakan di mode Live, untuk memastikan semuanya berfungsi dengan baik dan benar. Webhook Xendit tidak akan berfungsi pada URL HTTPS dengan sertifikat SSL yang ditandatangani sendiri.
Selamat! Aplikasi web Anda sudah siap di mode Live, dan siap untuk menanggapi webhook Xendit! Jika Anda mengalami pertanyaan, kunjungi Pertanyaan Umum Webhook.
Last Updated on 2024-02-15