Gids betaalgateway
Razorpay-API-integratie voor reisboekingswebsites
Razorpay is een betaalgateway voor India die kaarten, UPI, netbanking en wallets in roepies accepteert. Deze gids legt uit hoe een Razorpay-betaling werkt bij een vlucht-, hotel- of tourboeking en wat de eerlijke status in PHPTRAVELS is: Razorpay is vandaag geen kant-en-klare connector, maar kan als maatwerkintegratie worden toegevoegd op de broncode die van u is.
- Kaarten, UPI, netbanking, wallets
- Order, Checkout, capture
- Handtekening- en webhookcontrole
- Volledige en gedeeltelijke terugbetalingen
Razorpay in het kort
Wat Razorpay is en waar het staat in PHPTRAVELS
Razorpay is een Indiase betaalgateway. Een reisbedrijf met Indiase klanten gebruikt het om de betaalmethoden aan te bieden die zij verwachten: debet- en creditcards, UPI, netbanking en gangbare wallets, afgerekend en uitbetaald in Indiase roepies op het eigen Razorpay-account van de handelaar.
PHPTRAVELS is een zelf gehost reisboekingsplatform met de volledige broncode erbij. De kant-en-klare betaalgateways komen uit een live lijst en schakelt u in met uw eigen handelaarsgegevens. Razorpay staat vandaag niet in die lijst, dus er is nog geen schakelaar voor in de admin.
Dat betekent niet dat u het niet kunt gebruiken. Omdat de code van u is, kan Razorpay worden toegevoegd als API-integratie op maat, en voor India is al een kant-en-klare gateway beschikbaar: Cashfree. De pagina Betaalgateway-integratie toont alle gateways die u nu kunt inschakelen.

Razorpay-factsheet
- Wat het is
- Een betaalgateway voor bedrijven in India
- Betaalmethoden
- Kaarten, UPI, netbanking en wallets
- Valuta
- Afrekenen en uitbetalen in INR; bedragen worden in paise verstuurd
- API-sleutels
- Key ID en Key Secret, gescheiden voor testmodus en livemodus
- Status in PHPTRAVELS
- Geen kant-en-klare connector. Beschikbaar als maatwerkintegratie op de meegeleverde broncode
- Vandaag kant-en-klaar in India
- Cashfree, in de admin ingeschakeld met uw eigen Cashfree-account
Betaalverloop
Eén Razorpay-betaling voor een reisboeking, stap voor stap
Een Razorpay-integratie verdeelt het werk tussen de browser van de reiziger en uw server. De browser toont Checkout; de server maakt de order aan, controleert het resultaat en bepaalt wanneer de boeking is bevestigd.
- 01
Uw server
Order aanmaken
Zodra de reiziger op Betalen drukt, roept uw server de Orders API aan met het bedrag in paise, de valuta en als receipt de boekingsreferentie. Razorpay geeft een order_id terug.
- 02
Browser
Razorpay Checkout openen
De boekingspagina opent Checkout met uw Key ID en die order_id, zodat de reiziger precies het bedrag betaalt dat uw server heeft vastgelegd.
- 03
Browser
Reiziger betaalt
De reiziger kiest kaart, UPI, netbanking of een wallet en doorloopt elke stap die de bank vraagt. De betaling is nu geautoriseerd.
- 04
Browser
Checkout geeft drie waarden terug
Bij succes geeft Checkout razorpay_payment_id, razorpay_order_id en razorpay_signature terug, en de pagina stuurt ze naar uw server.
- 05
Uw server
Handtekening controleren
Uw server berekent de handtekening opnieuw uit order_id en payment_id met het Key Secret. Alleen een kloppende handtekening geldt als echte betaling.
- 06
Uw server
Betaling vastleggen
Bij automatische capture legt Razorpay zelf vast. Bij handmatige capture legt uw server pas vast zodra de airline, het hotel of de tourleverancier heeft bevestigd, zodat niemand wordt belast voor een mislukte boeking.
- 07
Uw server
Boeking bevestigen
De boeking gaat naar betaald, het ticket of de voucher wordt uitgegeven en de Razorpay payment_id wordt bij de boekingsreferentie opgeslagen.
- 08
Uw serverServer naar server
Webhook ontvangen
Razorpay stuurt ook gebeurtenissen zoals payment.captured naar uw webhook-URL. Dat dekt de reiziger die het tabblad sluit voordat de pagina kon terugmelden.
Handtekeningen en webhooks
Twee controles die een Razorpay-integratie betrouwbaar houden
Alles wat uit de browser of via internet binnenkomt kan vervalst zijn. Een Razorpay-integratie vertrouwt een betaling pas nadat een handtekening is gecontroleerd die is gemaakt met een geheim dat uw server nooit verlaat.
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}
Illustratieve pseudocode om de logica te tonen, geen kant-en-klaar bestand. Volg de documentatie en SDK's van Razorpay voor de exacte aanroepen.
Betalingshandtekening
De HMAC SHA256 van order_id, een pipe en payment_id, met uw Key Secret als sleutel, moet gelijk zijn aan razorpay_signature. Vergelijk met een functie met constante tijd.
Webhookhandtekening
Elke webhook bevat een X-Razorpay-Signature-header: een HMAC SHA256 van de ruwe request-body, met het webhook-secret als sleutel dat u in het Razorpay-dashboard instelt.
Herhaalde bezorging
Webhooks kunnen meer dan eens of in de verkeerde volgorde binnenkomen. Registreer de gebeurtenis- en betalings-id's en negeer een gebeurtenis die u al op de boeking hebt toegepast.
Geheimen blijven server-side
Alleen de Key ID gaat naar de browser. Het Key Secret en het webhook-secret staan in de serverconfiguratie, nooit in de paginabron of een mobiele app.
Terugbetalingen en annuleringen
Reisterugbetalingen zijn zelden het volledige bedrag
Annuleringskosten, no-showregels en deels geannuleerde reizen maken een terugbetaling vaak gedeeltelijk. De Refunds API van Razorpay regelt beide, en de integratie bepaalt het bedrag volgens uw boekingsregels.
Volledige terugbetaling
Een kosteloze annulering geeft het hele vastgelegde bedrag terug op de betaalmethode waarmee de reiziger heeft betaald.
Gedeeltelijke terugbetaling
Na aftrek van annuleringskosten betaalt de server alleen het restant terug. Het bedrag wordt net als de oorspronkelijke order in paise verstuurd.
Deel van een reis
Annuleer één hotelnacht of één passagier en betaal dat deel terug; verdere gedeeltelijke terugbetalingen kunnen volgen tot het vastgelegde totaal.
refund.processed
De terugbetalingswebhook meldt uw server wanneer de terugbetaling is voltooid, zodat boeking en reiziger de juiste status zien.
Bij de boeking opgeslagen
Elke terugbetalings-id wordt bewaard bij de boekingsreferentie en de oorspronkelijke payment_id voor uw boekhouding.
Voorbeeld: annulering met kosten
- Vastgelegd
- ₹12,500.00 amount: 1250000
- Annuleringskosten
- ₹1,500.00 amount: 150000
- Terugbetaald bedrag
- ₹11,000.00 amount: 1100000
Alleen voorbeeldcijfers. Razorpay rekent met de kleinste valuta-eenheid, dus 100 paise is één roepie.
Razorpay koppelen
Drie manieren om betalingen te ontvangen, met of zonder Razorpay
Kies de route die past bij uw team en uw lanceerdatum. Bij alle drie blijft het geld op uw eigen handelaarsaccount; PHPTRAVELS zit nooit in de afwikkeling.
Optie 1
Uw ontwikkelaars voegen het toe
PHPTRAVELS wordt met de volledige broncode geleverd, dus uw eigen ontwikkelaars kunnen Razorpay als nieuwe gateway naast de bestaande toevoegen: order aanmaken, Checkout in de betaalstap, handtekeningcontrole, capture, webhooks en terugbetalingen.
- Bouwen en testen met Razorpay-testmodussleutels
- De boekingsreferentie hergebruiken als order-receipt
- Overstappen op livesleutels zodra testboekingen slagen
Optie 2
PHPTRAVELS bouwt het
Onze ontwikkelaars kunnen de Razorpay-connector voor u bouwen als API-integratie op maat. U stuurt de eisen, ontvangt kosten en planning voordat het werk begint en krijgt aan het eind de geteste broncode.
- Offerte vóór aanvang van het werk
- Gebouwd tegen de Razorpay-testmodus
- Geleverd als broncode die van u is
Optie 3
Nu een kant-en-klare gateway gebruiken
Moet u eerst live, schakel dan een gateway in die al in het platform zit. Voor India is dat Cashfree. Kant-en-klare gateways zijn vandaag onder meer:
- CashfreeInstallatiegids Cashfree
- Stripe
- PayPal
- xMoney
- Fawaterk
- Paystack
Kant-en-klare gateways
Betaalgateways die u vandaag kunt inschakelen
Deze lijst komt live uit de PHPTRAVELS-gatewaygids. Elke gateway schakelt u in de admin in met uw eigen account en sleutels.
Cashfree
StripeIntegratiegidsPayPalIntegratiegids
xMoney
Fawaterk
Paystack
Flutterwave
Adyen
MyFatoorah
SSLcommerz
Razorpay- Alle integraties
Wilt u de aanroepen achter een van deze gateways begrijpen? Lees de gids Betaalgateway-API, vergelijk de gidsen Stripe-betalingen en PayPal-betalingen, of bekijk hoe agenten betalen vanuit een B2B-agentwallet op het B2B-portaal.
Niet als kant-en-klare connector. Razorpay staat vandaag niet in de gatewaylijst van PHPTRAVELS, dus u kunt het niet in de admin inschakelen. Omdat de volledige broncode is inbegrepen, kan het worden toegevoegd als maatwerkintegratie van een betaalgateway, door uw ontwikkelaars of door de onze.
Cashfree is een kant-en-klare gateway in PHPTRAVELS met een installatiegids op docs.phptravels.com/payments/cashfree. U schakelt het in de admin in met uw eigen Cashfree-account. Andere kant-en-klare gateways zoals Stripe en PayPal staan op de pagina met betaalgateways.
Razorpay accepteert kaarten, UPI, netbanking en wallets voor betalingen in Indiase roepies. Welke methoden in de checkout verschijnen, hangt af van wat in uw eigen Razorpay-account is ingeschakeld.
Razorpay rekent met de kleinste valuta-eenheid, dus een boekingstotaal in roepies wordt met 100 vermenigvuldigd voordat de order wordt aangemaakt. Een terugbetalingsbedrag wordt op dezelfde manier verstuurd.
Checkout geeft een betalings-id, de order-id en een handtekening terug. Uw server berekent met uw Key Secret een HMAC SHA256 van order-id en betalings-id en accepteert de betaling alleen als de uitkomst gelijk is aan de handtekening.
Automatische capture is eenvoudiger. Met handmatige capture legt u pas vast nadat de airline, het hotel of de tourleverancier de boeking bevestigt, zodat een mislukte boeking kan worden vrijgegeven in plaats van terugbetaald. De keuze hangt af van uw producten en leveranciers.
Ja. De Refunds API van Razorpay ondersteunt volledige en gedeeltelijke terugbetalingen, zodat annuleringskosten kunnen worden ingehouden en het restant wordt teruggegeven. De webhook refund.processed meldt uw server wanneer de terugbetaling klaar is.
Ja. Het handelaarsaccount, de Key ID en het Key Secret en de uitbetaling zijn van u. PHPTRAVELS levert nooit gatewaygegevens en beheert nooit uw geld. Bouw met testmodussleutels en schakel bij livegang over op livesleutels.
Dat hangt af van de omvang, zoals checkout, handmatige capture, terugbetalingen en agentbetalingen. PHPTRAVELS geeft een offerte voor maatwerk voordat het begint. Het platform zelf is een eenmalige licentie vanaf.
Verder ontdekken
Meer over het platform
- Betaalgateway-integratieCheckout, 3D Secure, terugbetalingen en webhooks
- Betaalgateway-APIHoe kaartbetalingen, 3-D Secure, captures en terugbetalingen via een API werken
- API-integratie op maatKoppel elke leveranciers- of partner-API aan PHPTRAVELS
- Stripe-betalingenBetalen met kaart en wallet, terugbetalingen
- PayPal-betalingenAfrekenen met PayPal voor vluchten, hotels en tours
- B2B-agentwalletStortingen, kredietlimieten en een grootboek per agent
