Overview
This document defines APIs of the GEODNET RTK service, including User Management and Base Station Coverage.
Note
All APIs use a request sign generated from request parameters and your secret appKey. Responses use a business envelope with { code, msg, data }.
Encryption parameter
appId
String
Application ID
appKey
String
Application Key
Note
appId and appKey uniquely identify your tenant and are provided by GEODNET. Please request them from GEODNET.
Encryption method
Sort the keys of all request parameters in ascending character order, excluding
appKeyandsign.Concatenate the corresponding values by that key order to a single string.
Concatenate the string with
appKey(append).Compute MD5 hash of the final string to produce the
signvalue (hex lowercase).
# pseudo
ordered_keys = sort(keys(params - {sign}))
concat_values = ''.join(str(params[k]) for k in ordered_keys)
payload = concat_values + appKey
sign = md5_hex(payload)Important
Do not include appKey or sign in the sorted parameter set. Ensure time values are milliseconds (Unix epoch ms) and MD5 output is lowercase hex.
Encryption example
Example parameter
appId: geodnet
appKey: 2916350764adb542Request parameters
appId
geodnet
String
Y
Application ID
username
geoduser
String
Y
username
password
geodpass
String
Y
password
trialDays
7
Number
Y
Free trial days
time
1718150400000
Number
Y
Current server timestamp in milliseconds
sign
8dd687e158219da6ccc689aef6c0a6a1
String
Y
Encrypted signature
Steps
Parameter ordering (excluding
sign)
appId,password,time,trialDays,usernameField value concatenation
geodnetgeodpass17181504000007geoduserConcat with
appKey
geodnetgeodpass17181504000007geoduser2916350764adb542Generate
sign
md5("geodnetgeodpass17181504000007geoduser2916350764adb542")
= 8dd687e158219da6ccc689aef6c0a6a1Implementation hints
// JavaScript (Node.js) example
import crypto from "crypto";
function buildSign(params, appKey) {
const keys = Object.keys(params).filter(k => k !== "sign").sort();
const concat = keys.map(k => String(params[k])).join("") + appKey;
return crypto.createHash("md5").update(concat).digest("hex");
}
const params = { appId: "geodnet", username: "geoduser", password: "geodpass", trialDays: 7, time: 1718150400000 };
const sign = buildSign(params, "2916350764adb542");# Python example
import hashlib
def build_sign(params: dict, app_key: str) -> str:
keys = sorted(k for k in params.keys() if k != "sign")
concat = "".join(str(params[k]) for k in keys) + app_key
return hashlib.md5(concat.encode("utf-8")).hexdigest()
params = {"appId": "geodnet", "username": "geoduser", "password": "geodpass", "trialDays": 7, "time": 1718150400000}
sign = build_sign(params, "2916350764adb542")Last updated
