通用场景
系统商需要先将商户需要使用的图片和视频,上传支付宝服务器,生成对应的图片id后才能够在口碑平台上配置相应图片
1 公共请求参数
参数 | 类型 | 是否必选 | 最大长度 | 描述 | 示例值 |
---|---|---|---|---|---|
app_id | string | 必选 | 32 | 支付宝分配给开发者的应用id | 2014072300007148 |
method | string | 必选 | 128 | 接口名称 | alipay.offline.material.image.upload |
format | string | 可选 | 40 | 仅支持json | json |
charset | string | 必选 | 10 | 请求使用的编码格式,如utf-8,gbk,gb2312等 | utf-8 |
sign_type | string | 必选 | 10 | 商户生成签名字符串所使用的签名算法类型,目前支持rsa2和rsa,推荐使用rsa2 | rsa2 |
sign | string | 必选 | 344 | 商户请求参数的签名串,详见签名 | 详见示例 |
timestamp | string | 必选 | 19 | 发送请求的时间,格式"yyyy-mm-dd hh:mm:ss" | 2014-07-24 03:07:50 |
version | string | 必选 | 3 | 调用的接口版本,固定为:1.0 | 1.0 |
app_auth_token | string | 可选 | 40 | 详见应用授权概述 |
2 请求参数
参数中文名 | 参数英文名 | 类型 | 是否必选 | 最大长度 | 描述 | 示例值 |
---|---|---|---|---|---|---|
图片/视频格式 | image_type | string | 必选 | 8 | 图片/视频格式 | jpg或mp4 |
图片/视频名称 | image_name | string | 必选 | 128 | 图片/视频名称 | 海底捞 |
图片内容 | image_content | byte_array | 必选 | 5242880 | 图片/视频二进制内容,图片/视频大小不能超过5m | - |
所属pid | image_pid | string | 可选 | 16 | 用于显示指定图片/视频所属的partnerid(支付宝内部使用,外部商户无需填写此字段) | 2088021822217233 |
3 公共响应参数
参数 | 类型 | 是否必选 | 最大长度 | 描述 | 示例值 |
---|---|---|---|---|---|
code | string | 必选 | - | 网关返回码, | 40004 |
msg | string | 必选 | - | 网关返回码描述, | business failed |
sub_code | string | 可选 | - | 业务返回码,参见具体的api接口文档 | acq.trade_has_success |
sub_msg | string | 可选 | - | 业务返回码描述,参见具体的api接口文档 | 交易已被支付 |
sign | string | 必选 | - | 签名, | dzxh8eetuahoye3w1j poiphfdxoybfunn1lket/v7p4zjdyojwea6izs6hz0ydw5cp/viufub5i0/v5wens3oyr8zredqo6d futdlhdc efyckiqhbxizgngpdpdfp1pis7bdhhzrszhbrqb7o4k3dxc aanfauu4v6zdwczo= |
4 响应参数
参数中文名 | 参数英文名 | 类型 | 是否必选 | 最大长度 | 描述 | 示例值 |
---|---|---|---|---|---|---|
图片id | image_id | string | 必选 | 32 | 图片/视频在商家中心的唯一标识 | hotq1lt1ttojcxgflvnuxgaaacmaaqed |
图片/视频的访问地址 | image_url | string | 必选 | 512 | 图片/视频的访问地址(为了防止盗链,该地址不允许嵌在其他页面展示,只能在新页面展示) | http://dl.django.t.taobao.com/rest/1.0/image?fileids=v9rfg69ssimlzg5wda3yegaaacma... |
5 请求示例
java
c#
php
http
package com.java.sdk.demo;
import com.alipay.api.alipayapiexception;
import com.alipay.api.alipayclient;
import com.alipay.api.defaultalipayclient;
import com.alipay.api.certalipayrequest;
import com.alipay.api.alipayconfig;
import com.alipay.api.response.alipayofflinematerialimageuploadresponse;
import com.alipay.api.request.alipayofflinematerialimageuploadrequest;
import com.alipay.api.fileitem;
import java.util.base64;
import java.util.arraylist;
import java.util.list;
public class alipayofflinematerialimageupload {
public static void main(string[] args) throws alipayapiexception {
string privatekey = "<-- 请填写您的应用私钥,例如:miievqibadanb ... ... -->";
string alipaypublickey = "<-- 请填写您的支付宝公钥,例如:miibijanbg... -->";
alipayconfig alipayconfig = new alipayconfig();
alipayconfig.setserverurl("https://openapi.alipay.com/gateway.do");
alipayconfig.setappid("<-- 请填写您的appid,例如:2019091767145019 -->");
alipayconfig.setprivatekey(privatekey);
alipayconfig.setformat("json");
alipayconfig.setalipaypublickey(alipaypublickey);
alipayconfig.setcharset("utf8");
alipayconfig.setsigntype("rsa2");
alipayclient alipayclient = new defaultalipayclient(alipayconfig);
// 这是一个1x1像素的图片流
string imagebase64 = "ivborw0kggoaaaansuheugaaaaoaaaakcayaaacnms 9aaaaeuleqvr42mp4tyrggfvix4uai/uoggwvneqaaaaasuvork5cyii=";
// 下列fileitem中也可用直接读取本地文件的方式来获取文件
// fileitem imagecontent = new fileitem("本地文件的绝对路径");
alipayofflinematerialimageuploadrequest request = new alipayofflinematerialimageuploadrequest();
request.setimagename("海底捞");
fileitem imagecontent = new fileitem("imagecontent.jpg", base64.getdecoder().decode(imagebase64));
request.setimagecontent(imagecontent);
request.setimagepid("2088021822217233");
request.setimagetype("jpg或mp4");
alipayofflinematerialimageuploadresponse response = alipayclient.execute(request);
system.out.println(response.getbody());
if (response.issuccess()) {
system.out.println("调用成功");
} else {
system.out.println("调用失败");
// sdk版本是"4.38.0.all"及以上,可以参考下面的示例获取诊断链接
// string diagnosisurl = diagnosisutils.getdiagnosis;
// system.out.println(diagnosisurl);
}
}
}
6 响应示例
json
xml
{
"alipay_offline_material_image_upload_response": {
"code": "10000",
"msg": "success",
"image_id": "hotq1lt1ttojcxgflvnuxgaaacmaaqed",
"image_url": "http://dl.django.t.taobao.com/rest/1.0/image?fileids=v9rfg69ssimlzg5wda3yegaaacma..."
},
"sign": "eritjkeijkjhkkkkkkkhjereeeeeeeeeee"
}
说明:本示例仅供参考。
7 异常示例
json
{
"alipay_offline_material_image_upload_response": {
"code": "20000",
"msg": "service currently unavailable",
"sub_code": "isp.unknow-error",
"sub_msg": "系统繁忙"
},
"sign": "eritjkeijkjhkkkkkkkhjereeeeeeeeeee"
}
8 错误码
8.1 公共错误码
8.2 业务错误码
错误码 | 错误描述 | 凯发app官方网站的解决方案 |
---|---|---|
isv.invalid-arguments | 接口输入参数不合法 | 检查并更改输入参数 |
isv.exceed-max-size | 超过单个图片允许的最大值 (5m) | 请适当压缩图片大小以免超过上传限
制 |
isv.unknown-fomat | 文件格式不支持 | 请不要使用非常用的图片格式,如cmyk |
isv.image-unsafe | 文件未通过安全校验 | 图片中可能注入了恶意代码,请重新制作图片 |
isv.unknown-error | 未知异常 | 请重试 |
invalid_param | 接口输入参数不合法 | 检查并更改输入参数 |
system_error | 系统异常,操作失败 | 请重试 |
exceed_max_size | 图片/视频大小不得超过5m/50m,请压缩后上传 | 请适当压缩图片/视频大小以免超过上传限制 |
unknown_format | 上传失败,只支持bmp,png,jpeg,jpg,gif格式的图片和mp4格式的视频 | 请不要使用非常用的图片/视频格式,如cmyk |
invalid_file_bytes | 上传失败,上传文件非图片/视频类型 | 请确保文件字节流为图片/视频文件(不包括cmyk格式的图片) |
capacity_exceeded | 上传失败,单个商户最多添加5000张图片/视频 | 请删除该商户不再需要的图片/视频后再上传 |