Bỏ qua để đến nội dung

Xác thực

Một ứng dụng cung cấp cho bạn Client IDSecret Key mà bạn cần để tạo phiên OAuth2 đã xác thực, có thể dùng để giao tiếp với API của Wink và TripPay.

Dưới đây là các bước để tạo phiên đã xác thực.

Bước 1. Lấy access token trên môi trường staging hoặc môi trường sản xuất của chúng tôi:

Bạn rất có thể sẽ làm việc với một thư viện OAuth2 mạnh mẽ cho ngôn ngữ của bạn, thư viện này sẽ xử lý phần lớn công việc nặng nhọc. Ví dụ của chúng tôi sẽ trình bày cách sử dụng cơ bản nhất từ dòng lệnh bằng curl.

Terminal window
curl -X POST https://staging-iam.wink.travel/oauth2/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=<YOUR_CLIENT_ID>" \
-d "client_secret=<YOUR_SECRET_KEY>"
Terminal window
curl -X POST https://iam.wink.travel/oauth2/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=<YOUR_CLIENT_ID>" \
-d "client_secret=<YOUR_SECRET_KEY>"

Lệnh này sẽ trả về một access token, cùng với các dữ liệu phản hồi OAuth2 khác:

{
"access_token": "abc123"
}

Khi bạn gọi bất kỳ điểm cuối nào của chúng tôi, hãy bao gồm các header sau:

  • Wink-Version = 2.0 Mới nhất - Xem tài liệu API của chúng tôi để biết các phiên bản khác có sẵn.
  • Authorization = Bearer ${access_token} Chèn access token của bạn.

Một scope là quyền mà access token của bạn mang theo. Khi bạn yêu cầu token, bạn truyền một danh sách các scope cách nhau bằng dấu cách trong tham số scope, và token chỉ có thể truy cập các khu vực mà các scope đó cho phép. Với grant client_credentials, bạn đặt các scope trong yêu cầu token của mình — xem các ví dụ curl ở trên và hướng dẫn Postman.

Các scope được đặt tên theo định dạng section.action, trong đó action là một trong các loại:

  • read — xem tài nguyên (yêu cầu GET an toàn)
  • write — tạo và cập nhật tài nguyên (POST / PUT / PATCH)
  • remove — xóa tài nguyên (DELETE)

Wink nhóm các quyền theo khu vực chức năng. Chỉ yêu cầu các scope mà tích hợp của bạn cần:

Nhóm scopeCác scopeMở khóa những gìMức độ rủi ro
Accountaccount.read account.write account.removeQuản lý thực thể, thành viên nhóm, cài đặt, ứng dụngThấp–Trung bình
Inventoryinventory.read inventory.write inventory.removeBất động sản, loại phòng, kế hoạch giá, giá, phụ thu, tình trạng phòng, hoạt động, điểm tham quanThấp–Trung bình
Bookingbooking.read booking.write booking.removeTìm kiếm, xem, tạo, hủy và hoàn tiền đặt phòng; thanh toán; chính sách hủyThấp–Trung bình
Marketingmarketing.read marketing.write marketing.removeChiến dịch, ưu đãi, kênh bán hàng, WinkLinks, quản lý mạng xã hội, chương trình khách hàng thân thiếtThấp–Trung bình
Contentcontent.read content.write content.removeMô tả bất động sản, đánh giá, phương tiện, bản đồ, chỉ số xanhThấp–Trung bình
Analyticsanalytics.read analytics.write analytics.removeBáo cáo và phân tích — doanh thu, bảng xếp hạngThấp–Trung bình
Integrationsintegrations.read integrations.write integrations.removeQuản lý kênh, hệ thống đặt phòng bên ngoài, Google Hotel, điểm thông báo, đồng bộ đặt phòngThấp–Trung bình
Paymentpayment.read payment.write payment.removeXử lý thanh toán, Stripe, Revolut, thanh toán, đăng kýTrung bình–Cao
Accountingaccounting.read accounting.write accounting.removeKế toán, sổ rút tiền, đối chiếuTrung bình–Cao
MCPmcp.read mcp.write mcp.removeMở MCP transport (/mcp) cho các tác nhân AIThấp–Trung bình

Một vài điều cần lưu ý:

  • Yêu cầu tối thiểu. Chỉ yêu cầu các scope mà tích hợp của bạn thực sự sử dụng — một token cấp quyền rộng hơn mức cần thiết sẽ có phạm vi ảnh hưởng lớn hơn nếu bị lộ.
  • Scope không xác định sẽ bị từ chối. Yêu cầu một scope mà ứng dụng của bạn không đăng ký hoặc không tồn tại sẽ thất bại khi cấp token.
  • mcp.* chỉ dành cho các client tác nhân AI. Bạn cần nó để mở MCP transport; không bắt buộc cho các cuộc gọi REST API thông thường. Xem Model Context Protocol.