دموی زنده

راهنمای درگاه پرداخت

یکپارچه‌سازی Razorpay API برای وب‌سایت‌های رزرو سفر

Razorpay یک درگاه پرداخت برای هند است که کارت، UPI، اینترنت‌بانک و کیف پول را به روپیه می‌پذیرد. این راهنما توضیح می‌دهد پرداخت Razorpay برای رزرو پرواز، هتل یا تور چگونه کار می‌کند و وضعیت واقعی آن در PHPTRAVELS چیست: Razorpay امروز کانکتور آماده نیست، اما می‌توان آن را به‌صورت یکپارچه‌سازی سفارشی روی سورس‌کدی که مال شماست اضافه کرد.

  • کارت، UPI، اینترنت‌بانک، کیف پول
  • سفارش، Checkout، برداشت
  • بررسی امضا و وب‌هوک
  • بازپرداخت کامل و جزئی

Razorpay در یک نگاه

Razorpay چیست و در PHPTRAVELS در چه وضعیتی است

Razorpay یک درگاه پرداخت هندی است. کسب‌وکار سفری که به مشتریان هندی می‌فروشد از آن برای ارائه روش‌های پرداختی استفاده می‌کند که آن مشتریان انتظار دارند: کارت‌های نقدی و اعتباری، UPI، اینترنت‌بانک و کیف پول‌های رایج، با دریافت و تسویه به روپیه هند در حساب Razorpay خود پذیرنده.

PHPTRAVELS یک پلتفرم رزرو سفر خودمیزبان با سورس‌کد کامل است. درگاه‌های پرداخت آماده آن از یک فهرست زنده می‌آیند که با اعتبارنامه پذیرنده خودتان روشن می‌کنید. Razorpay امروز در آن فهرست نیست، پس هنوز کلیدی برای آن در پنل مدیریت وجود ندارد.

این به معنای آن نیست که نمی‌توانید از آن استفاده کنید. چون کد مال شماست، Razorpay را می‌توان به‌صورت یکپارچه‌سازی API سفارشی اضافه کرد و برای هند هم یک درگاه آماده وجود دارد: Cashfree. صفحه یکپارچه‌سازی درگاه پرداخت همه درگاه‌هایی را که همین حالا می‌توانید روشن کنید فهرست کرده است.

تصویر یک پرداخت سفر آنلاین: صفحه پرداخت رزرو، پرداخت کارتی را به درگاه پرداخت می‌دهد و نتیجه به سیستم رزرو برمی‌گردد

شناسنامه Razorpay

چیست
یک درگاه پرداخت برای کسب‌وکارهای هند
روش‌های پرداخت
کارت، UPI، اینترنت‌بانک و کیف پول
ارز
دریافت و تسویه به INR؛ مبالغ به پیسه ارسال می‌شوند
کلیدهای API
Key ID و Key Secret، جدا برای حالت آزمایشی و حالت واقعی
وضعیت در PHPTRAVELS
کانکتور آماده نیست. به‌صورت یکپارچه‌سازی سفارشی روی سورس‌کد همراه موجود است
آماده امروز در هند
Cashfree، در پنل مدیریت با حساب Cashfree خودتان روشن می‌شود
راهنمای راه‌اندازی Cashfree

جریان پرداخت

یک پرداخت Razorpay برای رزرو سفر، گام به گام

یکپارچه‌سازی Razorpay کار را بین مرورگر مسافر و سرور شما تقسیم می‌کند. مرورگر Checkout را نشان می‌دهد؛ سرور سفارش را می‌سازد، نتیجه را بررسی می‌کند و تصمیم می‌گیرد رزرو چه زمانی تأیید شود.

  1. 01

    سرور شما

    ساخت سفارش

    وقتی مسافر روی پرداخت می‌زند، سرور شما Orders API را با مبلغ به پیسه، ارز و یک receipt برابر شناسه رزرو فرامی‌خواند. Razorpay یک order_id برمی‌گرداند.

  2. 02

    مرورگر

    باز کردن Razorpay Checkout

    صفحه رزرو، Checkout را با Key ID شما و همان order_id باز می‌کند تا مسافر دقیقاً مبلغی را بپردازد که سرور شما تعیین کرده است.

  3. 03

    مرورگر

    مسافر پرداخت می‌کند

    مسافر کارت، UPI، اینترنت‌بانک یا کیف پول را انتخاب می‌کند و هر مرحله‌ای را که بانکش بخواهد انجام می‌دهد. پرداخت اکنون مجاز شده است.

  4. 04

    مرورگر

    Checkout سه مقدار برمی‌گرداند

    در صورت موفقیت، Checkout مقادیر razorpay_payment_id، razorpay_order_id و razorpay_signature را برمی‌گرداند و صفحه آن‌ها را به سرور شما می‌فرستد.

  5. 05

    سرور شما

    بررسی امضا

    سرور شما امضا را از order_id و payment_id با Key Secret دوباره محاسبه می‌کند. فقط امضای منطبق پرداخت واقعی به حساب می‌آید.

  6. 06

    سرور شما

    برداشت پرداخت

    با برداشت خودکار، Razorpay خودش برداشت می‌کند. با برداشت دستی، سرور شما پس از تأیید ایرلاین، هتل یا تأمین‌کننده تور برداشت می‌کند تا هیچ‌کس بابت رزروی که ناموفق بوده کسر نشود.

  7. 07

    سرور شما

    تأیید رزرو

    رزرو به حالت پرداخت‌شده می‌رود، بلیت یا وائوچر صادر می‌شود و payment_id مربوط به Razorpay کنار شناسه رزرو ذخیره می‌شود.

  8. 08

    سرور شماسرور به سرور

    دریافت وب‌هوک

    Razorpay رویدادهایی مانند payment.captured را هم به نشانی وب‌هوک شما می‌فرستد. این برای مسافری است که پیش از گزارش صفحه، تب را می‌بندد.

امضاها و وب‌هوک‌ها

دو بررسی که یکپارچه‌سازی Razorpay را قابل اعتماد نگه می‌دارد

هر چیزی که از مرورگر یا از اینترنت برسد می‌تواند جعلی باشد. یکپارچه‌سازی Razorpay تنها پس از بررسی امضایی که با رازی ساخته شده که هرگز سرور شما را ترک نمی‌کند به پرداخت اعتماد می‌کند.

verify-razorpay.php · نمونه توضیحی
 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}

شبه‌کد توضیحی برای نمایش منطق، نه فایل آماده استفاده. برای فراخوانی‌های دقیق از مستندات و SDKهای Razorpay پیروی کنید.

  • امضای پرداخت

    HMAC SHA256 از order_id، یک نماد | و payment_id، با کلید Key Secret شما، باید با razorpay_signature برابر باشد. مقایسه را با تابعی با زمان ثابت انجام دهید.

  • امضای وب‌هوک

    هر وب‌هوک یک هدر X-Razorpay-Signature دارد: یک HMAC SHA256 از بدنه خام درخواست، با کلید رازی که در داشبورد Razorpay برای وب‌هوک تعیین کرده‌اید.

  • تحویل‌های تکراری

    وب‌هوک‌ها ممکن است چندبار یا نامرتب برسند. شناسه رویداد و پرداخت را ثبت کنید و رویدادی را که قبلاً روی رزرو اعمال کرده‌اید نادیده بگیرید.

  • رازها سمت سرور می‌مانند

    فقط Key ID به مرورگر می‌رود. Key Secret و راز وب‌هوک در پیکربندی سرور می‌مانند، نه در سورس صفحه یا اپ موبایل.

بازپرداخت و لغو

بازپرداخت سفر به‌ندرت کل مبلغ است

هزینه لغو، قوانین عدم حضور و برنامه‌های سفر که بخشی از آن لغو می‌شود باعث می‌شود بازپرداخت سفر اغلب جزئی باشد. Refunds API در Razorpay هر دو حالت را پوشش می‌دهد و یکپارچه‌سازی مبلغ را طبق قوانین رزرو شما تعیین می‌کند.

  • بازپرداخت کامل

    لغو رایگان، کل مبلغ برداشت‌شده را به روشی که مسافر با آن پرداخت کرده برمی‌گرداند.

  • بازپرداخت جزئی

    پس از کسر هزینه لغو، سرور فقط مانده را بازپرداخت می‌کند. مبلغ مانند سفارش اولیه به پیسه ارسال می‌شود.

  • بخشی از برنامه سفر

    یک شب هتل یا یک مسافر را لغو کنید و همان بخش را بازپرداخت کنید؛ بازپرداخت‌های جزئی بعدی تا سقف کل مبلغ برداشت‌شده ممکن است.

  • refund.processed

    وب‌هوک بازپرداخت به سرور شما می‌گوید بازپرداخت چه زمانی انجام شده تا رزرو و مسافر وضعیت درست را ببینند.

  • ذخیره کنار رزرو

    شناسه هر بازپرداخت همراه با شناسه رزرو و payment_id اصلی برای تیم حسابداری شما نگه‌داری می‌شود.

  • نمونه: لغو همراه با هزینه

    برداشت‌شده
    ₹12,500.00 amount: 1250000
    هزینه لغو
    ₹1,500.00 amount: 150000
    مبلغ بازپرداخت
    ₹11,000.00 amount: 1100000

    فقط ارقام نمونه. Razorpay مبالغ را به کوچک‌ترین واحد ارز می‌گیرد، پس ۱۰۰ پیسه برابر یک روپیه است.

چگونه Razorpay را وصل کنیم

سه راه برای دریافت پرداخت، با Razorpay یا بدون آن

مسیری را انتخاب کنید که به تیم و تاریخ راه‌اندازی شما بخورد. در هر سه، پول در حساب پذیرنده خودتان می‌ماند؛ PHPTRAVELS هرگز در تسویه نقشی ندارد.

  1. گزینه ۱

    توسعه‌دهندگان خودتان اضافه می‌کنند

    PHPTRAVELS با سورس‌کد کامل می‌آید، پس توسعه‌دهندگان خودتان می‌توانند Razorpay را به‌عنوان درگاه جدید کنار درگاه‌های موجود اضافه کنند: ساخت سفارش، Checkout در مرحله پرداخت، بررسی امضا، برداشت، وب‌هوک و بازپرداخت.

    • با کلیدهای حالت آزمایشی Razorpay بسازید و آزمایش کنید
    • شناسه رزرو را به‌عنوان receipt سفارش دوباره به کار ببرید
    • پس از موفقیت رزروهای آزمایشی به کلیدهای واقعی بروید
  2. گزینه ۲

    PHPTRAVELS می‌سازد

    توسعه‌دهندگان ما می‌توانند کانکتور Razorpay را به‌صورت یکپارچه‌سازی API سفارشی برایتان بسازند. شما نیازمندی‌ها را می‌فرستید، پیش از شروع کار هزینه و زمان‌بندی را می‌گیرید و در پایان سورس‌کد آزمایش‌شده را تحویل می‌گیرید.

    • برآورد پیش از شروع کار
    • ساخته‌شده روی حالت آزمایشی Razorpay
    • تحویل به‌صورت سورس‌کدی که مال شماست
  3. گزینه ۳

    همین حالا از یک درگاه آماده استفاده کنید

    اگر باید اول راه‌اندازی کنید، درگاهی را روشن کنید که از قبل در پلتفرم هست. برای هند، آن Cashfree است. درگاه‌های آماده امروز شامل این‌ها هستند:

درگاه‌های آماده

درگاه‌های پرداختی که امروز می‌توانید روشن کنید

این فهرست به‌صورت زنده از فهرست درگاه‌های PHPTRAVELS می‌آید. هر کدام در پنل مدیریت با حساب و کلیدهای خودتان فعال می‌شود.

می‌خواهید فراخوانی‌های پشت هر کدام را بفهمید؟ راهنمای API درگاه پرداخت را بخوانید، راهنماهای پرداخت با Stripe و پرداخت با PayPal را مقایسه کنید، یا ببینید نمایندگان در پورتال B2B چگونه از یک کیف پول نماینده B2B پرداخت می‌کنند.

پرسش‌های Razorpay

Razorpay و PHPTRAVELS، با پاسخ

گفتگو با فروش

نه به‌صورت کانکتور آماده. Razorpay امروز در فهرست درگاه‌های PHPTRAVELS نیست، پس نمی‌توانید آن را در پنل مدیریت روشن کنید. چون سورس‌کد کامل همراه است، می‌توان آن را به‌صورت یکپارچه‌سازی سفارشی درگاه پرداخت اضافه کرد، چه توسط توسعه‌دهندگان شما و چه توسط ما.

Cashfree یک درگاه آماده در PHPTRAVELS است و راهنمای راه‌اندازی آن در docs.phptravels.com/payments/cashfree قرار دارد. آن را در پنل مدیریت با حساب Cashfree خودتان روشن می‌کنید. درگاه‌های آماده دیگر مانند Stripe و PayPal در صفحه درگاه‌های پرداخت فهرست شده‌اند.

Razorpay برای پرداخت به روپیه هند کارت، UPI، اینترنت‌بانک و کیف پول می‌پذیرد. اینکه کدام روش‌ها در صفحه پرداخت نمایش داده شوند به فعال‌سازی‌های حساب Razorpay خودتان بستگی دارد.

Razorpay مبالغ را به کوچک‌ترین واحد ارز می‌گیرد، پس جمع رزرو به روپیه پیش از ساخت سفارش در ۱۰۰ ضرب می‌شود. مبلغ بازپرداخت هم به همین شکل ارسال می‌شود.

Checkout یک شناسه پرداخت، شناسه سفارش و یک امضا برمی‌گرداند. سرور شما با Key Secret یک HMAC SHA256 از شناسه سفارش و شناسه پرداخت محاسبه می‌کند و پرداخت را فقط وقتی می‌پذیرد که نتیجه با امضا یکی باشد.

برداشت خودکار ساده‌تر است. برداشت دستی اجازه می‌دهد فقط پس از تأیید ایرلاین، هتل یا تأمین‌کننده تور برداشت کنید، تا رزرو ناموفق به‌جای بازپرداخت آزاد شود. انتخاب به محصولات و تأمین‌کنندگان شما بستگی دارد.

بله. Refunds API در Razorpay بازپرداخت کامل و جزئی را پشتیبانی می‌کند، پس می‌توان هزینه لغو را نگه داشت و مانده را برگرداند. وب‌هوک refund.processed به سرور شما می‌گوید بازپرداخت کامل شده است.

بله. حساب پذیرنده، Key ID و Key Secret آن و تسویه‌اش مال شماست. PHPTRAVELS هرگز اعتبارنامه درگاه نمی‌دهد و هرگز پول شما را در دست نمی‌گیرد. با کلیدهای حالت آزمایشی بسازید و هنگام راه‌اندازی به کلیدهای واقعی بروید.

بسته به دامنه‌ای است که نیاز دارید، مانند پرداخت، برداشت دستی، بازپرداخت و پرداخت نمایندگان. PHPTRAVELS کار سفارشی را پیش از شروع برآورد می‌کند. خود پلتفرم یک مجوز یک‌باره است که از شروع می‌شود.