X-Api-Key + X-Api-Secret;写端点(merchant_ship / merchant_confirm_pay)另需签名三件套。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); // 写(带签名)
规范文件为标准 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