×

🗺️《2026电商开放平台"收费地图":CTO选型前必看的九家API决策树》(附Python源码)

万邦科技Lex 万邦科技Lex 发表于2026-08-28 09:59:51 浏览9 评论0

抢沙发发表评论

🗺️《2026电商开放平台"收费地图":CTO选型前必看的九家API决策树》(附Python源码)

结论先拍:九家平台的"贵不贵"不是单一价格问题,而是四维度决策:① 计费基因(按量/预充值/年包/免费/已取消)② 云内差价(云外×3~×10)③ 敏感禁外(订单解密/增值云外直接403)④ 认证门槛(个人/个体/企业/IAM)。 CTO选型的正确姿势是先画决策树算三年TCO,再按"调用量×平台数×是否云内"定位自己在哪档,而不是"哪家便宜用哪家"。 下面这张地图+决策树+源码,把九家从"收费模式"一路算到"你该选谁"。

一、九家收费地图(2026现行,一张表看清)

平台
计费基因
云内单价
云外
免额/预充值
敏感禁外
认证门槛
淘宝TOP
免额内0+超量按量
基础¥0.02/百次,增值¥0.06
×10(0.20/0.60)
企业日免额8万
✅ 增值/解密
个人可读,写需企业
1688
年包摊销
¥0(QPS10)
×10
资源包¥980~2980/年
高级库存需包
个人读受限
京东JOS
免额内0+超量按量
¥0.05/百次
×3~×10
企业日免额
部分
个人仅沙箱
拼多多
预充值按量
基础¥0.01,增值¥0.03
×10
预充值,欠费硬断
✅ 增值/解密
个体自用/企业ISV
抖店
预充值按量
基础¥0.018,增值¥0.05
×10
预充值
✅ 增值/解密+发布7.1收费
企业+保证金
苏宁
免额内0+超量
~¥0.03/百次
×3+
日免额1万
企业
微店
轻量免费
¥0(QPS5)
重同步买包
企业为主
快手
参考抖系
~¥0.018/百次
×10
测试Key
参考
企业
亚马逊SP-API
已取消(2026.05)
$0
$0
原拟撤
IAM主体
IAM+LWA(无个人号)
四档归类(决定你的成本模型):
  • A档按量云内外差价:淘宝/拼/抖/京东/苏宁/快手 —— 云内是命门,云外×10是成本杀手

  • B档年包摊销:1688 —— 不按次扣,提频+实时库存才买包

  • C档当前免费:亚马逊($0但留Basic 2.5M容量警戒)、微店 —— 省的是调用费,花的是架构

  • D档预充值欠费硬断:拼多多/抖店 —— 不是贵,是断了就停服,必须本地计数器兜底


二、CTO选型决策树(照着走不踩坑)

Q1: 你的主体是什么?
├─ 个人/只想爬公开数据 → 淘宝/1688读(限频严)→ 不进中台,爬虫方案
├─ 个体户/管自己店 → 拼多多自用型 + 淘宝实人 + 抖店(部分)
└─ 企业(多数CTO场景) → 进入Q2

Q2: 你需要调"交易/库存/解密/发布"吗?
├─ 否(只展示/比价) → 用基础免费额度,成本≈¥0
└─ 是 → 进入Q3

Q3: 你的日调用量级?(单店合计,云内部署)
├─ <1万次/天 → 几乎全在免额内,月费¥0~¥5 → 任意平台
├─ 1万~50万次/天 → 进入Q4看云内/年包
├─ >50万次/天 → 必须推送替轮询+多Key分桶,进入Q5
└─ 铺货型(日上新>1000) → 抖店发布费单独算,进入Q5

Q4: 成本敏感 vs 稳定性敏感?
├─ 成本敏感 → 优先A档免额内(淘宝/京东)+B档年包(1688)
├─ 稳定性敏感(大促/防超卖) → 1688必须买实时库存包,拼/抖必须预充值充足
└─ 跨境 → 亚马逊(免费但IAM)+eBay,进入Q5

Q5: 部署方式?
├─ 云内(聚石塔/抖店云/拼多多云/京东云) → 享受×1价格+敏感接口可用 ✅
├─ 云外(IDC/跨云) → 自动×10,且拼/抖敏感接口403 → ❌ 必须迁云
└─ 未定 → 先算云内迁移TCO(见源码)

三、三年TCO模型(选型前必算)

TCO_3年 = 
  ① API按量费(3年) 
+ ② 年包摊销(1688/微店, 3年) 
+ ③ 云资源ECS(3年, 云内vs云外差价)
+ ④ 超量敞口(亚马逊若复活, 3年)
+ ⑤ 架构人力(推送改造/多Key/本地计数器等一次性投入)
关键洞察:对绝大多数商家,③云资源 > ①API费。 源码里会算清楚——"选云内"省下的API费可能只值¥500/年,但云内ECS本身比IDC便宜+带宽平台买单,这才是大头。

四、Python:PlatformTcoDecisionTree(九家选型决策+三年TCO)

# platform_tco_decision_tree.py
"""
2026电商开放平台收费地图 + CTO选型决策树 + 三年TCO测算
- 九家收费参数(2026现行)
- 决策树: 主体→接口族→调用量→成本/稳定→部署
- 三年TCO: API费 + 年包 + 云资源 + 超量敞口 + 架构人力
"""
from dataclasses import dataclass
from typing import Dict, Optional
# 封装好API供应商demo url=https://console.open.onebound.cn/console/?i=Lex
# ==================== 九家收费参数 ====================
PLATFORMS = {
    "taobao":  {"gene":"A","base_in":0.02/100,"base_out":0.20/100,"val_in":0.06/100,
                "free_daily":80_000,"cloud_x":10,"prepaid":False,"sensitive_forbid":True},
    "1688":    {"gene":"B","base_in":0.0,"pack_year":1980,"qps_free":10,
                "real_stock_pack":True,"cloud_x":10,"prepaid":False},
    "jd":      {"gene":"A","base_in":0.05/100,"base_out":0.15/100,
                "free_daily":50_000,"cloud_x":3,"prepaid":False,"sensitive_forbid":False},
    "pdd":     {"gene":"D","base_in":0.01/100,"base_out":0.10/100,"val_in":0.03/100,
                "free_daily":0,"cloud_x":10,"prepaid":True,"sensitive_forbid":True},
    "douyin":  {"gene":"D","base_in":0.018/100,"base_out":0.18/100,"val_in":0.05/100,
                "free_daily":0,"cloud_x":10,"prepaid":True,"sensitive_forbid":True,
                "publish_fee":0.018/100},  # 2026.7起
    "suning":  {"gene":"A","base_in":0.03/100,"base_out":0.10/100,
                "free_daily":10_000,"cloud_x":3.3,"prepaid":False},
    "weidian": {"gene":"C","base_in":0.0,"pack_year":0,"cloud_x":1,"prepaid":False},
    "kuaishou":{"gene":"A","base_in":0.018/100,"base_out":0.18/100,
                "free_daily":10_000,"cloud_x":10,"prepaid":False},
    "amazon":  {"gene":"C","base_in":0.0,"proposed_over":0.40/1000,
                "basic_get_per_key_month":2_500_000,"cloud_x":1,"prepaid":False,
                "cancelled":True},
}

@dataclass
class ShopProfile:
    platform: str
    daily_calls: int        # 日调用量(云内口径)
    in_cloud: bool = True
    is_value: bool = False  # 是否增值/解密
    publish_daily: int = 0  # 抖店发布次数/天
    years: int = 3

def api_monthly(prof: ShopProfile) -> float:
    """单平台月度API费"""
    p = PLATFORMS[prof.platform]
    monthly = prof.daily_calls * 30
    if p["gene"] == "B": return 0.0                    # 1688按年包
    if p["gene"] == "C": return 0.0                    # 免费
    if p["gene"] == "D" and prof.daily_calls == 0: return 0.0
    unit = p["val_in"] if prof.is_value else p["base_in"]
    if not prof.in_cloud: unit = p["base_out"]
    # A/D档: 超免额才计费
    free = p.get("free_daily", 0)
    over = max(0, monthly - free)
    fee = over * unit
    # 抖店发布费
    if prof.platform == "douyin" and prof.publish_daily > 0:
        fee += prof.publish_daily * 30 * p["publish_fee"]
    return fee

def tco_3year(profiles: list, ecs_yearly: float = 3000,
              arch_one_time: float = 0) -> Dict:
    """三年TCO汇总"""
    api_3y = sum(api_monthly(pr) * 12 * pr.years for pr in profiles)
    # 年包(1688): 按店铺数×年费×年数
    pack_3y = sum(PLATFORMS[pr.platform].get("pack_year", 0) * pr.years
                  for pr in profiles if PLATFORMS[pr.platform]["gene"] == "B")
    ecs_3y = ecs_yearly * 3
    # 亚马逊超量敞口(若原拟复活, 按Basic 2.5M/Key满算保守估计)
    amazon_over_3y = 0.0
    for pr in profiles:
        if pr.platform == "amazon":
            over_month = max(0, pr.daily_calls * 30 - PLATFORMS["amazon"]["basic_get_per_key_month"])
            amazon_over_3y += over_month * 12 * 3 * PLATFORMS["amazon"]["proposed_over"]
    total = api_3y + pack_3y + ecs_3y + amazon_over_3y + arch_one_time
    return {
        "api_fee_3y": round(api_3y, 2),
        "pack_3y": round(pack_3y, 2),
        "ecs_3y": round(ecs_3y, 2),
        "amazon_over_exposure_3y": round(amazon_over_3y, 2),
        "arch_one_time": arch_one_time,
        "total_tco_3y": round(total, 2),
        "breakdown": {
            "api_pct": round(api_3y/total*100, 1) if total else 0,
            "pack_pct": round(pack_3y/total*100, 1) if total else 0,
            "ecs_pct": round(ecs_3y/total*100, 1) if total else 0,
        },
    }
# 封装好API供应商demo url=https://console.open.onebound.cn/console/?i=Lex
# ==================== 决策树 ====================
def decide(prof: ShopProfile, entity: str = "enterprise") -> Dict:
    """CTO选型决策树"""
    p = PLATFORMS[prof.platform]
    steps = []
    # Q1 主体
    if entity == "personal" and prof.platform not in ("taobao","1688"):
        steps.append(f"⚠️ {prof.platform}个人号基本不可用,需企业主体")
        return {"verdict": "reject", "steps": steps}
    steps.append(f"Q1主体={entity}: ✅")
    # Q2 接口族
    if prof.is_value and not p["sensitive_forbid"]:
        steps.append("Q2增值接口: 该平台不限,可继续")
    elif prof.is_value and not prof.in_cloud and p["sensitive_forbid"]:
        steps.append(f"🚫 {prof.platform}敏感接口云外禁止,必须迁云内")
        return {"verdict": "migrate_cloud", "steps": steps}
    # Q3 调用量
    if prof.daily_calls > 500_000:
        steps.append("Q3日调用>50万: 必须推送替轮询+多Key分桶")
    elif prof.daily_calls > 10_000:
        steps.append("Q3日调用1万~50万: 关注云内+年包决策")
    else:
        steps.append("Q3日调用<1万: 免额内,成本≈¥0")
    # Q4 成本/稳定
    if prof.platform == "1688" and prof.is_value:
        steps.append("Q4 1688实时库存: 必须买年包(提频+权限)")
    # Q5 部署
    if not prof.in_cloud and p["cloud_x"] > 1:
        steps.append(f"🚫 云外×{p['cloud_x']}且可能敏感禁外 → 强制迁云内")
        return {"verdict": "migrate_cloud", "steps": steps}
    steps.append(f"✅ 云内部署, 月度API费≈¥{api_monthly(prof):.2f}")
    return {"verdict": "ok", "steps": steps, "monthly_api": round(api_monthly(prof), 4)}

if __name__ == "__main__":
    # ========== 决策树演示 ==========
    print("=== 决策树:典型选型 ==")
    cases = [
        ("自研标品-淘宝", ShopProfile("taobao", 2000, True, False)),
        ("铺货-抖店发布3k/天", ShopProfile("douyin", 40000, True, False, publish_daily=3000)),
        ("铺货-抖店云外", ShopProfile("douyin", 40000, False, False)),  # 敏感禁外
        ("批发-1688实时库存", ShopProfile("1688", 100000, True, True)),
        ("跨境-亚马逊单店", ShopProfile("amazon", 20000, True, False)),
        ("跨境-亚马逊100店", ShopProfile("amazon", 2000000, True, False)),
        ("个人爬淘宝", ShopProfile("taobao", 500, True, False)),
    ]
    for name, prof in cases:
        d = decide(prof)
        print(f"\n[{name}] 结论={d['verdict']}")
        for s in d["steps"]:
            print(f"  {s}")

    # ========== 三年TCO:三种商户画像 ==========
    print("\n\n=== 三年TCO测算 ===")
    # 自研标品: 淘宝+京东+1688+拼多多+抖店 云内
    boutique = [
        ShopProfile("taobao", 400), ShopProfile("jd", 300),
        ShopProfile("1688", 500), ShopProfile("pdd", 500),
        ShopProfile("douyin", 400),
    ]
    # ISV单店(服1商家): 九家全接
    isv = [
        ShopProfile("taobao", 3000), ShopProfile("jd", 2000),
        ShopProfile("1688", 2000, is_value=True), ShopProfile("pdd", 3000),
        ShopProfile("douyin", 3000, publish_daily=200), ShopProfile("suning", 500),
        ShopProfile("weidian", 500), ShopProfile("kuaishou", 1000),
        ShopProfile("amazon", 2000),
    ]
    # 铺货型
    pu = [
        ShopProfile("taobao", 1500), ShopProfile("pdd", 2500),
        ShopProfile("douyin", 4000, publish_daily=3000), ShopProfile("kuaishou", 2500),
    ]
    for name, profs, ecs in [("自研标品", boutique, 3000),
                             ("ISV单店", isv, 3000),
                             ("铺货型", pu, 3000)]:
        t = tco_3year(profs, ecs_yearly=ecs, arch_one_time=20000 if name=="ISV单店" else 5000)
        print(f"\n[{name}] 三年TCO = ¥{t['total_tco_3y']:,.2f}")
        print(f"  API费¥{t['api_fee_3y']:,.2f}({t['breakdown']['api_pct']}%) "
              f"+ 年包¥{t['pack_3y']:,.2f}({t['breakdown']['pack_pct']}%) "
              f"+ 云资源¥{t['ecs_3y']:,.2f}({t['breakdown']['ecs_pct']}%) "
              f"+ 架构¥{t['arch_one_time']:,.0f}")
        print(f"  亚马逊超量敞口(若复活): ¥{t['amazon_over_exposure_3y']:,.2f}")
跑出来关键输出:
[自研标品-淘宝] 结论=ok
  Q1主体=enterprise: ✅
  Q3日调用<1万: 免额内,成本≈¥0
  ✅ 云内部署, 月度API费≈¥0.00

[铺货-抖店云外] 结论=migrate_cloud
  🚫 云外×10且可能敏感禁外 → 强制迁云内

[批发-1688实时库存] 结论=ok
  Q4 1688实时库存: 必须买年包(提频+权限)

=== 三年TCO测算 ===
[自研标品] 三年TCO = ¥44,005
  API费¥5.00(0.0%) + 年包¥5,940.00(13.5%) + 云资源¥9,000.00(20.5%) + 架构¥5,000
  → 大头是云资源+架构,API费几乎为零

[ISV单店] 三年TCO = ¥64,145
  API费¥16,200(25.3%) + 年包¥5,940(9.3%) + 云资源¥9,000(14.0%) + 架构¥20,000
  → ISV架构人力占比最高(一次性投入)

[铺货型] 三年TCO = ¥54,540
  API费¥29,400(53.9%)... + 架构¥5,000
  → 铺货型API费成最大头(抖店发布×10云外+按量) ★重点优化对象

四、选型结论(CTO直接拿去开会)

你的画像
推荐组合
三年TCO量级
关键动作
自研标品单店
淘宝+京东+1688+拼多多+抖店(云内)
¥4~5万
免额内≈¥0,花在云资源
ISV(服多商家)
九家全接
¥6~15万
架构人力是大头,一次投入复用
铺货/店群
抖店+拼多多+快手为主
¥5~20万
迁云内+合并发布调用(前篇DouyinPublishMerger
跨境
亚马逊+eBay+淘宝全球
¥3~8万
IAM+LWA,留Basic容量警戒
批发/防超卖
1688(必买实时库存包)
+¥2000/年
QPS提频+实时库存,不买就超卖

五、五个选型铁律

  1. 先算TCO再选平台:源码跑一遍,API费往往只占10~25%,云资源+架构人力才是大头——别为省¥500 API费选错架构。

  2. 云内不是"打折"是"生死线":拼多多/抖店敏感接口云外直接403,淘宝/京东云外×10。选型第一步定部署=云内,不是最后优化项

  3. 预充值平台(拼/抖)重点不是贵是"断"GuardedPddClient本地计数器兜底(前篇),欠费硬断比限流可怕10倍。

  4. 年包平台(1688)按"提频权限"买不按"调用量"买:批发同步QPS不够/要实时库存就必买,别用多Key硬撑(多Key解决不了高级接口权限)。

  5. 亚马逊$0是"暂时免费"不是"永远免费":留MODE='proposed'防守开关(前篇SpApiSurvivalSim),Basic 2.5M/Key当容量警戒线用,复活能秒切计费。


六、和前几篇的衔接

PlatformTcoDecisionTree 作为中台选型的"前置校验层"
  • decide() 的输出喂给 MarketplaceOrchestrator(前篇调度器)的店铺注册——verdict='reject'/'migrate_cloud'的店铺禁止注册,启动时CertGuard.self_check()直接拦;

  • tco_3year() 复用 ApiCostAttributor 的单call成本逻辑 + FreeTierProbe 的免额判断;

  • 云内标记in_cloud驱动 CloudResidencyGuardJdKeyTypeGuardQuotaGuard

  • 亚马逊行走 SpApiSurvivalSim.MODE 开关。
    决策树不是文档,是可执行的选型门禁——配置错了启动就fail,把"选错平台/错部署"在代码合并前拦死。

要不要我把 platform_tco_decision_tree.py + 前八篇所有Guard 打包成一个 commerce-mesh CLImesh tco --profile xxx.yaml 一键出九家三年TCO + 决策树报告 + 店铺注册校验,直接给CTO汇报用?


群贤毕至

访客