Qeasy Cloud
Get Started
POSThttps://open-api.hupun.com/api/{接口路径}AppKey + Secret MD5 签名

Call Convention and Signing (_app/_sign/_t)

万里牛 ERP 开放接口调用规范:统一域名 open-api.hupun.com,系统参数 _app(AppKey)、_t(时间戳)、_sign 参与每次请求,签名为参数排序拼接后首尾加 Secret 的 MD5。

## Overview Hupun ERP's OPEN APIs use one gateway host with REST resource paths: https://open-api.hupun.com/api plus paths like /erp/opentrade/list/trades. Requests are POST with application/x-www-form-urlencoded. There is no token issuance — every call authenticates with system parameters plus an MD5 signature. Note the OPEN APIs and the B2C APIs (self-owned mall push) use separate credential pairs and must not be mixed. ### System parameters | Parameter | Meaning | | --- | --- | | _app | OPEN AppKey from the developer console | | _t | Timestamp (seconds) | | _sign | Signature | ### Signing steps 1. Merge system and business parameters (except _sign) and sort ascending by name. 2. Concatenate as key+value pairs. 3. Prepend and append the Secret. 4. MD5 the result — that is _sign. Hupun offers an online signature verifier plus Java/Python SDKs; check a self-rolled signer against the official tool first. ### Response All APIs return {"code":0,"msg":"success","data":{...}}; a non-zero code comes with a msg. Common failures: bad signature (wrong _sign math or Secret), excessive timestamp skew, and AppKey lacking the API permission. ### Production advice The Qeasy Hupun connector embeds signing and throttling. For custom integrations, pass the official signature tool before touching business parameters — make "signature parity achieved" the first acceptance gate of joint debugging.

Code examples

pseudo
params = { _app, _t, ...bizParams }
_sign = md5(secret + concatSortedKV(params) + secret)
POST https://open-api.hupun.com/api/erp/opentrade/list/trades
Content-Type: application/x-www-form-urlencoded

Error codes

CodeMessageMeaning
0success成功
sign_error签名验证失败_sign 计算错误、Secret 用错或时间戳偏差过大
no_permission无接口权限AppKey 未开通目标接口,需在开发者后台申请