Skip to content

🔐 Authentication / Xác thực đối tác

🧭 Giới thiệu

Hệ thống Pay2S OneQR sử dụng cơ chế xác thực hai tầng để đảm bảo an toàn cho các kết nối từ phía người dùng.

  1. Bước 1: Đối tác đăng nhập vào Pay2S.vn để lấy Access KeySecret Key.
  2. Bước 2: Sử dụng cặp khóa này để thực hiện Basic Authentication, lấy về Bearer Token tạm thời.
  3. Bước 3: Dùng Bearer Token này để gọi các API như /api/vcb/v1/qr/create, api/vcb/v1/qr/cancel, v.v.

🧩 Luồng xác thực tổng quan

mermaid
sequenceDiagram
    participant C as Client (Partner)
    participant G as Pay2S Partner Gateway
    participant A as Auth Service
    participant API as Protected API

    C->>G: POST /api/auth/token (Basic Auth)
    G->>A: Xác minh Access Key / Secret Key
    A-->>G: Trả về Bearer Token (hiệu lực 3600s)
    G-->>C: 200 OK + token
    C->>API: Authorization: Bearer {token}
    API-->>C: Trả về dữ liệu (banks, webhooks,...)

🧾 Thông tin chi tiết

Endpoint

POST http://api.pay2s.vn/api/auth/token

Headers

Tên headerGiá trị mẫuMô tả
AuthorizationBasic base64(access_key:secret_key)Dạng xác thực cơ bản
Content-Typeapplication/jsonBắt buộc

Ví dụ Base64

Giả sử:

access_key = e222c2c10059cca0e27bf43d0438bba37
secret_key = 83f84c5a1d94ad4a1d3810292ad55a0d

→ Ghép chuỗi:
e222c2c10059cca0e27bf43d0438bba372:83f84c5a1d94ad4a1d3810292ad55a0d
→ Mã hoá Base64 thành:
ZT222c2c10059cca0e27bf43d0438bba372OjgzZjg0YzVhMWQ5NGFkNGExZDM4MTAyOTJhZDU1YTBk

→ Header:

Authorization: Basic ZT222c2c10059cca0e27bf43d0438bba372OjgzZjg0YzVhMWQ5NGFkNGExZDM4MTAyOTJhZDU1YTBk

🧠 Phản hồi mẫu

✅ Thành công

json
{
  "success": true,
  "data": {
    "token_type": "Bearer",
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9....",
    "expires_in": 3600
  }
}

❌ Lỗi xác thực

json
{
    "success": false,
    "message": "Authentication failed",
    "data": null,
    "error": "Request failed with status code 401"
}

🧩 Gọi API bằng Token

Sau khi nhận được Bearer Token, bạn có thể gọi các endpoint bảo mật khác như sau:

Ví dụ:

POST http://api.pay2s.vn/api/vcb/v1/qr/cancel HTTP/1.1
Host: api.pay2s.vn
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Kết quả:

json
{
    "success": true,
    "message": "QR transaction cancelled successfully",
    "data": {
        "transactionId": "0e907bd2-74d0-4c49-96ba-e64660736a2a",
        "orderId": "123456",
        "status": "cancelled",
        "cancelResponse": {
            "code": "00",
            "message": "Succeed",
            "data": {
                "subCode": "00",
                "subMessage": "Succeed",
                "requestId": "0368e7f9-902c-4bd3-adb6-c5766e328856",
                "checksum": "3E808EBC44F716562EE1290FF9C2A5F0",
                "vcbResponse": {
                    "code": "00",
                    "message": "Succeed",
                    "requestId": "0368e7f9-902c-4bd3-adb6-c5766e328856",
                    "subCode": "00",
                    "subMessage": "Succeed",
                    "serverTime": "15:46:33 08/06/2026",
                    "nodeOut": "10.1.60.186",
                    "nodeIn": "",
                    "operation": "CancelInvoice",
                    "success": true,
                    "idQrCode": "31928425",
                    "checksum": "25B3AFCB0ABA8EF2DADE66255156653C"
                },
                "success": true
            }
        }
    }
}

🔑 Gợi ý

  • Token có hiệu lực 3600 giây (1 giờ). Sau khi hết hạn, cần gọi lại /api/auth/token để lấy token mới.
  • Hỗ trợ xác thực Basic Auth → Bearer Token (không cần tạo chữ ký HMAC thủ công).