🚌
Embedded Trip Insurance
  • External Authentication
  • 📖API Document for Embedded Trip Insurance
    • 🎧Agent Booking - Customer Journey
    • 🎰API Details
      • The older version APIs
        • API #01 - Calculate Premium v1
    • 🙎End User Booking - Customer Journey
    • Business Logic Handling
    • Claim Flow
    • External Authentication
Powered by GitBook
On this page
  • External Authentication
  • Signature request
  • Cách tạo signature

External Authentication

External Authentication

Những api được gọi từ backend 3rd cần được identify và authorization với signature clientKey và clientSecret được cung cấp từ saladin. Trong 1 số trường hợp api được gọi từ client của 3rd thì saladin sẽ cung cấp token ngắn hạn (~10 phút) cho 3rd để client 3rd có thể dùng trong thời gian ngắn.

Signature request

Trong các lệnh gọi API giữa backend 3rd và backend của saladin. Saladin sử dụng signature để có thể định danh backend nào đang thực hiện lệnh gọi đến backend của Saladin. Signature này được tính bằng cách lấy shasum của một số data và một API secret được cấp cho backend 3rd.

Header

Header
Description

X-Sld-Timestamp

Thời gian gọi request, tính bằng seconds

X-Sld-ClientKey

Client Key được cấp cho 3rd

X-Sld-Signature

Signature được tính dựa trên request body

Cách tạo signature

Pseudocode để tính signature sẽ như sau:

POST request

// request body
body = {
    "<field_name>": <field_value>,
    "<field_name>": <field_value>,
    "<field_name>": <field_value>,
}

payload = timestamp + "." + client_key + "." + json_stringify(body)
secret = "<client_secret>"
encoded_payload = base64_safeurl_encode_no_padding(payload)
signature = HMAC_SHA256(secret, encoded_payload)

GET request

// request body
base_url = https://api.saladin.vn/vendor
location=Hà Nội
order_id=88062110977884170
path = /order?location=url_encode(location)&order_id=url_encode(88062110977884170)
// path == /order?location=H%C3%A0+N%E1%BB%99i&order_id=88062110977884170

payload = timestamp + "." + client_key + "." + path
secret = "<client_secret>"
encoded_payload = base64_safeurl_encode_no_padding(payload)
signature = HMAC_SHA256(secret, encoded_payload)

chú ý:

  • Phần path dùng để tạo chữ ký không bao gồm base URL

NextAPI Document for Embedded Trip Insurance

Last updated 2 years ago

Giá trị của query parameters cần được url_encode theo HTML 2.0 Specification

RFC1866