Demo trực tiếp

Thanh toán cho phần mềm du lịch

Tích hợp API Paddle: khi nào merchant of record phù hợp với doanh nghiệp du lịch

Paddle bán phần mềm, SaaS và sản phẩm số thay bạn với vai trò merchant of record. Nhờ đó Paddle rất hợp với công ty công nghệ du lịch tự thu phí gói đăng ký, và thường không phải công cụ phù hợp để nhận tiền vé máy bay, khách sạn và tour. Trang này giải thích sự khác biệt, cách một tích hợp Paddle hoạt động và cách kết nối với PHPTRAVELS khi trường hợp của bạn phù hợp.

  • Merchant of record, không phải cổng thanh toán
  • Dành cho phần mềm và gói đăng ký
  • Webhook có chữ ký
  • Kết nối dưới dạng tích hợp tùy chỉnh

Hai mô hình khác nhau

Merchant of record so với cổng thanh toán

Cổng thanh toán chuyển tiền thay bạn: bạn là người bán, công ty thanh toán xử lý thẻ, còn thuế, hóa đơn, hoàn tiền và tranh chấp vẫn thuộc trách nhiệm của bạn. Merchant of record đi xa hơn một bước và trở thành người bán trong mắt khách hàng lẫn cơ quan thuế. Khi ai đó mua qua Paddle, Paddle bán cho họ, thu và nộp thuế bán hàng hoặc VAT, xuất hóa đơn, xử lý chargeback rồi trả phần của bạn.

Mô hình này giúp công ty phần mềm bớt rất nhiều việc thuế và tuân thủ, nhưng cũng có nghĩa là Paddle quyết định những gì họ sẵn sàng bán lại. Nền tảng của Paddle được xây cho phần mềm, SaaS và sản phẩm số, không phải dịch vụ du lịch do hãng hàng không, khách sạn và đơn vị tổ chức tour cung cấp. Cơ chế chung của thanh toán thẻ được trình bày ở trang API cổng thanh toán.

Sơ đồ luồng thanh toán cho thấy khách hàng trả tiền trực tuyến trong khi trách nhiệm thanh toán, thuế và chi trả chuyển giữa người bán và nhà cung cấp thanh toán
Câu hỏiPaddle (merchant of record)Cổng thanh toán
Ai là người bán?Paddle là người bán chính thức. Biên nhận và sao kê thẻ của khách hàng đến từ phía Paddle trong giao dịch.Bạn là người bán. Cổng thanh toán chỉ xử lý khoản thanh toán trên tài khoản merchant của bạn.
Ai lo thuế bán hàng và VAT?Paddle tính, thu và nộp thuế bán hàng cùng VAT tại những nơi họ bán.Bạn tự lo, qua đăng ký thuế, kế toán và hệ thống xuất hóa đơn của riêng bạn.
Ai xuất hóa đơn?Paddle xuất hóa đơn hoặc biên nhận cho người mua.Hệ thống của bạn xuất, ví dụ hóa đơn đặt chỗ trong trang admin.
Ai xử lý chargeback?Paddle xử lý tranh chấp và chargeback với tư cách người bán.Bạn trả lời tranh chấp kèm bằng chứng qua dashboard hoặc API của cổng thanh toán.
Bạn bán được gì?Phần mềm, SaaS, gói đăng ký và sản phẩm số, trong phạm vi quy tắc sử dụng chấp nhận được của Paddle.Các giao dịch hàng hóa và dịch vụ mà cổng thanh toán chấp thuận, gồm cả đặt chỗ du lịch với nhiều merchant trong ngành.
Bạn nhận tiền thế nào?Paddle chi trả thu nhập của bạn sau khi trừ phí, theo lịch chi trả của họ.Khoản thanh toán đã thu được quyết toán về tài khoản merchant hoặc ngân hàng của bạn, trừ phí của cổng.

Phí, quốc gia được hỗ trợ và danh sách chính xác các sản phẩm được phép do Paddle quy định và thay đổi theo thời gian. Hãy xem điều khoản của chính Paddle trước khi tính đến việc dùng.

Gợi ý quyết định

Paddle có phù hợp với thứ bạn bán không?

Bắt đầu từ việc khách hàng đang trả tiền cho cái gì. Chọn kịch bản gần nhất với doanh nghiệp của bạn.

01

Du khách trả tiền vé máy bay, khách sạn và tour

Khách hàng mua một chuyến đi do hãng hàng không, khách sạn hoặc đơn vị tổ chức tour thực hiện. Các khoản thanh toán này thường cần ủy quyền trước và thu sau, hoàn tiền một phần sau phí hủy và thanh toán đa tiền tệ.

Quan điểm của chúng tôi

Dùng cổng thanh toán

Hãy xem quy tắc sử dụng chấp nhận được của Paddle trước khi dùng cho đặt chỗ du lịch. Hầu hết doanh nghiệp du lịch nhận tiền đặt chỗ qua cổng thanh toán như Stripe, PayPal, Adyen hoặc cổng thanh toán khu vực.

02

Bạn bán phần mềm du lịch hoặc SaaS của chính mình

Bạn là nhà cung cấp công nghệ du lịch và các đại lý trả phí đăng ký theo tháng hoặc năm cho công cụ đặt chỗ, quyền truy cập API, plugin hoặc cổng white label của bạn.

Quan điểm của chúng tôi

Paddle có thể phù hợp

Đây đúng là kiểu bán hàng mà merchant of record được tạo ra: Paddle thu phí đăng ký, xử lý thuế ở từng quốc gia rồi chi trả cho bạn, nên bạn không phải đăng ký VAT ở mọi nơi có khách hàng.

03

Bạn bán cả đặt chỗ lẫn phần mềm

Đại lý của bạn vận hành website đặt chỗ cho du khách và đồng thời cấp phép nền tảng hoặc công cụ cho các đại lý khác.

Quan điểm của chúng tôi

Dùng cả hai, tách riêng

Nhận tiền đặt chỗ qua cổng thanh toán có sẵn trong luồng đặt chỗ và thu phí đăng ký phần mềm qua Paddle. Hai luồng, hai bộ sổ ghi, mỗi bên có cách xử lý thuế đúng.

Cách hoạt động

Một tích hợp Paddle hoạt động thế nào, từ đầu đến cuối

Paddle Billing làm việc với sản phẩm và giá bạn tạo trong Paddle, trang thanh toán do Paddle.js mở ra, và webhook báo cho máy chủ của bạn biết điều gì đã xảy ra.

  1. 01

    Sản phẩm và giá

    Bạn tạo mỗi gói một lần trong Paddle, ví dụ giá theo tháng và theo năm, rồi lưu các ID giá trong hệ thống của bạn.

    pri_…
  2. 02

    Thanh toán bằng Paddle.js

    Trang của bạn tải Paddle.js và mở trang thanh toán dạng lớp phủ hoặc khung nhúng, kèm ID giá và mã tham chiếu khách hàng của bạn.

    Paddle.Checkout.open()
  3. 03

    Giao dịch hoàn tất

    Người mua thanh toán, Paddle tính tiền thẻ hoặc ví, áp dụng thuế và tạo giao dịch, cùng gói đăng ký nếu giá định kỳ.

    txn_…
  4. 04

    Webhook có chữ ký

    Paddle gửi một sự kiện như transaction.completed đến endpoint của bạn, được ký trong header Paddle-Signature.

    transaction.completed
  5. 05

    Hệ thống của bạn hành động

    Máy chủ của bạn xác minh chữ ký, rồi kích hoạt tài khoản, gia hạn gói hoặc ghi nhận khoản thanh toán.

    200 OK

Chỉ giữ khóa API trên máy chủ. Trình duyệt dùng một token phía client riêng, và môi trường sandbox cùng live mỗi bên có khóa, giá và secret webhook riêng.

Bảo mật webhook

Kiểm tra header Paddle-Signature

Bất kỳ ai biết URL endpoint của bạn đều có thể giả mạo webhook. Xác minh chữ ký của mọi sự kiện là điều giúp việc kích hoạt tài khoản từ webhook trở nên an toàn.

paddle-webhook.php
 1$raw    = file_get_contents("php://input"); 2$header = $_SERVER["HTTP_PADDLE_SIGNATURE"] ?? "";  // ts=…;h1=… 3parse_str(str_replace(";", "&", $header), $sig); 4 5$expected = hash_hmac("sha256", $sig["ts"] . ":" . $raw, $endpointSecret); 6if (!hash_equals($expected, $sig["h1"] ?? "")) { 7    http_response_code(400); exit;            // not from Paddle 8} 9if (time() - (int) $sig["ts"] > $tolerance) exit; // too old1011$event = json_decode($raw, true);12if (alreadyHandled($event["event_id"])) exit;      // repeat delivery13if ($event["event_type"] === "transaction.completed") {14    activatePlan($event["data"]["custom_data"]["account_id"]);15}16http_response_code(200);

Ví dụ minh họa bằng PHP thuần. Hãy theo tài liệu hiện hành của Paddle, hoặc SDK chính thức, để biết định dạng chính xác.

  1. 01

    Dùng nội dung thô

    Chữ ký được tính trên nội dung request đúng như nhận được, nên hãy đọc nó trước khi bất kỳ bước phân tích JSON nào làm thay đổi.

  2. 02

    Dấu thời gian cộng hash

    Header mang một dấu thời gian và hash HMAC-SHA256 tạo bằng khóa bí mật của endpoint. Hãy tính lại và so sánh theo thời gian không đổi.

  3. 03

    Từ chối sự kiện cũ và lặp lại

    Từ chối sự kiện có dấu thời gian quá cũ, và lưu ID của từng sự kiện để một lần gửi lặp không bị xử lý hai lần.

  4. 04

    Sandbox trước

    Xây dựng và kiểm thử trên sandbox của Paddle bằng thẻ thử, rồi chuyển khóa, giá và secret sang môi trường live.

PHPTRAVELS và Paddle

Kết nối Paddle với PHPTRAVELS

Trước hết là câu trả lời thẳng thắn, sau đó là các lựa chọn.

Paddle không phải là trình kết nối dựng sẵn

Paddle không có trong danh sách cổng thanh toán của PHPTRAVELS và chưa có hướng dẫn thiết lập được công bố. Các cổng thanh toán dựng sẵn, hiển thị bên dưới, là những cổng được xây để nhận tiền đặt chỗ.

  • Cho thanh toán đặt chỗ: cổng thanh toán dựng sẵn

    Bật một cổng dựng sẵn như Thanh toán Stripe hoặc Thanh toán PayPal trong admin bằng tài khoản merchant của bạn. Thanh toán, hoàn tiền và mã đặt chỗ đã được nối sẵn vào luồng đặt chỗ, như giải thích ở trang Tích hợp cổng thanh toán.

  • Cho bán phần mềm: Paddle dưới dạng tích hợp tùy chỉnh

    Khi trường hợp của bạn phù hợp với quy tắc của Paddle, các developer của chúng tôi có thể kết nối nó dưới dạng Tích hợp API tùy chỉnh: thanh toán Paddle.js trên trang của bạn, endpoint webhook đã xác minh và các khoản thanh toán được ghi theo khách hàng của bạn. Công việc được báo giá trước khi bắt đầu.

  • Hoặc tự xây trên mã nguồn

    PHPTRAVELS là giải pháp tự lưu trữ và đi kèm toàn bộ mã nguồn, nên developer của bạn có thể thêm Paddle cho gói đăng ký bên cạnh công cụ đặt chỗ. Trang Bảng giá liệt kê nội dung của từng giấy phép.

Sẵn sàng cho thanh toán đặt chỗ

Các cổng thanh toán đã kết nối với PHPTRAVELS

Với thanh toán của du khách và đại lý, các cổng này đã sẵn sàng: bạn mở tài khoản với nhà cung cấp, nhập khóa trong admin, kiểm thử rồi đưa vào hoạt động. Danh sách này lấy trực tiếp từ thư mục tích hợp của chúng tôi.

Đại lý con cũng có thể thanh toán từ số dư trả trước hoặc hạn mức tín dụng qua Ví đại lý B2B, không cần cổng thanh toán nào.

Câu hỏi thường gặp

Tích hợp API Paddle: các câu hỏi thường gặp

Liên hệ kinh doanh

Không phải dưới dạng trình kết nối dựng sẵn. Paddle không có trong danh sách cổng thanh toán của PHPTRAVELS. Nếu trường hợp của bạn phù hợp với quy tắc của Paddle, ví dụ bán gói đăng ký phần mềm của chính bạn, Paddle có thể được thêm dưới dạng tích hợp tùy chỉnh hoặc do developer của bạn xây trên mã nguồn đi kèm.

Paddle là merchant of record được xây cho phần mềm, SaaS và sản phẩm số, nên nhìn chung không phải công cụ cho vé máy bay, khách sạn hay tour. Hãy xem quy tắc sử dụng chấp nhận được của Paddle trước khi dùng cho đặt chỗ du lịch; hầu hết doanh nghiệp du lịch nhận tiền đặt chỗ qua cổng thanh toán như Stripe, PayPal, Adyen hoặc cổng thanh toán khu vực.

Công ty bán hàng hợp pháp cho khách hàng. Họ chịu trách nhiệm thu và nộp thuế bán hàng hoặc VAT, xuất hóa đơn, xử lý hoàn tiền và chargeback, và xuất hiện trên sao kê của khách. Với Paddle, chính Paddle đảm nhận vai trò đó rồi chi trả cho bạn.

Cổng thanh toán xử lý khoản tiền cho bạn trong khi bạn vẫn là người bán và giữ phần việc thuế và tranh chấp. Paddle tự trở thành người bán, giúp loại bỏ phần việc đó với việc bán phần mềm nhưng giới hạn những gì bạn có thể bán qua họ.

Khi bạn bán phần mềm của chính mình thay vì chuyến đi: công cụ đặt chỗ, API, plugin hoặc cổng white label mà các đại lý trả theo gói đăng ký. Khi đó Paddle có thể thu phí họ và xử lý thuế ở từng quốc gia.

Paddle gửi các sự kiện như giao dịch hoàn tất hay gói đăng ký được gia hạn đến một URL bạn đăng ký. Mỗi request mang header Paddle-Signature chứa dấu thời gian và hash, máy chủ của bạn kiểm tra bằng khóa bí mật của endpoint trước khi hành động.

Có. Paddle có môi trường sandbox riêng với tài khoản, khóa API, giá và thẻ thử riêng. Hãy xây dựng và kiểm thử ở đó, rồi chuyển cấu hình sang môi trường live.

Có, dưới dạng hai luồng riêng: công cụ đặt chỗ nhận tiền của du khách qua cổng thanh toán dựng sẵn, còn Paddle thu phí đăng ký phần mềm của bạn. Giữ sổ ghi của hai bên tách biệt để mỗi giao dịch có cách xử lý thuế đúng.