全部
常见问题
产品动态
精选推荐

怎么用淘宝开放平台 AppKey / Secret 自动化生成签名版接口模板

管理 管理 编辑 删除

自动生成签名的接口模板 —— 即给定 AppKeyAppSecret,自动构造好签名参数、拼装请求、发送 API 请求的标准化封装。

企业级可直接使用的 Python SDK 模板

它能自动完成签名、拼接参数、发请求和返回结果。

你只要改两个值:APP_KEYAPP_SECRET

一、模板说明

功能:

  • 自动计算淘宝 TOP API 签名;
  • 支持所有淘宝开放平台接口;
  • 通用调用方法(不局限于商品详情);
  • 自动 JSON 格式化结果;
  • 兼容 Python 3.8+。

二、完整代码(taobao_sdk.py)

import hashlib
import time
import requests
import json


class TaobaoSDK:
    """
    淘宝开放平台通用SDK封装
    支持所有API自动签名调用
    """

    def __init__(self, app_key: str, app_secret: str, session: str = None):
        """
        初始化SDK
        :param app_key: 淘宝开放平台 AppKey
        :param app_secret: 淘宝开放平台 AppSecret
        :param session: 授权用户会话key(有的API需要)
        """
        self.app_key = app_key
        self.app_secret = app_secret
        self.session = session
        self.gateway_url = "https://eco.taobao.com/router/rest"

    def _sign(self, params: dict) -> str:
        """
        生成 TOP API 签名(MD5)
        """
        sorted_params = sorted(params.items())
        query_str = self.app_secret + ''.join(f"{k}{v}" for k, v in sorted_params) + self.app_secret
        return hashlib.md5(query_str.encode('utf-8')).hexdigest().upper()

    def call_api(self, method: str, **kwargs):
        """
        调用任意淘宝API接口
        :param method: API方法名(如 'taobao.tbk.item.info.get')
        :param kwargs: 业务参数(如 num_iids='123456')
        """
        params = {
            "method": method,
            "app_key": self.app_key,
            "timestamp": time.strftime("%Y-%m-%d %H:%M:%S"),
            "format": "json",
            "v": "2.0",
            "sign_method": "md5",
        }

        # 添加业务参数
        params.update(kwargs)

        # 有session的接口自动加上
        if self.session:
            params["session"] = self.session

        # 签名
        params["sign"] = self._sign(params)

        # 发送请求
        resp = requests.get(self.gateway_url, params=params, timeout=10)
        try:
            return resp.json()
        except json.JSONDecodeError:
            return {"error": "Invalid JSON response", "text": resp.text}


# ==========================
# ✅ 示例用法
# ==========================
if __name__ == "__main__":
    APP_KEY = "你的AppKey"
    APP_SECRET = "你的AppSecret"

    # 初始化SDK
    tao = TaobaoSDK(APP_KEY, APP_SECRET)

    # 示例1:获取商品详情
    result = tao.call_api(
        method="taobao.tbk.item.info.get",
        num_iids="1234567890123"
    )
    print("商品详情:")
    print(json.dumps(result, indent=2, ensure_ascii=False))

    # 示例2:商品搜索
    search_result = tao.call_api(
        method="taobao.tbk.item.get",
        q="蓝牙耳机",
        page_no=1,
        page_size=5
    )
    print("\n商品搜索结果:")
    print(json.dumps(search_result, indent=2, ensure_ascii=False))


⚙️ 三、模板特性

功能说明
✅ 自动签名内置淘宝 TOP 签名算法(MD5 + Secret)
✅ 通用接口所有淘宝 API 方法都能用
✅ 自动加时间戳无需手动计算
✅ 自动格式化输出JSON 格式直接可打印
✅ 支持带 session 授权兼容需授权的接口(如店铺接口)


四、调用方式举例

from taobao_sdk import TaobaoSDK

tao = TaobaoSDK(app_key="xxxx", app_secret="xxxx")

# 获取商品详情
info = tao.call_api("taobao.tbk.item.info.get", num_iids="1234567890123")
print(info)

# 搜索商品
search = tao.call_api("taobao.tbk.item.get", q="华为手机", page_no=1)
print(search)

五、提示与进阶用法

场景参数/接口
获取优惠券taobao.tbk.coupon.get
生成淘口令taobao.tbk.tpwd.create
获取店铺详情taobao.tbk.shop.get
联盟高佣转链taobao.tbk.privilege.get(需联盟授权)
支持授权 sessionTaobaoSDK(session="token") 时启用


是否希望我帮你把上面这个 SDK 进一步打包成一个可 pip install 的项目结构?

(比如 taobao_sdk/ 包、setup.py__init__.pyexamples/ 等,方便直接集成进系统)

请登录后查看

小码二开 最后编辑于2025-10-06 10:26:52

快捷回复
回复
回复
回复({{post_count}}) {{!is_user ? '我的回复' :'全部回复'}}
排序 默认正序 回复倒序 点赞倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level || item.bbs_level }}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推荐': '推荐'}}
{{item.is_suggest == 1? '取消推荐': '推荐'}}
沙发 板凳 地板 {{item.floor}}#
{{item.user_info.title || '暂无简介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
打赏
已打赏¥{{item.reward_price}}
{{item.like_count}}
{{item.showReply ? '取消回复' : '回复'}}
删除
回复
回复

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
打赏
已打赏¥{{itemc.reward_price}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
回复
回复
查看更多
打赏
已打赏¥{{reward_price}}
67
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

快速安全登录

使用微信扫码登录
{{item.label}} 加精
{{item.label}} {{item.label}} 板块推荐 常见问题 产品动态 精选推荐 首页头条 首页动态 首页推荐
取 消 确 定
回复
回复
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定
打赏金额
当前余额:¥{{rewardUserInfo.reward_price}}
{{item.price}}元
请输入 0.1-{{reward_max_price}} 范围内的数值
打赏成功
¥{{price}}
完成 确认打赏

微信登录/注册

切换手机号登录

{{ bind_phone ? '绑定手机' : '手机登录'}}

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服

CRMEB咨询热线 咨询热线

400-8888-794

微信扫码咨询

CRMEB开源商城下载 源码下载 CRMEB帮助文档 帮助文档
返回顶部 返回顶部
CRMEB客服