CodeSample小助手 2019-12-31
阿里云用户在购买或开通产品后会在阿里云生成订单记录, 订单是瞬时行为,也就是一次业务行为就会产生一笔订单。如下图所示,构成订单的主要因素包括订单基本信息、产品信息、支付信息和业务动作这四部分。
您可以通过阿里云开放的费用中心接口,实现以下需求:
一个自然人或组织在阿里云可以申请多个阿里云账号,每个阿里云账号可以根据需要创建多个订单,但每一个订单都会对应到一个具体的云产品,具体架构如下图所示:
API名称 | 说明 |
---|---|
QueryProductList | 查询阿里云产品:包含产品名称以及对应信息。 |
QueryOrders | 查询用户所有订单的列表:包含订单号、产品和创建时间等。 |
GetOrderDetail | 查询用户某个订单详情信息:包含订单号、产品类型和创建时间等。 |
CancelOrder | 取消用户未支付订单。 |
在调用API查询订单数据之前,您需要获取访问密钥(AccessKey)。请登录AccessKey管理控制台,创建AccessKey,或者联系系统管理员获取授权账号。
以下示例代码展示了通过调用QueryOrders接口查询订单,获取产品下单/开通的时间信息。
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import com.google.gson.Gson;
import com.aliyuncs.bssopenapi.model.v20171214.*;
public class BssOpenApiDemo {
public static void main(String[] args) {
try {
// 给BssOpenApi产品添加默认region路由信息
DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", "BssOpenApi", "business.aliyuncs.com");
// 中国站产品的调用,统一调用cn-hangzhou地域
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "", "");
IAcsClient client = new DefaultAcsClient(profile);
QueryOrdersRequest request = new QueryOrdersRequest();
QueryOrdersResponse response = client.getAcsResponse(request);
System.out.println(new Gson().toJson(response));
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
System.out.println("ErrCode:" + e.getErrCode());
System.out.println("ErrMsg:" + e.getErrMsg());
System.out.println("RequestId:" + e.getRequestId());
}
}
}
以下示例代码展示了通过调用GetOrderDetail接口查询订单,获取某产品下单/开通的费用及支付信息。也可以通过查询订单详情,获取已下单/开通某产品对应的详细信息,比如:产品配置信息,数量和实例ID。
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import com.google.gson.Gson;
import com.aliyuncs.bssopenapi.model.v20171214.*;
public class BssOpenApiDemo {
public static void main(String[] args) {
try {
// 给BssOpenApi产品添加默认region路由信息
DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", "BssOpenApi", "business.aliyuncs.com");
// 中国站产品的调用,统一调用cn-hangzhou地域
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "", "");
IAcsClient client = new DefaultAcsClient(profile);
GetOrderDetailRequest request = new GetOrderDetailRequest();
GetOrderDetailResponse response = client.getAcsResponse(request);
System.out.println(new Gson().toJson(response));
}catch (ServerException e){
e.printStackTrace();
}catch (ClientException e) {
System.out.println("ErrCode:" + e.getErrCode());
System.out.println("ErrMsg:" + e.getErrMsg());
System.out.println("RequestId:" + e.getRequestId());
}
}
}
以下示例代码展示了通过调用CancelOrder接口释放未支付订单。
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import com.google.gson.Gson;
import com.aliyuncs.bssopenapi.model.v20171214.*;
public class BssOpenApiDemo {
public static void main(String[] args) {
try {
// 给BssOpenApi产品添加默认region路由信息
DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", "BssOpenApi", "business.aliyuncs.com");
// 中国站产品的调用,统一调用cn-hangzhou地域
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "", "");
IAcsClient client = new DefaultAcsClient(profile);
CancelOrderRequest request = new CancelOrderRequest();
CancelOrderResponse response = client.getAcsResponse(request);
System.out.println(new Gson().toJson(response));
}catch (ServerException e){
e.printStackTrace();
}catch (ClientException e){
System.out.println("ErrCode:" + e.getErrCode());
System.out.println("ErrMsg:" + e.getErrMsg());
System.out.println("RequestId:" + e.getRequestId());
}
}
}