4.0 KiB
4.0 KiB
接口应在服务端调用,不可在前端(小程序、网页、APP等)直接调用。具体可参考接口接入指南。
接口英文名:UploadPic
本接口用于上传图片信息。使用Form表单形式提交这些参数
1、调用方式
HTTPS调用
POST <font style="color:rgb(52, 64, 84);">/api/app/upload</font>
2、请求参数
请求体 <font style="color:rgb(34, 34, 34);">Request Payload</font>
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| version | string | 否 | 版本号,服务商可自由定义 |
| reqSerialNo | string | 是 | 请求流水号(yyyyMMddHHmmssSSSXXXXX,其中 XXXXX为5位顺序号,禁止使用UUID等无意义数据) |
| sign | string | 是 | 签名 |
| media | File | 是 | 图片文件 |
3、返回参数
返回体 <font style="color:rgb(34, 34, 34);">Response Payload</font>
| 参数名 | 类型 | 说明 |
|---|---|---|
| respCode | string | 200是成功,其他值就是失败 |
| respMsg | string | 接口返回的信息,成功返回null |
| reqSerialNo | string | 接口请求流水号 |
| version | string | 接口版本 |
| data | object | 图片地址 |
data响应参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| photoUrl | string | 图片地址。 图片上传成功后,该图片保存在交易中心中的地址。 注:其他相关接口需要提供图片文件地址时,直接使用该地址即可。 |
4、注意事项
1、content-type格式为multipart/form-data
5、代码示例
请求参数:
{
"version": "1.0",
"reqSerialNo": "20221013152000",
"sign":"OWJmY2Q4OTQ1NDFhOTE4YzkxOWVhNTI2NGQ4MTE0ODM=",
"media":File
}
python示例:
import requests
import hashlib
import base64
import datetime
import json
import os
##定义流水号生成方法
def reqSerialNo():
now = datetime.datetime.now()
order_id = now.strftime("%Y-%m-%d-%H-%M-%S").replace("-", "")
return order_id
def get_image_files(directory):
"""获取指定目录及其子目录中的所有图片文件"""
image_extensions = {'.jpg', '.jpeg', '.png', '.gif', '.bmp', '.tiff', '.webp', '.ico'}
image_files = []
for root, dirs, files in os.walk(directory):
for file in files:
ext = os.path.splitext(file)[1].lower()
if ext in image_extensions:
image_files.append(os.path.join(root, file))
return image_files
##服务商参数
path = r"D:\Document" ## 这里图片保存的路径
img = "picture.png"
print(img)
file_name=os.path.join(img) ## 这里图片的名称
request_url="http://localhost:19001/api/app/upload" ## 这里填写请求的接口地址
token="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJJc1BheSI6IlRydWUiLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1laWRlbnRpZmllciI6ImQ1ZTc3MzE2LTVjNWEtNDQ3OC1iZjZhLTQ2OWU2ODNlZDMyYyIsIm5iZiI6MTc2NzA3NDUwNywiZXhwIjoxNzY3MTYwOTA3fQ.YxjyLi_f4kiluQGZBmfjteKokaPyzk1QkrrvgazErwc"
file_md5 = hashlib.md5(open(file_name,'rb').read()).hexdigest()
files = {'media': open(file_name,'rb'),}
body = {
"reqSerialNo" : "2025121316252900001",
"sign" : "MDc5NDNmMTE5ZjM2OTBhNjliYjk5MGUzYjllMjNiMTI="
}
headers = {
"Authorization": f"Bearer {token}"
}
files = {'media': open(file_name,'rb'),}
req = requests.post(url=request_url, data=body,files=files,headers=headers) ## 注:python的request请求在做post请求时会自动加上Content-Type: multipart/form-data;boundary=${bound},因此本处可不填写headers
print(req.text)
返回参数:
{
"respCode": "200",//200是成功,其他值就是失败
"respMsg": "string",
"reqSerialNo": "string",
"version": "string",
"data": {
"photoUrl": "string"
}
}