在 Shopee 平台上,商品详情 API 是开发者获取商品信息的常用接口。通过调用该 API,可以获取商品的标题、价格、库存、描述、图片等详细信息。以下是一个基于 Java 的示例代码,展示如何调用 Shopee 商品详情 API,并对返回结果进行说明。
1. Shopee 商品详情 API 概述
1.1 接口功能
获取指定商品的详细信息,包括:
- 商品标题
- 商品价格
- 商品库存
- 商品描述
- 商品图片
- 商品分类
- 商品评分等
1.2 接口地址
https://api.shopee.com/v2/item/get
1.3 请求参数
参数名
类型
是否必填
说明
item_id
long
是
商品 ID
partner_id
long
是
合作伙伴 ID
shopid
long
是
店铺 ID
timestamp
long
是
请求时间戳(秒级)
sign
string
是
请求签名
1.4 返回结果
返回结果为 JSON 格式,包含商品详细信息。主要字段如下:
item: 商品详细信息对象item_id: 商品 IDitem_name: 商品名称price: 商品价格stock: 商品库存description: 商品描述images: 商品图片列表categories: 商品分类信息rating: 商品评分
2. Java 示例代码
以下是一个使用 Java 调用 Shopee 商品详情 API 的示例代码:
2.1 依赖库
使用 HttpURLConnection 发送 HTTP 请求,并使用 JSONObject 解析返回的 JSON 数据。确保项目中包含 org.json 库。
Maven 依赖:
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20231013</version>
</dependency>
2.2 示例代码
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.util.Base64;
public class ShopeeItemDetailAPI {
// API 地址
private static final String API_URL = "https://api.shopee.com/v2/item/get";
// 合作伙伴 ID 和密钥
private static final long PARTNER_ID = 123456; // 替换为你的合作伙伴 ID
private static final String PARTNER_KEY = "your_partner_key"; // 替换为你的合作伙伴密钥
public static void main(String[] args) {
try {
// 商品 ID 和店铺 ID
long itemId = 123456789; // 替换为目标商品 ID
long shopId = 987654321; // 替换为目标店铺 ID
// 获取商品详情
JSONObject itemDetail = getItemDetail(itemId, shopId);
System.out.println("商品详情: " + itemDetail.toString(2)); // 格式化输出
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取商品详情
*/
private static JSONObject getItemDetail(long itemId, long shopId) throws Exception {
// 构造请求参数
long timestamp = System.currentTimeMillis() / 1000; // 秒级时间戳
String sign = generateSign(itemId, shopId, timestamp); // 生成签名
// 构造请求 URL
String requestUrl = API_URL + "?item_id=" + itemId +
"&shopid=" + shopId +
"&partner_id=" + PARTNER_ID +
"×tamp=" + timestamp +
"&sign=" + sign;
// 发送 HTTP GET 请求
URL url = new URL(requestUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
// 读取响应
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder response = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
response.append(line);
}
reader.close();
// 解析 JSON 响应
return new JSONObject(response.toString());
}
/**
* 生成请求签名
*/
private static String generateSign(long itemId, long shopId, long timestamp) throws Exception {
String baseString = PARTNER_ID + "/v2/item/get" + timestamp + itemId + shopId + PARTNER_KEY;
MessageDigest digest = MessageDigest.getInstance("SHA-256");
byte[] hash = digest.digest(baseString.getBytes(StandardCharsets.UTF_8));
return Base64.getEncoder().encodeToString(hash);
}
}
3. 返回结果说明
假设调用成功,返回的 JSON 数据格式如下:
{
"item": {
"item_id": 123456789,
"item_name": "示例商品",
"price": 1999,
"stock": 100,
"description": "这是一个示例商品描述。",
"images": [
"https://example.com/image1.jpg",
"https://example.com/image2.jpg"
],
"categories": [
{
"category_id": 1,
"category_name": "电子产品"
}
],
"rating": 4.5
}
}
主要字段说明:
item_id: 商品 ID。item_name: 商品名称。price: 商品价格(单位:分)。stock: 商品库存。description: 商品描述。images: 商品图片 URL 列表。categories: 商品分类信息。rating: 商品评分(0-5 分)。
4. 注意事项
- 签名生成:签名是请求的关键部分,确保使用正确的合作伙伴密钥和时间戳。
- 错误处理:在实际应用中,建议添加错误处理逻辑,以应对网络异常或 API 返回错误的情况。
- API 权限:确保你的合作伙伴 ID 和密钥具有访问商品详情 API 的权限。
通过以上示例代码和说明,可以轻松调用 Shopee 商品详情 API 并解析返回结果。如果有进一步的需求或问题,欢迎随时提问和联系!