V1 接入示例
V1 接入方使用 appid + secret 调用 getToken 获取 token,后续业务接口只需在请求体中携带 token 即可,无需额外签名头。
信息
2026 年 9 月 21 日之前生成的 appid 为 V1 版 APPID,适用本页示例。
接入流程
- 用
appid和secret调用/api/getToken,获取token(有效期一般 7200 秒)。 - 调用业务接口时,在请求体中传入
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();