轻易云
注册体验
POSThttps://api.wangdian.cn/openapi2/{接口服务名}.phpsid + appkey + MD5 签名

接口公共参数与 MD5 签名算法

旺店通企业版 OpenAPI 的鉴权方式:每个接口 URL 指向独立 .php 服务,公共参数 sid、appkey、timestamp、sign 必不可少,sign 为排序拼接后首尾加 secret 的 MD5。

## 接口说明 旺店通企业版 OpenAPI 采用 REST 风格:每个业务接口是一个独立的 .php 地址(如 trade_query.php、stock_query.php),测试环境域名为 sandbox.wangdian.cn,正式环境为 api.wangdian.cn。请求统一 POST + application/x-www-form-urlencoded。鉴权不签发 token,而是每次请求用公共参数 + MD5 签名完成身份校验。 ### 公共参数 | 参数 | 说明 | | --- | --- | | sid | 卖家账号(旺店通系统登录账号) | | appkey | 应用授权 key(后台申请接口授权时分配) | | timestamp | 从 1970-01-01 08:00:00(Asia/Shanghai)到当前的秒数,允许误差 5 分钟 | | sign | 签名结果 | ### 签名步骤 1. 取除 sign 外的全部请求参数(公共参数 + 业务参数),按参数名升序排序。 2. 按 key1value1key2value2 形式顺序拼接(不做 URL 编码)。 3. 在拼接串首尾各拼接一次接口密钥 secret。 4. 对最终字符串计算 MD5(32 位十六进制),即 sign。 ### 注意事项 - timestamp 是"北京时区纪元秒数"而非标准 Unix 秒,跨时区服务器最容易在这里踩坑。 - 分页类接口的 pageno/pagesize 也参与签名;任何参数改动都要重算 sign。 - 签名错误、sid 无效、appkey 无接口权限都会在响应体的 status/message 中体现,生产环境应对这三类错误分别告警。

代码示例

pseudo
params = { sid, appkey, timestamp, ...bizParams }
keys  = sortAsc(params.keys)
base  = concat(k + params[k] for k in keys)
sign  = md5(secret + base + secret)   // 32 位 hex
POST https://api.wangdian.cn/openapi2/trade_query.php
Content-Type: application/x-www-form-urlencoded

错误码

错误码消息含义
100sign 校验失败签名错误:检查排序、拼接与 secret,以及 timestamp 时区口径
102appkey 无权限该 appkey 未开通目标接口授权,需在旺店通后台申请
105timestamp 过期请求时间与服务器偏差超过 5 分钟,校准调用方时钟