Chuẩn bảo mật RESTful webservice của Bảo Kim


Giao thức
  • Các API của Bảo Kim tuân theo chuẩn RESTful, với dữ liệu trả về theo format JSON/JSONP/XML/RAWXML/PHP/serialized/HTML/CSV.
  • Base url: https://www.baokim.vn/

Xác thực webservice client API account
  • username/password do Bảo Kim cấp cho mỗi webservice client
  • username/password sử dụng theo http digest authentication
Chặn IP
  • Webservice client phải được khai báo địa chỉ IP hoặc 1 dải địa chỉ IP (khai báo khi cấp api account)
Chữ ký số
  • Webservice client cần tự generate 1 cặp RSA public/private key để sử dụng trong chữ ký số
  • Webservice client gửi public key cho bảo kim để khai báo (khi cấp api account)
  • Khi gửi request webservice client cần phải sử dụng private key để ký vào dữ liệu gửi đi (xem quy tắc dưới)
  • Chữ ký số được gửi qua GET params, vd: ?signature=XYZ
Quy tắc tính signatureChữ ký số được tính theo thuật toán RSA + MD5, dựa trên dữ liệu được tính theo quy tắc sau
data = {REQUEST METHOD}&{REQUEST PATH}&{GET Args}&{POST Args}
Trong đó
  • REQUEST METHOD là method của HTTP mà client thực hiện. Ví dụ : GET, POST, DELETE, PUT, HEAD …
  • REQUEST PATH là đường dẫn đến file được yêu cầu, không bao gồm scheme, domain, port. Ví dụ : /API/activate, /API/GetOrderInfo …
  • GET Args là dạng đã chuẩn hóa của query string
  • POST Args là dạng đã chuẩn hóa của http body data (dữ liệu POST)
Các tham số trước khi ghép thành data đều được encode theo chuẩn mã hóa url (tham khảo).
Riêng với GET Args và POST Args cần thực hiện việc chuẩn hóa dữ liệu trước khi encode. Thuật toán chuẩn hóa dữ liệu tham khảo Normalize Request Parameters

Sử dụng unique_trace_id để tránh lỗi duplicate dữ liệu
Các webservice client khi kết nối đển bảo kim có thể sử dụng 1 mã truy xuất duy nhất giữa 2 bên để tránh lỗi duplicate dữ liệu như sau:
  1. Khi gửi request, webservice client tạo ra 1 mã lệnh duy nhất (unique_trace_id) và gửi kèm với dữ liệu gửi sang bảo kim (trên post/get/put params)
  2. Bảo Kim sẽ tiến hành lưu lại mã trace id này, để tránh bị gọi lại gây lặp dữ liệu
  3. Mỗi mã unique_trace_id chỉ được gọi duy nhất 1 lần, nếu lần gọi đó bị lỗi sẽ phải yêu cầu nghiệp vụ check lại bằng tay

Môi trường test
Code:
-----BEGINPRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDZZBAIQz1UZtVm
p0Jwv0SnoIkGYdHUs7vzdfXYBs1wvznuLp/SfC/MHzHVQw7urN8qv+ZDxzTMgu2Q
3FhMOQ+LIoqYNnklm+5EFsE8hz01sZzg+uRBbyNEdcTa39I4X88OFr13KoJC6sBE
397+5HG1HPjip8a83v8G4/IPcna5/3ydVbJ9ZeMSUXP6ZyKAKay4M22/Wli7PLrm
1XNR9JgIuQLma74yCGkaXtCJQswjyYAmwDPpz4ZknSGuBYUmwaHMgrDOQsOXFW7/
7M2KbjenwggAW98f0f97AR2DEq9Eb5r8vzyHURnHGD3/noZxl993lM2foPI3SKBO
1KpSeXRzAgMBAAECggEANMINBgRTgQVH6xbSkAxLPCdAufTJeMZ56bcKB/h2qVMv
Wvejv/B1pSM489nHaPM5YeWam35f+PYZc5uWLkF23TxvyEsIEbGLHKktEmR73WkS
eqNI+/xd4cJ3GOtS2G2gEXpBVwdQ/657JPvz4YZNdjfmyxMOr02rNN/jIg6Uc8Tz
vbpGdtP49nhqcOUpbKEyUxdDo6TgLVgmLAKkGJVW40kwvU9hTTo6GXledLNtL2kD
l6gpVWAiT6xlTsD5m74YzsxCSjkh60NdYeUDYwMbv0WWH3kJq6qD063ac3i/i8H+
B5nGf4KbKg1bBjPLNymUj7RRnKjHr301i2u8LUQYuQKBgQD15YCoa5uHd6DHUXEK
kejU34Axznr3Gs6LqcisE7t0oQ9hB4s16U9f4DBHDOvnkLb0zkadwdEmwo/D/Tdf
5c/JEk8q/aO9Wk8uV4Bswnx1OV9uKMzMOZbv/So1DQg1aW1MgvRnj3SiKpDUkNwr
en4NT9tbH21SmVIO9Da5KpiFRwKBgQDiUrg1hp8EDaeZFTG9DvcwyTTrpD/YT9Wr
s/NtEnPMjy0NXWcEXwGzx90P+qjJ+J29Hk89QHON6S7o0X2lUIer3uXokc86ce76
5UIbR6u7R1T6TUNfwqwwNfIbgtFN4+7ybodPNZ5DWslKLqMr5wpwIOr7/U5ih7BH
JK0cSriddQKBgGXzNZiepOlRrBN3rMqZHFPGJrx/w3PYZXJ6fnz54WrFrD6qhglg
Jky2As4yiUyFL5XoQFcAGNtdJ4Y24lKcUb4oHTLR3qWPX+zy0ohFSpy/oNVnjSHP
bskpyeoc8R5UC8EBOpwFWnIx+8JmHSLZspGKXoQ1T3pDn0Yb8uRqyLnZAoGBAKdk
NwqfvwzobIU0v8ztPLbAmnuOyAndQlP0jJ6nfy5U1yWDZ6Y7/q5RrJcc9aosT76I
pGLRQKY9SYy5JQ0YOsBL5A/XiEXZ7r9ywSocIFAruhZG/wXcni4qOB9Q6i2J4Dk+
tqVHKv72LtrHE7hs8bNtJV+rQkZtxVtZLRA308PhAoGBALVEaYMRm97V+Tnsej6q
fuT/6oKHPqZpur2rNfEKVn5Aq2kmFrvyUhvXi0IAWQ/XS3XJ7faQnprrWT6pYiSy
2YQuaghlNG1SATVd5eUadq2pA8DuSzqWFa0Ac1IAyliBO2uLPL7LzuEKmmuQk0vI
TU2Q8idAb77K7mvVguA3LDhN
-----END PRIVATE KEY-----

Tích hợp miễn phí ngay

Kỹ thuật

    4
  • Hỗ Trợ Kỹ Thuật
  • 0988404580

Kinh doanh

    1
  • Nguyễn Phương Dung
  • 0973132671
    2
  • Nguyễn Đăng Hiếu
  • 0979303590
    3
  • Lê Quỳnh Trang
  • 0982697992