Live demo

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.

Illustratie van een online reisbetaling: een boekingscheckout geeft een kaartbetaling door aan een betaalgateway en terug aan het boekingssysteem

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
Installatiegids Cashfree

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

verify-razorpay.php · ter illustratie
 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.

  1. 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
  2. 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
  3. 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:

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.

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.

Vragen over Razorpay

Razorpay en PHPTRAVELS, beantwoord

Praat met sales

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.