Giao thức CLV1 đã công khaiĐọc đặc tả

Tài liệu · Tham chiếu

Mã lỗi

Một bảng chung cho mọi SDK chính thức, thư viện C và công cụ dòng lệnh: mỗi mã kèm một câu cho người dùng phần mềm của bạn và việc bạn nên làm

Đọc một lỗi

Mọi lỗi đều mang một mã trong bảng này. Mã HTTP là của API, hoặc 0 khi không nhận được câu trả lời nào (mất mạng, quá chậm, câu trả lời không đọc được).

Thử lại nghĩa là để một lúc rồi gọi lại, không đổi gì, có thể thành công. Các mã khác cần thay đổi gì đó: key khác, gia hạn, cập nhật, hay một thiết lập trong dashboard.

C là số mà thư viện C trả cho mã đó (clavis_errors.h); số này không bao giờ đổi.

SDK nào cũng trả câu cho người dùng cuối bằng tiếng Việt hoặc tiếng Anh, bạn hiện thẳng được:

  • JavaScripterr.userMessage("vi")
  • Pythonerr.user_message("vi")
  • C#e.UserMessage("vi")
  • C++e.user_message("vi")
  • Goe.UserMessage("vi")
  • Rusterr.user_message("vi")
  • Javae.userMessage("vi")
  • Cclavis_error_message(client, "vi")
  • CLI--lang vi, error.message

License key

invalid_keyHTTP 403 · C 1

Người dùng phần mềm thấy
License key không hợp lệ · kiểm tra lại key bạn nhận được
Bạn nên làm
Chỉ client giao thức cũ (CLV1.0) nhận mã này. CLV1.1, giao thức của mọi SDK chính thức, trả invalid_credentials để không ai dò được key

license_expiredHTTP 403 · C 2

Người dùng phần mềm thấy
License đã hết hạn · gia hạn để tiếp tục dùng phần mềm
Bạn nên làm
Gia hạn license trong dashboard, hoặc gửi khách tới cổng khách hàng để tự gia hạn

license_suspendedHTTP 403 · C 3

Người dùng phần mềm thấy
License đang bị tạm khoá · liên hệ người bán
Bạn nên làm
Bạn hoặc một quy tắc đã tạm khoá license này. Mở lại trong dashboard khi đã xử lý xong

license_revokedHTTP 403 · C 4

Người dùng phần mềm thấy
License đã bị thu hồi · liên hệ người bán
Bạn nên làm
License đã thu hồi không dùng lại được. Cấp key mới nếu khách vẫn được dùng

license_already_registeredHTTP 409 · C 5

Người dùng phần mềm thấy
Key này đã gắn với một tài khoản khác
Bạn nên làm
Mỗi key thuộc một tài khoản. Xem tài khoản đang giữ key ở mục Người dùng, hoặc cấp key khác

already_redeemedHTTP 409 · C 6

Người dùng phần mềm thấy
Key này đã có trong tài khoản của bạn
Bạn nên làm
Không cần làm gì: tài khoản đã giữ key này. Phần mềm nên coi như thành công

test_key_disabledHTTP 403 · C 56

Người dùng phần mềm thấy
Đây là key thử nghiệm và phần mềm đã bán chính thức · dùng license key bạn đã mua
Bạn nên làm
Key TEST ngừng hoạt động khi app được đánh dấu phát hành công khai (Cài đặt app). Cấp key thường

offline_unavailableSDK tự tạo trên máy · C 57

Người dùng phần mềm thấy
Máy này chưa có license dùng được khi không có mạng · kết nối mạng một lần để kích hoạt
Bạn nên làm
Máy này không có offline token hợp lệ: chưa được cấp (dùng offline cần gói có thời gian offline), đã hết hạn, thuộc máy khác, hoặc đồng hồ bị lùi. Kích hoạt khi có mạng

Thiết bị

device_limitHTTP 403 · C 7

Người dùng phần mềm thấy
License đã dùng trên số máy tối đa · hãy trả một máy trước
Bạn nên làm
Tăng số máy trong chính sách, gỡ máy cũ trong dashboard, hoặc cho khách chuyển máy từ máy cũ

device_blockedHTTP 403 · C 8

Người dùng phần mềm thấy
Máy này đã bị chặn · liên hệ người bán
Bạn nên làm
Bạn hoặc Protect đã chặn máy này với app. Bỏ chặn ở mục Thiết bị nếu chặn nhầm

device_revokedHTTP 403 · C 9

Người dùng phần mềm thấy
Máy này đã bị gỡ khỏi license · hãy kích hoạt lại
Bạn nên làm
Máy đã bị gỡ (do bạn, do chuyển máy, hoặc im lặng quá lâu). Kích hoạt lại sẽ dùng một suất trống

transfer_limitedHTTP 429 · Thử lại: có · C 10

Người dùng phần mềm thấy
License vừa chuyển máy gần đây · thử lại sau
Bạn nên làm
Chính sách giới hạn số lần chuyển máy mỗi tháng và khoảng nghỉ giữa hai lần; câu lỗi ghi lúc được chuyển lại. Bạn có thể tự chuyển máy cho khách trong dashboard

transfer_not_allowedHTTP 429 · C 11

Người dùng phần mềm thấy
License này không tự chuyển sang máy khác được · liên hệ người bán
Bạn nên làm
Chính sách không cho khách tự chuyển máy. Cho phép trong chính sách, hoặc chuyển giúp khách trong dashboard

Phiên

session_device_mismatchHTTP 401 · C 12

Người dùng phần mềm thấy
Phiên thuộc về máy khác · hãy đăng nhập lại
Bạn nên làm
Mã phiên bị chép sang máy khác. Mở phiên mới trên máy này (activate hoặc login)

session_requiredHTTP 401 · C 13

Người dùng phần mềm thấy
Hãy đăng nhập hoặc kích hoạt trước
Bạn nên làm
Gọi activate, login hoặc trial trước heartbeat, variables hay check_updates

session_expiredHTTP 401 · C 14

Người dùng phần mềm thấy
Phiên đã hết · hãy đăng nhập lại
Bạn nên làm
Phiên hết sau một giờ không có heartbeat. Gửi heartbeat vài phút một lần khi phần mềm chạy, và mở phiên mới khi gặp mã này

session_limitHTTP 403 · C 15

Người dùng phần mềm thấy
License đang chạy ở số nơi tối đa · hãy tắt ở nơi khác trước
Bạn nên làm
Chính sách giới hạn số phiên chạy cùng lúc. Tăng giới hạn, hoặc để phiên cũ kết thúc (logout kết thúc ngay)

Tài khoản

invalid_credentialsHTTP 403 · C 16

Người dùng phần mềm thấy
Key hoặc thông tin đăng nhập không đúng · kiểm tra lại rồi thử lại
Bạn nên làm
Sai tên đăng nhập hoặc mật khẩu, hoặc key không tồn tại, bị khoá, thu hồi hay hết hạn: CLV1.1 trả chung một câu để không ai dò được key, trừ khi máy này đang giữ suất trên license. Tra key trong dashboard; sai nhiều lần liền thì máy bị làm chậm (too_many_attempts)

username_takenHTTP 409 · C 17

Người dùng phần mềm thấy
Tên đăng nhập đã có người dùng · chọn tên khác
Bạn nên làm
Cho người dùng nhập tên khác trong form đăng ký

user_bannedHTTP 403 · C 18

Người dùng phần mềm thấy
Tài khoản đã bị cấm · liên hệ người bán
Bạn nên làm
Bạn đã cấm người dùng này. Bỏ cấm ở mục Người dùng nếu cần

user_limitHTTP 403 · Thử lại: có · C 19

Người dùng phần mềm thấy
Hiện không nhận thêm tài khoản · thử lại sau
Bạn nên làm
App đã chạm giới hạn người dùng của gói. Nâng gói hoặc xoá tài khoản không dùng

no_licenseHTTP 403 · C 20

Người dùng phần mềm thấy
Tài khoản chưa có license · hãy nhập key
Bạn nên làm
Tài khoản đã đăng nhập nhưng chưa có key. Hỏi key rồi gọi redeem

account_requiredHTTP 403 · C 21

Người dùng phần mềm thấy
Hãy đăng nhập tài khoản trước
Bạn nên làm
redeem cần phiên mở bằng login hoặc register, không phải bằng key

mode_not_allowedHTTP 403 · C 22

Người dùng phần mềm thấy
Phần mềm này không cho đăng nhập theo cách này
Bạn nên làm
Chế độ đăng nhập của app (key, tài khoản, hoặc tài khoản kèm key) không cho lệnh này. Đổi chế độ ở Xác thực & gói, hoặc gọi đúng hàm

too_many_attemptsHTTP 429 · Thử lại: có · C 23

Người dùng phần mềm thấy
Sai quá nhiều lần · chờ vài phút rồi thử lại
Bạn nên làm
Nhập sai key hoặc mật khẩu nhiều lần từ máy này sẽ bị làm chậm một lúc. Hiện thông báo và để người dùng chờ

Dùng thử

trial_usedHTTP 409 · C 24

Người dùng phần mềm thấy
Máy này đã dùng thử rồi · nhập key để tiếp tục
Bạn nên làm
Mỗi máy chỉ dùng thử một lần cho mỗi app. Đặt liên kết mua ngay chỗ này

trial_expiredHTTP 403 · C 25

Người dùng phần mềm thấy
Hết thời gian dùng thử · nhập key để tiếp tục
Bạn nên làm
Hiện liên kết mua, rồi kích hoạt key khách mua

trial_unavailableHTTP 404 · C 26

Người dùng phần mềm thấy
Phần mềm này không có bản dùng thử
Bạn nên làm
Bật dùng thử ở Xác thực & gói, hoặc bỏ nút dùng thử

trial_deniedHTTP 403 · C 27

Người dùng phần mềm thấy
Không thể dùng thử trên máy này
Bạn nên làm
Protect từ chối dùng thử (ví dụ máy có dấu hiệu đặt lại hoặc máy ảo). Xem trang Protect của app

Ứng dụng

app_not_foundHTTP 404 · C 28

Người dùng phần mềm thấy
Phần mềm chưa được cấu hình đúng · liên hệ người bán
Bạn nên làm
App id sai hoặc app đã bị xoá. Chép lại từ trang Kết nối của app

app_pausedHTTP 403 · Thử lại: có · C 29

Người dùng phần mềm thấy
Phần mềm tạm thời không dùng được · thử lại sau
Bạn nên làm
App đang tạm dừng (do bạn, hoặc cả workspace). Chạy lại trong dashboard; xem thông báo từ ClavisAUH

maintenanceHTTP 503 · Thử lại: có · C 30

Người dùng phần mềm thấy
Đang bảo trì · sẽ trở lại sớm
Bạn nên làm
Bạn đã bật chế độ bảo trì cho app; câu bạn viết nằm trong lỗi. Tắt ở cài đặt app

access_blockedHTTP 403 · C 31

Người dùng phần mềm thấy
Truy cập bị chặn từ vị trí hoặc máy này
Bạn nên làm
Một quy tắc truy cập (quốc gia, IP, thiết bị) hoặc Protect đã chặn. Xem Kiểm soát truy cập và Protect

Cập nhật và bản build

update_requiredHTTP 426 · C 32

Người dùng phần mềm thấy
Hãy cập nhật phần mềm để tiếp tục dùng
Bạn nên làm
Bạn đặt phiên bản tối thiểu cao hơn bản này. Mời cập nhật (check_updates trả link tải có ký)

build_blockedHTTP 403 · C 33

Người dùng phần mềm thấy
Phiên bản này không còn được dùng · hãy cập nhật
Bạn nên làm
Bạn đã chặn bản phát hành này. Khách cần bản mới hơn

unknown_buildHTTP 403 · C 34

Người dùng phần mềm thấy
Bản phần mềm này không được nhận diện · tải lại từ người bán
Bạn nên làm
Kiểm tra bản build nghiêm ngặt đang bật và mã build này chưa từng phát hành. Phát hành bản này, hoặc đặt buildHash đúng giá trị đã phát hành

invalid_manifestSDK tự tạo trên máy · C 53

Người dùng phần mềm thấy
Không xác minh được bản cập nhật · đã không cài
Bạn nên làm
Manifest bản phát hành không ký bằng khoá của app này. Không được cài; kiểm tra khoá app mà bản build liệt kê

download_failedSDK tự tạo trên máy · Thử lại: có · C 54

Người dùng phần mềm thấy
Không tải được bản cập nhật · thử lại
Bạn nên làm
Nơi chứa file trả lỗi. Mã HTTP nằm trong lỗi; link trong manifest hết hạn sau một lúc, hãy gọi lại check_updates

checksum_mismatchSDK tự tạo trên máy · Thử lại: có · C 55

Người dùng phần mềm thấy
Bản cập nhật tải về bị hỏng · đã không cài
Bạn nên làm
File không khớp SHA-256 trong manifest đã ký. Tải lại; nếu lặp lại, file trên máy chủ đã bị thay

Yêu cầu (tích hợp)

missing_headersHTTP 400 · C 35

Người dùng phần mềm thấy
Phần mềm không gọi đúng máy chủ license · liên hệ người bán
Bạn nên làm
Yêu cầu thiếu header CLV1. Dùng SDK chính thức, hoặc theo /docs/protocol nếu tự viết client

bad_signatureHTTP 401 · C 36

Người dùng phần mềm thấy
Phần mềm không xác minh được danh tính · cài lại hoặc liên hệ người bán
Bạn nên làm
Chữ ký của máy không đúng: file khoá thiết bị hỏng, proxy sửa nội dung, hoặc client bị chỉnh. Protect có ghi lại

clock_skewHTTP 401 · Thử lại: có · C 37

Người dùng phần mềm thấy
Đồng hồ máy bị lệch · hãy chỉnh lại ngày giờ
Bạn nên làm
SDK tự chỉnh giờ và thử lại một lần; còn gặp mã này nghĩa là đồng hồ lệch nhiều hoặc nhảy liên tục

invalid_nonceHTTP 400 · C 38

Người dùng phần mềm thấy
Phần mềm gửi yêu cầu sai dạng · liên hệ người bán
Bạn nên làm
Nonce phải dài 16 đến 64 ký tự an toàn cho URL. Chỉ client tự viết mới gặp

replayed_requestHTTP 409 · Thử lại: có · C 39

Người dùng phần mềm thấy
Yêu cầu bị từ chối vì lặp lại · thử lại
Bạn nên làm
Cùng một yêu cầu đã ký đến hai lần. Lần thử mới có nonce mới; lặp nhiều có thể là ai đó phát lại lưu lượng (Protect có ghi)

invalid_encodingHTTP 400 · C 40

Người dùng phần mềm thấy
Phần mềm gửi yêu cầu sai dạng · liên hệ người bán
Bạn nên làm
Khoá và chữ ký phải là base64url không có đệm. Chỉ client tự viết mới gặp

invalid_jsonHTTP 400 · C 41

Người dùng phần mềm thấy
Phần mềm gửi yêu cầu sai dạng · liên hệ người bán
Bạn nên làm
Nội dung không phải JSON hợp lệ. Chỉ client tự viết mới gặp

validation_failedHTTP 400 · C 42

Người dùng phần mềm thấy
Thiếu thông tin hoặc thông tin không hợp lệ · kiểm tra lại dữ liệu đã nhập
Bạn nên làm
Thiếu trường hoặc giá trị ngoài giới hạn (ví dụ tên đăng nhập quá ngắn). Câu lỗi ghi tên trường

Kiểm chứng câu trả lời

unsigned_responseSDK tự tạo trên máy · Thử lại: có · C 49

Người dùng phần mềm thấy
Không xác minh được câu trả lời của máy chủ license · thử lại sau
Bạn nên làm
Câu trả lời không có chữ ký: có thứ ở giữa (proxy, máy chủ giả) trả lời. Coi như không có câu trả lời; SDK báo cho Protect

unknown_keySDK tự tạo trên máy · C 50

Người dùng phần mềm thấy
Không xác minh được câu trả lời của máy chủ license · hãy cập nhật phần mềm
Bạn nên làm
Câu trả lời ký bằng khoá phần mềm không biết. Khi đổi khoá app, phát hành bản có khoá mới trước rồi mới chuyển

invalid_response_signatureSDK tự tạo trên máy · C 51

Người dùng phần mềm thấy
Không xác minh được câu trả lời của máy chủ license · thử lại sau
Bạn nên làm
Chữ ký không khớp câu trả lời: bị sửa trên đường đi hoặc giả mạo. Coi như không có câu trả lời; SDK báo cho Protect

stale_responseSDK tự tạo trên máy · Thử lại: có · C 52

Người dùng phần mềm thấy
Câu trả lời của máy chủ license đã cũ · kiểm tra đồng hồ rồi thử lại
Bạn nên làm
Câu trả lời quá cũ hoặc quá mới so với yêu cầu (phát lại, hoặc đồng hồ lệch nhiều). Thử lại khi đồng hồ đúng

Mạng và máy chủ

rate_limitedHTTP 429 · Thử lại: có · C 43

Người dùng phần mềm thấy
Quá nhiều yêu cầu · chờ một lát rồi thử lại
Bạn nên làm
Địa chỉ này gọi quá nhiều. Đừng gửi heartbeat dày hơn mỗi phút, và giãn thời gian trước khi thử lại

internal_errorHTTP 500 · Thử lại: có · C 44

Người dùng phần mềm thấy
Máy chủ license gặp sự cố · thử lại sau ít phút
Bạn nên làm
Lỗi phía chúng tôi. Thử lại với khoảng chờ tăng dần; trong lúc đó dùng offline token còn hạn. Mã yêu cầu trong câu lỗi giúp hỗ trợ tra cứu

network_errorSDK tự tạo trên máy · Thử lại: có · C 45

Người dùng phần mềm thấy
Không kết nối được máy chủ license · kiểm tra kết nối mạng
Bạn nên làm
Không nhận được câu trả lời (mất mạng, DNS, tường lửa, TLS). Thử lại sau; offline token còn hạn giúp phần mềm vẫn chạy

timeoutSDK tự tạo trên máy · Thử lại: có · C 46

Người dùng phần mềm thấy
Máy chủ license trả lời quá lâu · thử lại
Bạn nên làm
Yêu cầu vượt thời gian chờ của SDK. Thử lại; tăng tuỳ chọn timeout nếu mạng rất chậm

invalid_responseSDK tự tạo trên máy · Thử lại: có · C 47

Người dùng phần mềm thấy
Máy chủ license trả về dữ liệu không đọc được · thử lại
Bạn nên làm
Câu trả lời không phải JSON, thường do proxy hoặc trang đăng nhập Wi-Fi. Kiểm tra base_url trỏ đúng API

unknown_errorSDK tự tạo trên máy · Thử lại: có · C 48

Người dùng phần mềm thấy
Có lỗi xảy ra · thử lại
Bạn nên làm
Máy chủ từ chối mà không kèm mã (proxy hoặc gateway cũ ở giữa). Mã HTTP nằm trong lỗi

Cách các mã đi trên đường truyền nằm trong đặc tả giao thức CLV1

Bạn cần giúp gì?

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

ClavisAUH là gì?

Dịch vụ bản quyền và xác thực cho phần mềm desktop: license key, khoá thiết bị, đăng nhập người dùng và phản hồi có chữ ký. Tất cả quản lý trên một dashboard

Vì sao kẻ crack không làm giả được server?

SDK chỉ tin câu trả lời ký bằng khoá bí mật của ứng dụng. Khoá đó không bao giờ rời server của chúng tôi, nên server giả không ký được và bị từ chối

Trong file chạy của tôi có gì?

Mã ứng dụng và khoá công khai. Không có bí mật nào, vì mỗi thiết bị tự tạo cặp khoá riêng ở lần chạy đầu

Có chạy được khi offline không?

Có. Mọi gói đều có token offline có chữ ký dùng được 7 ngày, ứng dụng tự kiểm tra tại máy. Premium cho bạn chọn bao lâu. License đã thu hồi vẫn có thể chạy offline trong khoảng đó, trừ khi Chế độ chỉ online đang bật

Hỗ trợ những ngôn ngữ nào?

Hiện có JavaScript và TypeScript. Tiếp theo là C++, C# và Python, cùng một giao thức công khai

Gói Basic có miễn phí thật không?

Có. Không giới hạn thời gian, không cần thẻ. Cần nhiều hơn thì lên Premium

Liên hệ