当前位置: 首页 > ds >正文

金蝶api对接沙箱环境python代码调试

根据官网文档加密规则
在这里插入图片描述

import time
import random
import hmac
import hashlib
import base64
import requests
import urllib.parse# 基础参数
method = "GET"
path = "/jdy/v2/scm/pur_order"
base_url = "https://api.kingdee.com"
full_url = base_url + path
client_id = "323410"
client_secret = "c3b1d8796c242342b05ef5275c4242bca"
nonce = str(random.randint(1000000000, 9999999999))
timestamp = str(int(time.time() * 1000))# 构建签名原文
encoded_path = urllib.parse.quote(path, safe='').replace("+", "%20")  # 一次URL编码
params = ""  # 无参数
sign_string = f"{method}\n{encoded_path}\n{params}\nx-api-nonce:{nonce}\nx-api-timestamp:{timestamp}\n"# HMAC-SHA256加密(使用 client_secret 作为密钥),再 Base64 编码
hmac_sha256 = hmac.new(client_secret.encode(), sign_string.encode(), hashlib.sha256).hexdigest()
signature = base64.b64encode(hmac_sha256.encode()).decode()# 构建请求头
headers = {"Content-Type": "application/json","X-Api-ClientID": client_id,"X-Api-Auth-Version": "2.0","X-Api-SignHeaders": "X-Api-Nonce,X-Api-TimeStamp","X-Api-Nonce": nonce,"X-Api-TimeStamp": timestamp,"X-Api-Signature": signature,"X-GW-Router-Addr": "https://tf.jdy.com","app-token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHQiOnsiYWNjb3VudElkIjoiMTc0NTkxMTI4NTE4MTA3NTM2rwqrb3VwTmFtZSI6Im5zLXQ1NCIsImFwcF9rZXkiOiJwaWpZQzrqrIsInRlbafwsffewrrNzkxMDYyOTY5MTQ3MTEiLCJ1c2VrqwrtZSI6InUxMzE0NTczNjY2MSJ9LCJncnAiOiJucy10NTQiLCJleHAiOjE3NDY2NzcyMTksImFpZCI6IjE3NDU5MTEyODUxOrwzUzNjgiLCJpYXQiOjE3NDY1OTA4MTl9.eH5zFMPyfn4ERfgHDdvGs5rx5LxrxdJ5ny6U_uSnXJ8"  # 如果你已有 app-token,请替换
}# 发起GET请求
response = requests.get(full_url, headers=headers)# 输出响应结果
print("随机数:", nonce)
print("时间戳:", timestamp)
print("请求地址:", full_url)
print("组装签名原文:", sign_string)
print("授权签名:", signature)
print("状态码:", response.status_code)
print("响应内容:", response.text)

在这里插入图片描述

http://www.xdnf.cn/news/4950.html

相关文章:

  • SEMI E40-0200 STANDARD FOR PROCESSING MANAGEMENT(加工管理标准)-(一)
  • 【Bluedroid】蓝牙 SDP(服务发现协议)模块代码解析与流程梳理
  • linux动态占用cpu脚本、根据阈值增加占用或取消占用cpu的脚本、自动检测占用脚本状态、3脚本联合套用。
  • java使用MinIO,虚拟机时间异常
  • 低秩适应(LoRA)与量化LoRA(QLoRA)技术解析
  • ‌CDGP|数据治理:探索企业数据有序与安全的解决之道
  • Web 自动化之 HTML JavaScript 详解
  • OpenCV-Python (官方)中文教程(部分一)_Day22
  • 云服务如何简化物联网设备生命周期(How Cloud Services Simplify IoT Device Lifecycles)?
  • 摄像头模组AF、OIS模组
  • 接口-DAO模式
  • 65.微服务保姆教程 (八) 微服务开发与治理实战
  • 车载网络TOP20核心概念科普
  • Go使用Gin写一个对MySQL的增删改查服务
  • JS 问号(?)运算符避免中间报错
  • VNC windows连接ubuntu桌面
  • 涨薪技术|0到1学会性能测试第52课-Tomcat调优技术
  • 从回调到 Promise:异步编程进化史
  • 数据库(MySQL)基础
  • 【Python】Python项目中的依赖与配置:requirements.txt、setup.py、pyproject.toml 详解
  • git cola如何选择指定的多个commit同时合并到另外一个分支上
  • vscode与keil的乱码不兼容问题
  • 3.2.3 掌握RDD转换算子 - 3. 扁平映射算子 - flatMap()
  • matlab稳定求解高精度二维对流扩散方程
  • ​​​​​​​MySQL数据库故障排查指南
  • springboot+vue实现在线网盘(云盘)系统
  • Open CASCADE学习|Geom2d_Curve类
  • c语言if else语句格式(非常详细)
  • 管道符_+xargs拓展参数传递操作,以及find指令
  • 真相与幻象的博弈:AI“幻觉”的生成密码与治理革命