华商城开放 API · 接入指南 & SDK

vip.wscmall.com · 统一入口 POST /api.php

一、接入三步

1
前往 开发者中心 完成实名认证与入驻,选择套餐,签发 API Key 与 API Secret(沙箱 env=sandbox 可安全试调,写操作不落库)。
2
读端点携带请求头 X-Api-Key + X-Api-Secret;写端点(merchant_ship / merchant_confirm_pay)另需签名三件套。
3
按下方示例代码调用,或直接使用 Swagger UI 在线试调。

二、签名算法(写端点必需)

签名串 = X-Timestamp + "\n" + X-Nonce + "\n" + 方法 + "\n" + 路径,签名值 = hex(HMAC-SHA256(API_Secret, 签名串))。时间窗 ±300 秒,Nonce 一次性防重放。
# 请求头(写端点完整)
X-Api-Key:     8f2a...your_key
X-Api-Secret:   c9d1...your_secret
X-Timestamp:   1761900000            # 秒级时间戳
X-Nonce:       a1b2c3d4e5f6a7b8    # 随机串(每次唯一)
X-Signature:   hex(HMAC-SHA256(secret, ts+"\n"+nonce+"\n"+"POST"+"\n"+"/api.php"))

三、客户端示例代码

// 保存为 HuashangApi.php
class HuashangApi {
    private $base = 'https://vip.wscmall.com', $key, $secret;
    function __construct($key, $secret) { $this->key=$key; $this->secret=$secret; }
    function call($action, $params=[], $sign=false) {
        $body = json_encode(array_merge(['action'=>$action], $params), JSON_UNESCAPED_UNICODE);
        $h = ['Content-Type: application/json', 'X-Api-Key: '.$this->key, 'X-Api-Secret: '.$this->secret];
        if ($sign) {
            $ts=(string)time(); $nonce=bin2hex(random_bytes(8)); $path='/api.php';
            $h[]='X-Timestamp: '.$ts; $h[]='X-Nonce: '.$nonce;
            $h[]='X-Signature: '.hash_hmac('sha256', $ts."\n".$nonce."\nPOST\n".$path, $this->secret);
        }
        $ch=curl_init($this->base.'/api.php');
        curl_setopt_array($ch,[CURLOPT_POST=>true,CURLOPT_POSTFIELDS=>$body,CURLOPT_HTTPHEADER=>$h,CURLOPT_RETURNTRANSFER=>true]);
        $r=curl_exec($ch); curl_close($ch); return json_decode($r,true);
    }
}
// 用法
$api = new HuashangApi($key, $secret);
$cats = $api->call('open.categories');            // 读
$ship = $api->call('open.merchant_ship', ['order_id'=>123, 'express_company'=>'顺丰', 'express_no'=>'SF123'], true); // 写(带签名)

四、一键生成 SDK(可选)

规范文件为标准 OpenAPI 3.0.3(40 个端点),可用官方工具生成任意语言 SDK:

# 下载规范
curl -o openapi.json "https://vip.wscmall.com/api.php?action=open.spec"
# 生成 SDK(以 PHP / Python / JavaScript 为例)
openapi-generator-cli generate -i openapi.json -g php -o sdk/php
openapi-generator-cli generate -i openapi.json -g python -o sdk/python
openapi-generator-cli generate -i openapi.json -g javascript -o sdk/js
相关链接:Swagger UI 文档 · 接入状态页 · openapi.json · 开发者中心
鉴权三级:读=Key+Secret · 写=Key+Secret+签名 · 沙箱 env=sandbox 模拟写操作。频率按 Key 每分钟配额,超限返回 429。