接口应在服务端调用，不可在前端（小程序、网页、APP等）直接调用。具体可参考[接口接入指南](https://www.yuque.com/shunchenghuichuang/iasgxw/lw3ftk64nq0f2gsg)。

接口英文名：UploadPic

<font style="color:rgb(34, 34, 34);">本接口用于上传图片信息</font>。使用Form表单形式提交这些参数

## 1、调用方式
### HTTPS调用
`POST   <font style="color:rgb(52, 64, 84);">/api/app/upload</font>`

## 2、请求参数
### <font style="color:rgb(34, 34, 34);">请求体 </font>`<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);">返回体 </font>`<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 | 图片地址。<br/>图片上传成功后，该图片保存在交易中心中的地址。<br/><font style="color:#E8323C;">注：其他相关接口需要提供图片文件地址时，直接使用该地址即可。</font> |


## 4、注意事项
1、content-type格式为multipart/form-data

## 5、代码示例
请求参数：

```json
{
"version": "1.0",
"reqSerialNo": "20221013152000",
"sign":"OWJmY2Q4OTQ1NDFhOTE4YzkxOWVhNTI2NGQ4MTE0ODM=",
"media":File
}
```



python示例：

```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)
```



返回参数：

```json
{
    "respCode": "200",//200是成功，其他值就是失败
    "respMsg": "string",
    "reqSerialNo": "string",
    "version": "string",
    "data": {
        "photoUrl": "string"
    }
}
```
