Przewodnik po bramce płatności
Integracja API Razorpay dla serwisów rezerwacji podróży
Razorpay to indyjska bramka płatności, która przyjmuje karty, UPI, netbanking i portfele w rupiach. Ten przewodnik wyjaśnia, jak działa płatność Razorpay przy rezerwacji lotu, hotelu lub wycieczki, oraz jaki jest rzeczywisty status w PHPTRAVELS: Razorpay nie jest dziś gotowym konektorem, ale można go dodać jako własną integrację w kodzie źródłowym, którego jesteś właścicielem.
- Karty, UPI, netbanking, portfele
- Zamówienie, Checkout, przechwycenie
- Weryfikacja podpisu i webhooka
- Zwroty pełne i częściowe
Razorpay w skrócie
Czym jest Razorpay i jakie ma miejsce w PHPTRAVELS
Razorpay to indyjska bramka płatności. Firma turystyczna sprzedająca klientom w Indiach używa jej, aby przy kasie przyjmować metody, których ci klienci oczekują: karty debetowe i kredytowe, UPI, netbanking i popularne portfele, wszystko pobierane i rozliczane w rupiach na koncie Razorpay sprzedawcy.
PHPTRAVELS to samodzielnie hostowana platforma rezerwacji podróży z pełnym kodem źródłowym w zestawie. Gotowe bramki płatności pochodzą z listy na żywo, którą włączasz własnymi danymi dostępowymi sprzedawcy. Razorpay nie ma dziś na tej liście, więc w panelu administracyjnym nie ma jeszcze przełącznika do jego włączenia.
To nie znaczy, że nie możesz go używać. Ponieważ kod należy do Ciebie, Razorpay można dodać jako Integracja API na zamówienie, a dla Indii dostępna jest już gotowa bramka: Cashfree. Strona Integracja bramek płatniczych wymienia wszystkie bramki, które możesz włączyć od razu.

Karta informacyjna Razorpay
- Czym jest
- Bramką płatności dla firm w Indiach
- Metody płatności
- Karty, UPI, netbanking i portfele
- Waluta
- Pobiera i rozlicza w INR; kwoty wysyła się w paise
- Klucze API
- Key ID i Key Secret, osobne dla trybu testowego i produkcyjnego
- Status w PHPTRAVELS
- Nie jest gotowym konektorem. Dostępny jako własna integracja w dołączonym kodzie źródłowym
- Gotowe dziś w Indiach
- Cashfree, włączany w panelu administracyjnym na Twoim koncie Cashfree
Przebieg płatności
Jedna płatność Razorpay za rezerwację podróży, krok po kroku
Integracja z Razorpay dzieli pracę między przeglądarkę podróżnego a Twój serwer. Przeglądarka pokazuje Checkout; serwer tworzy zamówienie, sprawdza wynik i decyduje, kiedy rezerwacja jest potwierdzona.
- 01
Twój serwer
Utworzenie zamówienia
Gdy podróżny kliknie Zapłać, Twój serwer wywołuje Orders API z kwotą w paise, walutą i receipt ustawionym na numer rezerwacji. Razorpay zwraca order_id.
- 02
Przeglądarka
Otwarcie Razorpay Checkout
Strona rezerwacji otwiera Checkout z Twoim Key ID i tym order_id, dzięki czemu podróżny płaci dokładnie tyle, ile ustalił Twój serwer.
- 03
Przeglądarka
Podróżny płaci
Podróżny wybiera kartę, UPI, netbanking lub portfel i wykonuje ewentualny krok wymagany przez bank. Płatność jest teraz autoryzowana.
- 04
Przeglądarka
Checkout zwraca trzy wartości
Po powodzeniu Checkout zwraca razorpay_payment_id, razorpay_order_id i razorpay_signature, a strona wysyła je na Twój serwer.
- 05
Twój serwer
Weryfikacja podpisu
Twój serwer ponownie oblicza podpis z order_id i payment_id za pomocą Key Secret. Tylko zgodny podpis uznaje się za prawdziwą płatność.
- 06
Twój serwer
Przechwycenie płatności
Przy automatycznym przechwyceniu Razorpay robi to za Ciebie. Przy ręcznym Twój serwer przechwytuje płatność po potwierdzeniu przez linię lotniczą, hotel lub dostawcę wycieczki, aby nikt nie płacił za nieudaną rezerwację.
- 07
Twój serwer
Potwierdzenie rezerwacji
Rezerwacja zmienia status na opłaconą, wystawiany jest bilet lub voucher, a payment_id z Razorpay zapisywany jest przy numerze rezerwacji.
- 08
Twój serwerSerwer do serwera
Odebranie webhooka
Razorpay wysyła też zdarzenia, takie jak payment.captured, na adres URL Twojego webhooka. Obejmuje to podróżnego, który zamknął kartę, zanim strona zdążyła zgłosić wynik.
Podpisy i webhooki
Dwie kontrole, które czynią integrację Razorpay wiarygodną
Wszystko, co przychodzi z przeglądarki lub z internetu, może być sfałszowane. Integracja z Razorpay ufa płatności dopiero po sprawdzeniu podpisu utworzonego sekretem, który nigdy nie opuszcza Twojego serwera.
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}
Poglądowy pseudokod pokazujący logikę, nie gotowy plik do wklejenia. Dokładne wywołania znajdziesz w dokumentacji i SDK Razorpay.
Podpis płatności
HMAC SHA256 z order_id, znaku pionowej kreski i payment_id, z kluczem Key Secret, musi być równy razorpay_signature. Porównuj funkcją o stałym czasie działania.
Podpis webhooka
Każdy webhook zawiera nagłówek X-Razorpay-Signature: HMAC SHA256 surowej treści żądania, z kluczem w postaci sekretu webhooka ustawionego w panelu Razorpay.
Powtórne dostarczenia
Webhooki mogą przychodzić więcej niż raz lub w złej kolejności. Zapisuj identyfikatory zdarzenia i płatności i ignoruj zdarzenie, które zostało już zastosowane do rezerwacji.
Sekrety zostają po stronie serwera
Do przeglądarki trafia tylko Key ID. Key Secret i sekret webhooka znajdują się w konfiguracji serwera, nigdy w kodzie strony ani w aplikacji mobilnej.
Zwroty i anulacje
Zwroty za podróże rzadko obejmują pełną kwotę
Opłaty za anulowanie, zasady no-show i częściowo anulowane plany podróży sprawiają, że zwrot za podróż jest często częściowy. Refunds API Razorpay obsługuje oba przypadki, a integracja ustala kwotę na podstawie Twoich zasad rezerwacji.
Zwrot pełny
Bezpłatne anulowanie zwraca całą przechwyconą kwotę na metodę, którą podróżny zapłacił.
Zwrot częściowy
Po opłacie za anulowanie serwer zwraca tylko resztę. Kwotę wysyła się w paise, tak jak w oryginalnym zamówieniu.
Część planu podróży
Anuluj jedną noc hotelową lub jednego pasażera i zwróć tę część; kolejne zwroty częściowe mogą następować do wysokości przechwyconej sumy.
refund.processed
Webhook zwrotu informuje Twój serwer, kiedy zwrot został zrealizowany, aby rezerwacja i podróżny widzieli właściwy status.
Zapisany przy rezerwacji
Każdy identyfikator zwrotu jest przechowywany z numerem rezerwacji i oryginalnym payment_id dla Twojego działu księgowości.
Przykład: anulowanie z opłatą
- Przechwycono
- ₹12,500.00 amount: 1250000
- Opłata za anulowanie
- ₹1,500.00 amount: 150000
- Kwota zwrotu
- ₹11,000.00 amount: 1100000
Kwoty wyłącznie przykładowe. Razorpay przyjmuje kwoty w najmniejszej jednostce waluty, więc 100 paise to jedna rupia.
Jak podłączyć Razorpay
Trzy sposoby przyjmowania płatności z Razorpay lub bez niego
Wybierz drogę dopasowaną do swojego zespołu i terminu startu. We wszystkich trzech pieniądze trafiają na Twoje własne konto sprzedawcy; PHPTRAVELS nigdy nie uczestniczy w rozliczeniu.
Opcja 1
Dodają ją Twoi programiści
PHPTRAVELS jest dostarczany z pełnym kodem źródłowym, więc Twoi programiści mogą dodać Razorpay jako nową bramkę obok istniejących: tworzenie zamówień, Checkout w kroku płatności, sprawdzanie podpisu, przechwytywanie, webhooki i zwroty.
- Twórz i testuj z kluczami trybu testowego Razorpay
- Użyj numeru rezerwacji jako receipt zamówienia
- Przejdź na klucze produkcyjne, gdy rezerwacje testowe przejdą
Opcja 2
Buduje ją PHPTRAVELS
Nasi programiści mogą zbudować dla Ciebie konektor Razorpay jako Integracja API na zamówienie. Przesyłasz wymagania, przed rozpoczęciem prac otrzymujesz koszt i harmonogram, a na koniec przetestowany kod źródłowy.
- Wycena przed rozpoczęciem prac
- Budowane na trybie testowym Razorpay
- Dostarczane jako kod źródłowy należący do Ciebie
Opcja 3
Użyj gotowej bramki już teraz
Jeśli najpierw musisz wystartować, włącz bramkę, która jest już w platformie. Dla Indii to Cashfree. Gotowe dziś bramki to między innymi:
- CashfreePrzewodnik konfiguracji Cashfree
- Stripe
- PayPal
- xMoney
- Fawaterk
- Paystack
Gotowe bramki
Bramki płatności, które możesz włączyć już dziś
Ta lista pochodzi na żywo z katalogu bramek PHPTRAVELS. Każdą włącza się w panelu administracyjnym na własnym koncie i własnych kluczach.
Cashfree
StripePrzewodnik integracjiPayPalPrzewodnik integracji
xMoney
Fawaterk
Paystack
Flutterwave
Adyen
MyFatoorah
SSLcommerz
Razorpay- Wszystkie integracje
Chcesz zrozumieć wywołania stojące za którąkolwiek z nich? Przeczytaj przewodnik API bramki płatności, porównaj przewodniki Płatności Stripe i Płatności PayPal albo zobacz, jak agenci płacą z Portfel B2B agenta w portalu B2B.
Nie jako gotowy konektor. Razorpay nie ma dziś na liście bramek PHPTRAVELS, więc nie można go włączyć w panelu administracyjnym. Ponieważ pełny kod źródłowy jest w zestawie, można go dodać jako własną integrację bramki płatności, przez Twoich programistów lub naszych.
Cashfree to gotowa bramka w PHPTRAVELS z przewodnikiem konfiguracji pod adresem docs.phptravels.com/payments/cashfree. Włączasz ją w panelu administracyjnym na własnym koncie Cashfree. Inne gotowe bramki, takie jak Stripe i PayPal, są wymienione na stronie bramek płatności.
Razorpay akceptuje karty, UPI, netbanking i portfele w płatnościach w rupiach indyjskich. To, które metody pojawią się przy kasie, zależy od tego, co jest włączone na Twoim koncie Razorpay.
Razorpay przyjmuje kwoty w najmniejszej jednostce waluty, więc suma rezerwacji w rupiach jest mnożona przez 100 przed utworzeniem zamówienia. Kwotę zwrotu wysyła się tak samo.
Checkout zwraca identyfikator płatności, identyfikator zamówienia i podpis. Twój serwer oblicza HMAC SHA256 z identyfikatora zamówienia i płatności za pomocą Key Secret i akceptuje płatność tylko wtedy, gdy wynik zgadza się z podpisem.
Automatyczne jest prostsze. Ręczne pozwala przechwycić płatność dopiero po potwierdzeniu rezerwacji przez linię lotniczą, hotel lub dostawcę wycieczki, więc nieudaną rezerwację można zwolnić zamiast zwracać. Wybór zależy od Twoich produktów i dostawców.
Tak. Refunds API Razorpay obsługuje zwroty pełne i częściowe, więc opłatę za anulowanie można zatrzymać, a resztę zwrócić. Webhook refund.processed informuje Twój serwer, kiedy zwrot jest zakończony.
Tak. Konto sprzedawcy, jego Key ID i Key Secret oraz rozliczenia należą do Ciebie. PHPTRAVELS nigdy nie dostarcza danych dostępowych bramki i nigdy nie obsługuje Twoich środków. Twórz z kluczami trybu testowego i przejdź na produkcyjne przy starcie.
Zależy od potrzebnego zakresu, takiego jak checkout, ręczne przechwytywanie, zwroty i płatności agentów. PHPTRAVELS wycenia prace na zamówienie przed ich rozpoczęciem. Sama platforma to licencja jednorazowa.
Odkryj więcej
Więcej o platformie
- Integracja bramek płatniczychCheckout, 3D Secure, zwroty i webhooki
- API bramki płatnościJak działają przez API płatności kartą, 3-D Secure, przechwycenia i zwroty
- Integracja API na zamówieniePodłącz dowolne API dostawcy lub partnera do PHPTRAVELS
- Płatności StripePłatność kartą i portfelem, zwroty i wypłaty
- Płatności PayPalPłatność PayPal za loty, hotele i wycieczki
- Portfel B2B agentaWpłaty, limity kredytowe i księga dla każdego agenta
