Panduan payment gateway
Integrasi API Razorpay untuk situs pemesanan perjalanan
Razorpay adalah payment gateway di India yang menerima kartu, UPI, netbanking, dan dompet digital dalam rupee. Panduan ini menjelaskan cara kerja pembayaran Razorpay untuk pemesanan penerbangan, hotel, atau tur, serta status sebenarnya di PHPTRAVELS: Razorpay saat ini bukan konektor siap pakai, tetapi bisa ditambahkan sebagai integrasi kustom pada kode sumber yang Anda miliki.
- Kartu, UPI, netbanking, dompet digital
- Order, Checkout, capture
- Pemeriksaan tanda tangan dan webhook
- Refund penuh dan sebagian
Razorpay sekilas
Apa itu Razorpay dan posisinya di PHPTRAVELS
Razorpay adalah payment gateway India. Bisnis perjalanan yang menjual kepada pelanggan di India memakainya untuk menerima metode pembayaran yang diharapkan pelanggan saat checkout: kartu debit dan kredit, UPI, netbanking, dan dompet digital populer, semuanya ditagih dan diselesaikan dalam rupee ke akun Razorpay milik merchant sendiri.
PHPTRAVELS adalah platform pemesanan perjalanan yang di-host sendiri dengan kode sumber lengkap disertakan. Payment gateway siap pakainya berasal dari daftar langsung yang Anda aktifkan dengan kredensial merchant Anda sendiri. Razorpay tidak ada di daftar itu saat ini, jadi belum ada sakelar untuknya di admin.
Itu tidak berarti Anda tidak bisa memakainya. Karena kode ini milik Anda, Razorpay dapat ditambahkan sebagai Integrasi API kustom, dan untuk India sudah tersedia gateway siap pakai: Cashfree. Halaman Integrasi payment gateway mencantumkan semua gateway yang bisa Anda aktifkan sekarang.

Lembar fakta Razorpay
- Apa itu
- Payment gateway untuk bisnis di India
- Metode pembayaran
- Kartu, UPI, netbanking, dan dompet digital
- Mata uang
- Menagih dan menyelesaikan dalam INR; jumlah dikirim dalam paise
- Kunci API
- Key ID dan Key Secret, terpisah untuk mode uji dan mode live
- Status di PHPTRAVELS
- Bukan konektor siap pakai. Tersedia sebagai integrasi kustom pada kode sumber yang disertakan
- Siap di India hari ini
- Cashfree, diaktifkan di admin dengan akun Cashfree Anda sendiri
Alur pembayaran
Satu pembayaran Razorpay untuk pemesanan perjalanan, langkah demi langkah
Integrasi Razorpay membagi tugas antara browser pelancong dan server Anda. Browser menampilkan Checkout; server membuat order, memeriksa hasilnya, dan memutuskan kapan pemesanan dikonfirmasi.
- 01
Server Anda
Membuat order
Saat pelancong menekan Bayar, server Anda memanggil Orders API dengan jumlah dalam paise, mata uang, dan receipt yang diisi referensi pemesanan. Razorpay mengembalikan order_id.
- 02
Browser
Membuka Razorpay Checkout
Halaman pemesanan membuka Checkout dengan Key ID Anda dan order_id tersebut, sehingga pelancong membayar persis sejumlah yang ditetapkan server Anda.
- 03
Browser
Pelancong membayar
Pelancong memilih kartu, UPI, netbanking, atau dompet digital dan menyelesaikan langkah apa pun yang diminta banknya. Pembayaran kini diotorisasi.
- 04
Browser
Checkout mengembalikan tiga nilai
Jika berhasil, Checkout mengembalikan razorpay_payment_id, razorpay_order_id, dan razorpay_signature, lalu halaman mengirimkannya ke server Anda.
- 05
Server Anda
Memverifikasi tanda tangan
Server Anda menghitung ulang tanda tangan dari order_id dan payment_id dengan Key Secret. Hanya tanda tangan yang cocok yang dianggap pembayaran asli.
- 06
Server Anda
Melakukan capture pembayaran
Dengan capture otomatis, Razorpay melakukan capture untuk Anda. Dengan capture manual, server Anda melakukan capture setelah maskapai, hotel, atau pemasok tur mengonfirmasi, sehingga tak ada yang ditagih untuk pemesanan yang gagal.
- 07
Server Anda
Mengonfirmasi pemesanan
Pemesanan berubah menjadi lunas, tiket atau voucher diterbitkan, dan payment_id Razorpay disimpan pada referensi pemesanan.
- 08
Server AndaServer ke server
Menerima webhook
Razorpay juga mengirim event seperti payment.captured ke URL webhook Anda. Ini menutup kasus pelancong yang menutup tab sebelum halaman sempat melapor.
Tanda tangan dan webhook
Dua pemeriksaan yang menjaga integrasi Razorpay tetap tepercaya
Apa pun yang datang dari browser atau internet bisa dipalsukan. Integrasi Razorpay hanya memercayai pembayaran setelah memeriksa tanda tangan yang dibuat dengan rahasia yang tidak pernah meninggalkan server Anda.
1// 1. After Checkout: verify the payment signature 2$orderId = $booking["razorpay_order_id"]; // from your own record 3$paymentId = $_POST["razorpay_payment_id"]; 4$signature = $_POST["razorpay_signature"]; 5$expected = hash_hmac("sha256", $orderId . "|" . $paymentId, $keySecret); 6if (!hash_equals($expected, $signature)) { rejectPayment(); } 7markPaid($booking["ref"], $paymentId); 8 9// 2. Webhook: verify X-Razorpay-Signature over the raw body10$body = file_get_contents("php://input");11$header = $_SERVER["HTTP_X_RAZORPAY_SIGNATURE"] ?? "";12$expect = hash_hmac("sha256", $body, $webhookSecret);13if (!hash_equals($expect, $header)) { http_response_code(400); exit; }14$event = json_decode($body, true);15if (alreadyHandled($event)) exit; // repeat delivery16switch ($event["event"]) {17 case "payment.captured": confirmBooking($event); break;18 case "refund.processed": markRefunded($event); break;19}
Pseudo-code ilustrasi untuk menunjukkan logikanya, bukan berkas siap pakai. Ikuti dokumentasi dan SDK Razorpay untuk pemanggilan yang tepat.
Tanda tangan pembayaran
HMAC SHA256 dari order_id, tanda garis tegak, dan payment_id, dengan Key Secret Anda sebagai kunci, harus sama dengan razorpay_signature. Bandingkan dengan fungsi waktu konstan.
Tanda tangan webhook
Setiap webhook membawa header X-Razorpay-Signature: HMAC SHA256 dari isi mentah permintaan, dengan kunci berupa webhook secret yang Anda atur di dasbor Razorpay.
Pengiriman berulang
Webhook bisa datang lebih dari sekali atau tidak berurutan. Catat ID event dan pembayaran, dan abaikan event yang sudah diterapkan pada pemesanan.
Rahasia tetap di sisi server
Hanya Key ID yang dikirim ke browser. Key Secret dan webhook secret berada di konfigurasi server, tidak pernah di sumber halaman atau aplikasi seluler.
Refund dan pembatalan
Refund perjalanan jarang sebesar jumlah penuh
Biaya pembatalan, aturan no-show, dan itinerary yang dibatalkan sebagian membuat refund perjalanan sering bersifat parsial. Refunds API Razorpay menangani keduanya, dan integrasi menentukan jumlahnya dari aturan pemesanan Anda.
Refund penuh
Pembatalan gratis mengembalikan seluruh jumlah yang di-capture ke metode yang dipakai pelancong untuk membayar.
Refund sebagian
Setelah biaya pembatalan, server hanya me-refund sisanya. Jumlahnya dikirim dalam paise, seperti order awal.
Bagian dari itinerary
Batalkan satu malam hotel atau satu penumpang dan refund bagian itu; refund sebagian berikutnya bisa menyusul hingga total yang di-capture.
refund.processed
Webhook refund memberi tahu server Anda saat refund selesai, sehingga pemesanan dan pelancong melihat status yang benar.
Disimpan pada pemesanan
Setiap ID refund disimpan bersama referensi pemesanan dan payment_id asli untuk tim akuntansi Anda.
Contoh: pembatalan dengan biaya
- Di-capture
- ₹12,500.00 amount: 1250000
- Biaya pembatalan
- ₹1,500.00 amount: 150000
- Jumlah refund
- ₹11,000.00 amount: 1100000
Angka hanya contoh. Razorpay menerima jumlah dalam satuan mata uang terkecil, jadi 100 paise sama dengan satu rupee.
Cara menghubungkan Razorpay
Tiga cara menerima pembayaran dengan atau tanpa Razorpay
Pilih jalur yang sesuai dengan tim dan tanggal peluncuran Anda. Ketiganya menjaga dana tetap di akun merchant Anda sendiri; PHPTRAVELS tidak pernah ikut dalam penyelesaian dana.
Opsi 1
Developer Anda yang menambahkan
PHPTRAVELS hadir dengan kode sumber lengkap, sehingga developer Anda sendiri bisa menambahkan Razorpay sebagai gateway baru di samping yang sudah ada: pembuatan order, Checkout di langkah pembayaran, pemeriksaan tanda tangan, capture, webhook, dan refund.
- Bangun dan uji dengan kunci mode uji Razorpay
- Pakai ulang referensi pemesanan sebagai receipt order
- Beralih ke kunci live setelah pemesanan uji lolos
Opsi 2
PHPTRAVELS yang membangunnya
Developer kami dapat membangun konektor Razorpay untuk Anda sebagai Integrasi API kustom. Anda mengirim kebutuhan, menerima biaya dan jadwal sebelum pekerjaan dimulai, dan mendapat kode sumber yang telah diuji di akhir.
- Dikutip harganya sebelum pekerjaan dimulai
- Dibangun pada mode uji Razorpay
- Diserahkan sebagai kode sumber milik Anda
Opsi 3
Pakai gateway siap pakai sekarang
Jika perlu meluncur lebih dulu, aktifkan gateway yang sudah ada di platform. Untuk India itu Cashfree. Gateway siap pakai saat ini meliputi:
- CashfreePanduan pengaturan Cashfree
- Stripe
- PayPal
- xMoney
- Fawaterk
- Paystack
Gateway siap pakai
Payment gateway yang bisa Anda aktifkan hari ini
Daftar ini datang langsung dari direktori gateway PHPTRAVELS. Masing-masing diaktifkan di admin dengan akun dan kunci Anda sendiri.
Cashfree
StripePanduan integrasiPayPalPanduan integrasi
xMoney
Fawaterk
Paystack
Flutterwave
Adyen
MyFatoorah
SSLcommerz
Razorpay- Semua integrasi
Ingin memahami pemanggilan di balik masing-masing? Baca panduan API Payment Gateway, bandingkan panduan Pembayaran Stripe dan Pembayaran PayPal, atau lihat bagaimana agen membayar dari Dompet agen B2B di portal B2B.
Tidak sebagai konektor siap pakai. Razorpay tidak ada di daftar gateway PHPTRAVELS saat ini, jadi Anda tidak bisa mengaktifkannya di admin. Karena kode sumber lengkap disertakan, Razorpay dapat ditambahkan sebagai integrasi payment gateway kustom, oleh developer Anda atau developer kami.
Cashfree adalah gateway siap pakai di PHPTRAVELS dan punya panduan pengaturan di docs.phptravels.com/payments/cashfree. Anda mengaktifkannya di admin dengan akun Cashfree Anda sendiri. Gateway siap pakai lain seperti Stripe dan PayPal tercantum di halaman payment gateway.
Razorpay menerima kartu, UPI, netbanking, dan dompet digital untuk pembayaran dalam rupee India. Metode yang muncul saat checkout bergantung pada apa yang diaktifkan di akun Razorpay Anda sendiri.
Razorpay menerima jumlah dalam satuan mata uang terkecil, jadi total pemesanan dalam rupee dikalikan 100 sebelum order dibuat. Jumlah refund dikirim dengan cara yang sama.
Checkout mengembalikan ID pembayaran, ID order, dan sebuah tanda tangan. Server Anda menghitung HMAC SHA256 dari ID order dan ID pembayaran dengan Key Secret Anda dan hanya menerima pembayaran jika hasilnya cocok dengan tanda tangan.
Capture otomatis lebih sederhana. Capture manual memungkinkan Anda melakukan capture hanya setelah maskapai, hotel, atau pemasok tur mengonfirmasi pemesanan, sehingga pemesanan yang gagal bisa dilepas, bukan di-refund. Pilihannya bergantung pada produk dan pemasok Anda.
Bisa. Refunds API Razorpay mendukung refund penuh dan sebagian, jadi biaya pembatalan bisa ditahan dan sisanya dikembalikan. Webhook refund.processed memberi tahu server Anda saat refund selesai.
Ya. Akun merchant, Key ID dan Key Secret-nya, serta penyelesaian dananya adalah milik Anda. PHPTRAVELS tidak pernah menyediakan kredensial gateway dan tidak pernah menangani dana Anda. Bangun dengan kunci mode uji dan beralih ke kunci live saat meluncur.
Tergantung lingkup yang dibutuhkan, seperti checkout, capture manual, refund, dan pembayaran agen. PHPTRAVELS memberi penawaran untuk pekerjaan kustom sebelum dimulai. Platformnya sendiri adalah lisensi sekali bayar mulai dari.
Jelajahi lebih lanjut
Selengkapnya tentang platform
- Integrasi payment gatewayCheckout, 3D Secure, refund, dan webhook
- API Payment GatewayCara kerja pembayaran kartu, 3-D Secure, capture, dan refund melalui API
- Integrasi API kustomHubungkan API supplier atau mitra apa pun ke PHPTRAVELS
- Pembayaran StripeCheckout kartu dan dompet, refund, dan pencairan
- Pembayaran PayPalCheckout PayPal untuk penerbangan, hotel, dan tur
- Dompet agen B2BDeposit agen, batas kredit, dan buku besar per agen
