云价签产品提供开发使用的SDK库,用户通过标准阿里云 POP 调用就可方便的使用该SDK库操作云价签。
使用SDK库前,用户需要确定调用SDK库的AK密钥对,请参见系统搭建步骤4。以下以JAVA SDK为例,展示通过SDK导入商品库的过程。
建议通过阿里云提供的Credentials工具,实现以非AK硬编码的方式访问阿里云OpenAPI,具体使用方式可以参照Credentials工具身份验证,此方案仅为建议方案,需要用户安装阿里云Credentials工具才能支持,用户也可以选择自由优化的安全方案来使用AK。
POM依赖
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.5.1</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-cloudesl</artifactId>
<version>2.0.8</version>
</dependency>
代码示例
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.cloudesl.model.v20200201.BatchInsertItemsRequest;
import com.aliyuncs.cloudesl.model.v20200201.BatchInsertItemsResponse;
import com.aliyuncs.cloudesl.model.v20200201.DescribeItemsRequest;
import com.aliyuncs.cloudesl.model.v20200201.DescribeItemsResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import java.util.ArrayList;
import java.util.List;
public class EslPopTest {
/**
* POP客户端
*/
private DefaultAcsClient client;
/**
* 门店ID
*/
private String storeId = "";
/**
* 初始化POP客户端
*/
public void init(){
String regionId = "cn-hangzhou";
/**
* accessKey请在阿里云官网生成
* 使用默认凭证初始化Credentials Client。
*/
com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client();
String accessKeyId = credentialClient.getAccessKeyId();
String accessKeySecret = credentialClient.getAccessKeySecret();
/**
* 封装需要的参数
*/
DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);
/**
* 手动设置Endpoint
*/
DefaultProfile.addEndpoint(regionId,"cloudesl","cloudesl.cn-hangzhou.aliyuncs.com");
/**
* 创建pop客户端
*/
client = new DefaultAcsClient(profile);
}
/**
* 新增商品
*/
public void insertItem() {
/**
* 调用前先初始化POP客户端
*/
init();
/**
* 准备参数
*/
List<BatchInsertItemsRequest.ItemInfo> itemInfos = new ArrayList<BatchInsertItemsRequest.ItemInfo>();
/**
* 商品对象
*/
BatchInsertItemsRequest.ItemInfo itemInfo = new BatchInsertItemsRequest.ItemInfo();
//商品条形码
itemInfo.setItemBarCode("");
//商品Id 只支持数字
itemInfo.setItemId("");
//商品标题
itemInfo.setItemTitle("");
//计价单位
itemInfo.setPriceUnit("");
//销售价格
itemInfo.setActionPrice();
//商品规格
itemInfo.setSaleSpec("");
/**
* 上面6个为必填参数,其他是选填参数,不再一一列举,可以根据情况自行选择填写
*/
//产地
itemInfo.setProductionPlace("");
//是否促销
itemInfo.setBePromotion();
//促销开始时间,请使用UTC时间
itemInfo.setPromotionStart("2020-02-01T08:00:00Z");
//促销结束时间,请使用UTC时间
itemInfo.setPromotionEnd("2020-02-02T08:00:00Z");
// 是否会员
itemInfo.setBeMember(false);
// 是否溯源
itemInfo.setBeSourceCode(false);
// 库存状态 缺货-OUT_OF_STOCK 正常-NORMAL
itemInfo.setInventoryStatus("NORMAL");
// 自定义模板
itemInfo.setTemplateSceneId("");
/**
* 商品对象1
*/
BatchInsertItemsRequest.ItemInfo itemInfo1 = new BatchInsertItemsRequest.ItemInfo();
itemInfo1.setItemBarCode("");
itemInfo1.setItemId("");
itemInfo1.setItemTitle("");
itemInfo1.setPriceUnit("");
itemInfo1.setActionPrice();
itemInfo1.setSaleSpec("");
/**
* 放入集合中,批量插入每次最多100条
*/
itemInfos.add(itemInfo);
itemInfos.add(itemInfo1);
/**
* 创建请求对象,为属性赋值
*/
BatchInsertItemsRequest request = new BatchInsertItemsRequest();
/**
* 批量插入强制使用POST请求
*/
request.setSysMethod(MethodType.POST);
request.setStoreId(storeId);
request.setItemInfos(itemInfos);
/**
* 请求时加上以下两个参数,可以获取中文错误码
*/
request.putQueryParameter("AcceptLanguage","zh-CN");
request.putQueryParameter("Code","apiDynamicErrorCode");
try {
/**
* 发送请求
*/
BatchInsertItemsResponse acsResponse = client.getAcsResponse(request);
/**
* 处理响应结果
*/
if (acsResponse.getSuccess()) {
List<BatchInsertItemsResponse.BatchResult> batchResults = acsResponse.getBatchResults();
if (null != batchResults && batchResults.size() > 0) {
batchResults.forEach(System.out::println);
}
}
} catch (ClientException e) {
//打印错误信息
System.out.println("POP调用失败,ErrorMessage:" + e.getErrorDescription());
}
}
/**
* 查询商品
*/
public void describeItems() {
//调用前先初始化POP客户端
init();
//准备参数
DescribeItemsRequest request = new DescribeItemsRequest();
//门店Id
request.setStoreId(storeId);
//页码
request.setPageNumber(1);
//每页多少条
request.setPageSize(10);
//请求时加上以下两个参数,可以获取中文错误码
request.putQueryParameter("AcceptLanguage","zh-CN");
request.putQueryParameter("Code","apiDynamicErrorCode");
try {
//发送请求
DescribeItemsResponse acsResponse = client.getAcsResponse(request);
//处理响应结果
if (acsResponse.getSuccess()) {
List<DescribeItemsResponse.ItemInfo> items = acsResponse.getItems();
if (null != items) {
System.out.println(acsResponse.getRequestId());
items.forEach(System.out::println);
}
}
} catch (ClientException e) {
//打印错误信息
System.out.println("POP调用失败,ErrorMessage:" + e.getErrorDescription());
}
}
}
重要
在request 里和itemInfo 里加上 storeId。
request 要设置为 POST 方法调用。
文档内容是否对您有帮助?