在应用开发过程中,开发者会涉及到在开放产品中需要使用图片资源的场景,对于一般用途的图片(一般用途图片指不涉及如营业执照等含商户敏感信息的图片),开放平台提供了对应接口能力,使开发者可以通过上传图片资源获取对应的资源使用ID和链接。
要在您的应用中使用支付宝开放产品的接口能力,您需要先去蚂蚁金服开放平台(open.alipay.com),在管理中心中创建登记您的应用,并提交审核,审核通过后会为您生成应用唯一标识(APPID),并且可以申请开通开放产品使用权限,通过APPID您的应用才能调用开放产品的接口能力。需要详细了解开放平台创建应用步骤请参考《开放平台应用创建指南》。
开发者调用接口前需要先生成RSA密钥,RSA密钥包含应用私钥(APP_PRIVATE_KEY)、应用公钥(APP_PUBLIC_KEY)。生成密钥后在开放平台管理中心进行密钥配置,配置完成后可以获取支付宝公钥(ALIPAY_PUBLIC_KEY)。详情请参考《配置应用环境》
1. 下载服务端SDK
为了帮助开发者调用开放接口,我们提供了开放平台服务端SDK,包含JAVA、PHP和.NET三个语言版本,封装了签名&验签、HTTP接口请求等基础功能。请先下载对应语言版本的SDK并引入您的开发工程。
各语言版本服务端SDK详细使用说明,请参考《服务端SDK说明》
2. 接口调用配置
在SDK调用前需要进行初始化,以Java代码为示例如下:
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",APP_ID,APP_PRIVATE_KEY,"json","GBK",ALIPAY_PUBLIC_KEY);
关键参数说明:
- https://openapi.alipay.com/gateway.do 线上支付宝开放平台网关(固定)
- APP_ID 即创建应用后生成,获取见上面“第一步:创建应用”
- APP_PRIVATE_KEY 获取详见上面“第二步:密钥配置”
- ALIPAY_PUBLIC_KEY 获取详见上面“第二步:密钥配置”
一般用途图片资料上传产品包含以下接口:
接口英文名 | 接口中文名 | API文档 |
---|---|---|
alipay.offline.material.image.upload |
图片上传接口 |
用于上传图片资源,获取图片资源ID和图片访问连接 |
接口调用示例大致分为3步:
接口调用实例
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2"); AlipayOfflineMaterialImageUploadRequest alipayRequest = new AlipayOfflineMaterialImageUploadRequest(); alipayRequest.setImageType("jpg"); //图片类型,当前支持bmp,png,jpeg,jpg,gif 5个类型 alipayRequest.setImageName("图片名称"); FileItem ImageContent = new FileItem("c:/test.jpg"); //图片文件路径,Windows请填写绝对路径,不支持相对路径;Linux支持相对路径 alipayRequest.setImageContent(ImageContent); AlipayOfflineMaterialImageUploadResponse alipayResponse = alipayClient.execute(alipayRequest); //alipayResponse.getImageId() 获取图片资源ID //alipayResponse.getImageUrl() 获取图片访问链接
如果创建成功 alipayResponse.getCode() 可以获取结果码10000,结果码和错误码请参考本文结果码说明章节。通过alipayResponse.getImageId() 获取图片资源ID,图片资源ID在开放平台部分接口中会用到,开发者也可以通过alipayResponse.getImageUrl() 获取图片访问链接来访问图片。
获取接口处理结果代码示例
System.out.println(alipayResponse.getCode()); // 获取接口结果码 System.out.println(alipayResponse.getSubCode()); // 当接口调用失败后,获取子错误码 System.out.println(alipayResponse.getMsg()); // 获取子错误描述 System.out.println(alipayResponse.getBody()); // 获取完整的返回报文
同步返回结果码 | 含义 | 说明 |
---|---|---|
10000 |
业务处理成功 |
|
40001~40006 |
业务处理失败 |
具体失败原因请参考公共错误码。其它请参考API文档。 |
20000 |
业务出现未知错误或者系统异常 |
业务出现未知错误或者系统异常 |
接口英文名 | 接口中文名 | API文档 |
---|---|---|
alipay.offline.material.image.upload |
图片上传接口 |
本接口及文档资料由口碑提供。您使用本接口,需要遵守开放平台相关协议及口碑要求。