You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node-Soap对接TradeTracker SOAP API:认证后请求失效应答未认证

排查TradeTracker SOAP API认证后请求失败的问题

核心差异分析

TradeTracker的SOAP API靠会话ID(Session ID)或HTTP Cookie维持认证状态,Zeep和node-soap在会话上下文处理上逻辑完全不同:

  • Zeep默认自动保存authenticate返回的Session ID,后续请求会自动把它放到SOAP Header里,同时自动传递HTTP Cookie。
  • node-soap不会自动维护会话,必须手动提取Session ID并显式设置到后续请求的Header,或者配置CookieJar来自动传递Cookie。

具体排查与修复步骤

1. 提取authenticate返回的会话标识

先确认authenticate的响应里有没有Session ID,它可能在SOAP Body的返回结果里,也可能在HTTP响应的Set-Cookie头中:

client.authenticate({username: '你的账号', password: '你的密码'}, (err, result) => {
  if (!err) {
    // 从响应Body提取Session ID(根据实际返回结构调整字段名)
    const sessionId = result.authenticateReturn.sessionId;
    // 或者从HTTP响应头提取Cookie
    const cookie = client.lastResponseHeaders['set-cookie'];
  }
});

2. 手动给后续请求加SOAP Header

TradeTracker要求后续请求必须在SOAP Header里带Session ID,按API的WSDL定义设置:

// 构造符合要求的Header(注意命名空间要和WSDL一致)
const authHeader = {
  SessionHeader: {
    sessionId: '刚才提取到的Session ID'
  }
};

// 把Header绑定到client,后续所有请求都会带上
client.addSoapHeader(authHeader);

// 调用后续接口示例
client.getCampaigns({}, (err, result) => {
  // 处理返回结果
});

3. 配置CookieJar自动传递会话Cookie

如果API靠HTTP Cookie维持会话,给node-soap配置CookieJar:

const request = require('request');
const cookieJar = request.jar();

// 创建client时指定request选项,启用CookieJar
soap.createClient('https://api.tradetracker.com/soap/affiliate?wsdl', {
  request: {
    jar: cookieJar
  }
}, (err, client) => {
  // 先调用authenticate,CookieJar会自动保存Set-Cookie
  client.authenticate({username: '你的账号', password: '你的密码'}, () => {
    // 后续请求会自动带上Cookie
    client.getCampaigns({}, (err, result) => {});
  });
});

4. 抓包对比请求报文

用工具抓包对比Zeep和node-soap的请求:

  • 看Zeep的后续请求SOAP Header里有没有Session ID,或者HTTP头有没有带Cookie。
  • 检查node-soap的请求是不是缺了这些信息,针对性调整代码补上。

常见坑点

  • 注意SessionHeader的命名空间必须和WSDL定义一致,否则API会忽略这个Header。
  • 部分TradeTracker环境的Session ID可能同时存在于响应Body和Cookie中,需要同时设置Header和Cookie才能生效。

内容的提问来源于stack exchange,提问作者Nique

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 08:44:50