跳到主要内容
版本:v2.0

V1 接入示例

V1 接入方使用 appid + secret 调用 getToken 获取 token,后续业务接口只需在请求体中携带 token 即可,无需额外签名头。

信息

2026 年 9 月 21 日之前生成的 appid 为 V1 版 APPID,适用本页示例。

接入流程​

  1. 用 appid 和 secret 调用 /api/getToken,获取 token(有效期一般 7200 秒)。
  2. 调用业务接口时,在请求体中传入 token 参数。

PHP​

<?php

$baseUrl = 'https://open.xinduobang.cn';
$appid = 'YOUR_APPID';
$secret = 'YOUR_SECRET';

/** 发起普通 POST 请求 */
function post(string $url, array $params): array {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/x-www-form-urlencoded',
]);
$resp = curl_exec($ch);
curl_close($ch);
return json_decode($resp, true);
}

// ========== Step 1: 获取 Token ==========

$tokenResult = post($baseUrl . '/api/getToken', [
'appid' => $appid,
'secret' => $secret,
]);

if ($tokenResult['code'] !== 0) {
die("getToken 失败: " . $tokenResult['msg'] . "\n");
}

$token = $tokenResult['data']['token'];
echo "获取 token 成功: " . $token . "\n\n";

// ========== Step 2: 调用 catOrder ==========

$orderResult = post($baseUrl . '/api/catOrder', [
'token' => $token,
'ordernum' => 'NO20230511203452547280',
'pageNum' => 1,
'pageSize' => 10,
]);

if ($orderResult['code'] !== 0) {
die("catOrder 失败: " . $orderResult['msg'] . "\n");
}

echo "catOrder 成功,共 " . $orderResult['totalnum'] . " 条订单\n";
print_r($orderResult['data']);

Java​

使用 JDK 11+ 内置 HttpClient,无需额外依赖。

import java.net.URI;
import java.net.URLEncoder;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
import java.util.Map;
import java.util.stream.Collectors;

public class V1Demo {

private static final String BASE_URL = "https://open.xinduobang.cn";
private static final String APPID = "YOUR_APPID";
private static final String SECRET = "YOUR_SECRET";

static String post(String url, Map<String, String> params) throws Exception {
String body = params.entrySet().stream()
.map(e -> URLEncoder.encode(e.getKey(), StandardCharsets.UTF_8)
+ "=" + URLEncoder.encode(e.getValue(), StandardCharsets.UTF_8))
.collect(Collectors.joining("&"));

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Content-Type", "application/x-www-form-urlencoded")
.POST(HttpRequest.BodyPublishers.ofString(body))
.build();

return client.send(request, HttpResponse.BodyHandlers.ofString()).body();
}

public static void main(String[] args) throws Exception {
// Step 1: 获取 Token
String tokenResp = post(BASE_URL + "/api/getToken", Map.of(
"appid", APPID,
"secret", SECRET
));
System.out.println("getToken 响应: " + tokenResp);

// 简单解析 token(实际项目建议用 Gson / Jackson)
String token = tokenResp.split("\"token\":\"")[1].split("\"")[0];
System.out.println("获取 token 成功: " + token);

// Step 2: 调用 catOrder
String orderResp = post(BASE_URL + "/api/catOrder", Map.of(
"token", token,
"ordernum", "NO20230511203452547280",
"pageNum", "1",
"pageSize", "10"
));
System.out.println("catOrder 响应: " + orderResp);
}
}

Node.js​

使用 Node.js 内置 fetch(v18+),无需额外依赖。

const BASE_URL = 'https://open.xinduobang.cn';
const APPID = 'YOUR_APPID';
const SECRET = 'YOUR_SECRET';

/** 发起普通 POST 请求 */
async function post(url, params) {
const body = Object.entries(params)
.map(([k, v]) => encodeURIComponent(k) + '=' + encodeURIComponent(v))
.join('&');

const resp = await fetch(url, {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body,
});
return resp.json();
}

async function main() {
// Step 1: 获取 Token
const tokenResult = await post(BASE_URL + '/api/getToken', {
appid: APPID,
secret: SECRET,
});

if (tokenResult.code !== 0) {
console.error('getToken 失败:', tokenResult.msg);
process.exit(1);
}

const token = tokenResult.data.token;
console.log('获取 token 成功:', token);

// Step 2: 调用 catOrder
const orderResult = await post(BASE_URL + '/api/catOrder', {
token,
ordernum: 'NO20230511203452547280',
pageNum: 1,
pageSize: 10,
});

if (orderResult.code !== 0) {
console.error('catOrder 失败:', orderResult.msg);
process.exit(1);
}

console.log(`catOrder 成功,共 ${orderResult.totalnum} 条订单`);
console.log(JSON.stringify(orderResult.data, null, 2));
}

main();