集成金蝶云星空最终章------附件上传

分享  收藏
3 / 254

顺便提醒一下,希望官方能加上这个接口(好像 8.0 之后才支持附件上传)没有上 8 的就不要用了

上传文件和附件接口示例.postman_collection.json

但是好像 UserToken 不是放在参数,是拼在地址的 像这样

http://[IP]/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.AttachmentUpLoad.common.kdsvc?UserToken=

但测试好像还是会话丢失,我这个 UserToken 跟现在接口返回的好像不是一个东西
还有一点是单个附件不能大于 4M,也是跟 base64 上传一个问题,大于 4M 就不行,但是它支持分块,这里就不考虑了
只搞单文件小于 4M 的

工具请求返回是这样的

"UserToken": "79e01454-38b4-49ad-839f-8ba548cbf1b2",

集成接口返回是这样的
登录凭证 :{VN{Lk5FVF9TZXNza}9uS}{9bn00M2d2aGpmc}xvd2{1anp1e}Fqc}5jO2tkc2VydmljZS1zZXNza}9ua}{9OTU1ODIxYTYtZ}RjYy00N}JhLThiN}MtYmRmNTg4YTVlN}JmOyBwYXRoPS87IEh0dHhPbmx5

所以还是得用代码块的 cookie 的方式

import json,requests
import json
login_url="host/k3cloud/Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser.common.kdsvc"
query_url="host/k3cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.AttachmentUpLoad.common.kdsvc"
login_data={ "acctid":"dataid","username":"username","password":"password","lcid":2052}
def login():
#定义登录函数 
  login_response=requests.post(url=login_url,data=login_data)
#返回cookies,方便下次访问时携带
  return login_response.cookies   
FileName = input['FileName']
FormId =  input['FormId']
InterId = input['InterId']
BillNO = input['BillNO']
SendByte = input['SendByte']
post_data = {"data":json.dumps({"FileName":FileName,"FormId":FormId,"IsLast":True,"InterId":InterId,"BillNO":BillNO,"SendByte": SendByte })}

response = requests.post(url=query_url,data=post_data,cookies=login())

sResponseArr = json.loads(response.text)
output = {'res':sResponseArr}

image.png

后续有机会再折腾,现在也不想搞了,走跑路流程了,还揽活干啥 😕