跳到主要内容

商品功能

获取商品数据 minigameApi.getProductsData(params)

基于"人货场"的理念,在初始化时传入了"场",在此通过传入"人"即游戏用户信息来获取"货"即货架商品信息,用于在游戏中展示。

Promise 方式:

// 获取商品数据
minigameApi.getProductsData({
game_openid: '1018553529511732',
role_id: '1555629938',
server_id: 'server_001'
})
.then(data => {
console.log('获取商品数据成功:', data);
// data 包含: { products: ProductItem[] }
})
.catch(error => {
console.log('获取商品数据失败:', error);
});

// 使用 async/await
async function handleGetProducts() {
try {
const result = await minigameApi.getProductsData({
game_openid: '1018553529511732',
role_id: '1555629938',
server_id: 'server_001'
});
console.log('商品数据:', result.products);
} catch (error) {
console.log('获取商品失败:', error);
}
}

参数说明

参数类型必填描述
game_openidstring游戏用户 ID
role_idstring角色 ID
server_idstring游戏分区ID

ProductItem 类型

interface ProductItem {
product_id: string; // midasbuy 内部的物品 ID
game_product_id: string; // 业务侧的物品 ID
quantity: number; // 游戏币或道具数量 (结合物品类型)
product_type: 'currency' | 'item'; // 物品类型:currency(游戏币) 或 item(道具)
product_icon: string; // 物品图片URL
name: string; // 物品名称
price_info: {
price: string; // 当前价格,如:'69.99'
original_price: string; // 原价,如:'77.99'
currency: string; // 币种,如:'HKD'
display_price: string; // 展示价格(含币种),如:'69.99 HKD'
display_original_price: string; // 展示原价(含币种),如:'77.99 HKD'
};
bonus: {
virtual_currency_quantity: number; // 赠送游戏币数量
virtual_item_list: { // 赠送道具物品列表
product_id: string; // 赠送的道具对应的 midasbuy 内部的物品 ID
game_product_id: string; // 赠送的道具对应的业务侧的物品 ID
name: string; // 赠送道具名称
quantity: number; // 赠送道具数量
icon: string; // 赠送道具图片URL
}[];
};
meta: any; // 货架处理前的源数据,一般无需关注
}

product_idgame_product_id 一般是一一对应的

ProductItem示例:

const exampleProduct: ProductItem = {
product_id: "600_coins_vip",
game_product_id: "600_coins",
quantity: 600,
product_type: "currency",
product_icon: "https://cdn.midasbuy.com/images/apps/pubgm/1599546041426W8hmErMS.png",
name: "600 UnknownCash",
price_info: {
price: "69.99",
original_price: "77.99",
currency: "HKD",
display_price: "69.99 HKD",
display_original_price: "77.99 HKD"
},
bonus: {
virtual_currency_quantity: 60,
virtual_item_list: [
{
product_id: "MP_DEFAULT_MOBILE_COIN",
game_product_id: "MP_DEFAULT_MOBILE_COIN",
name: "Event Voucher (Use in event)",
quantity: 1,
icon: "https://cdn.midasbuy.com/images/4113%20%281%29.2c5fa435.png"
}
]
},
meta: { /* 原始货架数据 */ }
};

meta 是货架处理前的源数据,一般无需关注。类型参考 https://midasbuy-develop.pages.woa.com/master/%E5%BE%AE%E6%9C%8D%E5%8A%A1%E4%BB%8B%E7%BB%8D/%E8%B4%A7%E6%9E%B6%E6%9C%8D%E5%8A%A1/3.%20%E5%8D%8F%E8%AE%AE%E8%AE%BE%E8%AE%A1/%E8%B4%A7%E6%9E%B6%E6%9C%8D%E5%8A%A1%E5%8D%8F%E8%AE%AE/#shelfproduct

ProductsResult 类型

interface ProductsResult {
products: ProductItem[]; // 商品项目数组
}