1
0
mirror of synced 2026-10-08 07:46:22 +08:00

🆕 #4027 【视频号】实现微信小店带货助手相关接口

This commit is contained in:
Copilot
2026-07-11 17:43:49 +08:00
committed by GitHub
parent b0b3211d9e
commit 83d7744425
14 changed files with 763 additions and 0 deletions

View File

@@ -189,4 +189,11 @@ public interface WxChannelService extends BaseWxChannelService {
*/
WxChannelQicService getQicService();
/**
* 微信小店-带货助手服务
*
* @return 带货助手服务
*/
WxTalentService getTalentService();
}

View File

@@ -0,0 +1,56 @@
package me.chanjar.weixin.channel.api;
import me.chanjar.weixin.channel.bean.talent.TalentOrderDetailParam;
import me.chanjar.weixin.channel.bean.talent.TalentOrderDetailResponse;
import me.chanjar.weixin.channel.bean.talent.TalentOrderListParam;
import me.chanjar.weixin.channel.bean.talent.TalentOrderListResponse;
import me.chanjar.weixin.channel.bean.talent.TalentWindowProductDetailParam;
import me.chanjar.weixin.channel.bean.talent.TalentWindowProductDetailResponse;
import me.chanjar.weixin.channel.bean.talent.TalentWindowProductListParam;
import me.chanjar.weixin.channel.bean.talent.TalentWindowProductListResponse;
import me.chanjar.weixin.common.error.WxErrorException;
/**
* 微信小店-带货助手服务接口
*
* @author <a href="https://github.com/features/copilot">GitHub Copilot</a>
*/
public interface WxTalentService {
/**
* <a href="https://developers.weixin.qq.com/doc/store/talent/openapi/order/api_get_order_list.html">获取佣金单列表</a>
*
* @param param 查询参数
* @return 佣金单列表
* @throws WxErrorException 接口调用异常
*/
TalentOrderListResponse getOrderList(TalentOrderListParam param) throws WxErrorException;
/**
* <a href="https://developers.weixin.qq.com/doc/store/talent/openapi/order/api_get_order_detail.html">获取佣金单详情</a>
*
* @param param 查询参数
* @return 佣金单详情
* @throws WxErrorException 接口调用异常
*/
TalentOrderDetailResponse getOrderDetail(TalentOrderDetailParam param) throws WxErrorException;
/**
* <a href="https://developers.weixin.qq.com/doc/store/talent/openapi/window/api_get_product_list.html">获取达人橱窗商品列表</a>
*
* @param param 查询参数
* @return 橱窗商品列表
* @throws WxErrorException 接口调用异常
*/
TalentWindowProductListResponse getWindowProductList(TalentWindowProductListParam param) throws WxErrorException;
/**
* <a href="https://developers.weixin.qq.com/doc/store/talent/openapi/window/api_get_product_detail.html">获取达人橱窗商品详情</a>
*
* @param param 查询参数
* @return 橱窗商品详情
* @throws WxErrorException 接口调用异常
*/
TalentWindowProductDetailResponse getWindowProductDetail(TalentWindowProductDetailParam param)
throws WxErrorException;
}

View File

@@ -61,6 +61,7 @@ public abstract class BaseWxChannelServiceImpl<H, P> implements WxChannelService
private WxChannelCompassFinderService compassFinderService = null;
private WxChannelLiveDashboardService liveDashboardService = null;
private WxChannelQicService qicService = null;
private WxTalentService talentService = null;
protected WxChannelConfig config;
private int retrySleepMillis = 1000;
@@ -482,4 +483,12 @@ public abstract class BaseWxChannelServiceImpl<H, P> implements WxChannelService
return qicService;
}
@Override
public synchronized WxTalentService getTalentService() {
if (talentService == null) {
talentService = new WxTalentServiceImpl(this);
}
return talentService;
}
}

View File

@@ -0,0 +1,59 @@
package me.chanjar.weixin.channel.api.impl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.channel.api.WxTalentService;
import me.chanjar.weixin.channel.bean.talent.TalentOrderDetailParam;
import me.chanjar.weixin.channel.bean.talent.TalentOrderDetailResponse;
import me.chanjar.weixin.channel.bean.talent.TalentOrderListParam;
import me.chanjar.weixin.channel.bean.talent.TalentOrderListResponse;
import me.chanjar.weixin.channel.bean.talent.TalentWindowProductDetailParam;
import me.chanjar.weixin.channel.bean.talent.TalentWindowProductDetailResponse;
import me.chanjar.weixin.channel.bean.talent.TalentWindowProductListParam;
import me.chanjar.weixin.channel.bean.talent.TalentWindowProductListResponse;
import me.chanjar.weixin.channel.util.ResponseUtils;
import me.chanjar.weixin.common.error.WxErrorException;
import static me.chanjar.weixin.channel.constant.WxChannelApiUrlConstants.Talent.GET_ORDER_DETAIL_URL;
import static me.chanjar.weixin.channel.constant.WxChannelApiUrlConstants.Talent.GET_ORDER_LIST_URL;
import static me.chanjar.weixin.channel.constant.WxChannelApiUrlConstants.Talent.GET_WINDOW_PRODUCT_DETAIL_URL;
import static me.chanjar.weixin.channel.constant.WxChannelApiUrlConstants.Talent.GET_WINDOW_PRODUCT_LIST_URL;
/**
* 微信小店-带货助手服务实现
*
* @author <a href="https://github.com/features/copilot">GitHub Copilot</a>
*/
@RequiredArgsConstructor
@Slf4j
public class WxTalentServiceImpl implements WxTalentService {
/** 微信商店服务 */
private final BaseWxChannelServiceImpl<?, ?> shopService;
@Override
public TalentOrderListResponse getOrderList(TalentOrderListParam param) throws WxErrorException {
String resJson = shopService.post(GET_ORDER_LIST_URL, param);
return ResponseUtils.decode(resJson, TalentOrderListResponse.class);
}
@Override
public TalentOrderDetailResponse getOrderDetail(TalentOrderDetailParam param) throws WxErrorException {
String resJson = shopService.post(GET_ORDER_DETAIL_URL, param);
return ResponseUtils.decode(resJson, TalentOrderDetailResponse.class);
}
@Override
public TalentWindowProductListResponse getWindowProductList(TalentWindowProductListParam param)
throws WxErrorException {
String resJson = shopService.post(GET_WINDOW_PRODUCT_LIST_URL, param);
return ResponseUtils.decode(resJson, TalentWindowProductListResponse.class);
}
@Override
public TalentWindowProductDetailResponse getWindowProductDetail(TalentWindowProductDetailParam param)
throws WxErrorException {
String resJson = shopService.post(GET_WINDOW_PRODUCT_DETAIL_URL, param);
return ResponseUtils.decode(resJson, TalentWindowProductDetailResponse.class);
}
}

View File

@@ -0,0 +1,32 @@
package me.chanjar.weixin.channel.bean.talent;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.io.Serializable;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 带货助手-获取佣金单详情 请求参数
*
* @author <a href="https://github.com/features/copilot">GitHub Copilot</a>
*/
@Data
@NoArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class TalentOrderDetailParam implements Serializable {
private static final long serialVersionUID = 8741285036412736219L;
/** 订单号,可从获取佣金单列表接口获得 */
@JsonProperty("order_id")
private String orderId;
/** 商品skuid,可从获取佣金单列表接口获得 */
@JsonProperty("sku_id")
private String skuId;
/** 订单额外参数【在订单列表里面返回的参数回传】 */
@JsonProperty("special_id")
private String specialId;
}

View File

@@ -0,0 +1,203 @@
package me.chanjar.weixin.channel.bean.talent;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import me.chanjar.weixin.channel.bean.base.WxChannelBaseResponse;
/**
* 带货助手-获取佣金单详情 响应
*
* @author <a href="https://github.com/features/copilot">GitHub Copilot</a>
*/
@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class TalentOrderDetailResponse extends WxChannelBaseResponse {
private static final long serialVersionUID = 2174806923145876312L;
/** 订单基础信息 */
@JsonProperty("base_info")
private BaseInfo baseInfo;
/** 订单佣金信息 */
@JsonProperty("commission_info")
private CommissionInfo commissionInfo;
/** 下单通道信息 */
@JsonProperty("channel_info")
private ChannelInfo channelInfo;
/** 内容推广推客机构信息 */
@JsonProperty("promotion_head_supplier_info")
private PromotionHeadSupplierInfo promotionHeadSupplierInfo;
/** 商品信息 */
@JsonProperty("product_info")
private ProductInfo productInfo;
/** 订单基础信息 */
@Data
@NoArgsConstructor
public static class BaseInfo implements Serializable {
private static final long serialVersionUID = 6382947162830498251L;
/** 订单id */
@JsonProperty("order_id")
private String orderId;
/** 商品spuid */
@JsonProperty("spu_id")
private String spuId;
/** 商品skuid */
@JsonProperty("sku_id")
private String skuId;
/** 特殊id【针对本地生活】 */
@JsonProperty("special_id")
private String specialId;
/**
* 订单状态:1=待支付, 2=待发货, 3=已发货, 4=已收货, 5=售后中, 6=已完成, 7=已取消, 8=已退款, 9=部分退款, 10=待使用
*/
@JsonProperty("order_status")
private Integer orderStatus;
/** 实际支付金额【单位:分】 */
@JsonProperty("actual_payment")
private String actualPayment;
/** 订单创建时间 */
@JsonProperty("order_create_time")
private Long orderCreateTime;
/** 订单更新时间 */
@JsonProperty("order_update_time")
private Long orderUpdateTime;
/** 下单用户 */
@JsonProperty("buyer_info")
private BuyerInfo buyerInfo;
/** 订单支付时间 */
@JsonProperty("order_pay_time")
private Long orderPayTime;
/** 订单的分佣基数【单位:分】 */
@JsonProperty("settle_payment")
private String settlePayment;
}
/** 下单用户信息 */
@Data
@NoArgsConstructor
public static class BuyerInfo implements Serializable {
private static final long serialVersionUID = 4729638451027364819L;
/** 下单用户的openid */
@JsonProperty("open_id")
private String openId;
/** 下单用户的unionid */
@JsonProperty("union_id")
private String unionId;
}
/** 订单佣金信息 */
@Data
@NoArgsConstructor
public static class CommissionInfo implements Serializable {
private static final long serialVersionUID = -3819264037182640581L;
/** 佣金单状态:1=待结算, 2=已结算, 3=取消结算, 4=结算异常 */
@JsonProperty("state")
private Integer state;
/** 佣金比例 */
@JsonProperty("ratio")
private String ratio;
/** 预期结算时间 */
@JsonProperty("expect_settle_time")
private Long expectSettleTime;
/** 预期结算金额 */
@JsonProperty("expect_settlement")
private String expectSettlement;
/** 实际结算时间 */
@JsonProperty("actual_settle_time")
private Long actualSettleTime;
/** 实际结算金额 */
@JsonProperty("actual_settlement")
private String actualSettlement;
}
/** 下单通道信息 */
@Data
@NoArgsConstructor
public static class ChannelInfo implements Serializable {
private static final long serialVersionUID = 7364918204736159023L;
/** 渠道类型:1=视频号, 2=公众号 */
@JsonProperty("channel_type")
private Integer channelType;
/** 渠道id */
@JsonProperty("channel_id")
private String channelId;
/** 渠道名称 */
@JsonProperty("channel_name")
private String channelName;
}
/** 内容推广推客机构信息 */
@Data
@NoArgsConstructor
public static class PromotionHeadSupplierInfo implements Serializable {
private static final long serialVersionUID = 1826374950183647291L;
/** 机构id */
@JsonProperty("id")
private String id;
/** 机构名称 */
@JsonProperty("name")
private String name;
/** 佣金单比例 */
@JsonProperty("ratio")
private String ratio;
/** 佣金 */
@JsonProperty("fee")
private String fee;
}
/** 商品信息 */
@Data
@NoArgsConstructor
public static class ProductInfo implements Serializable {
private static final long serialVersionUID = -4920183645872916370L;
/** 商品的标题 */
@JsonProperty("title")
private String title;
/** 商品的头图 */
@JsonProperty("thumb_img")
private String thumbImg;
}
}

View File

@@ -0,0 +1,52 @@
package me.chanjar.weixin.channel.bean.talent;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.io.Serializable;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 带货助手-获取佣金单列表 请求参数
*
* @author <a href="https://github.com/features/copilot">GitHub Copilot</a>
*/
@Data
@NoArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class TalentOrderListParam implements Serializable {
private static final long serialVersionUID = -6218342185316399261L;
/** 佣金单创建时间范围之开始时间【和更新时间范围二选一】 */
@JsonProperty("create_time_gt")
private Long createTimeGt;
/** 佣金单创建时间范围之结束时间【和更新时间范围二选一】 */
@JsonProperty("create_time_lt")
private Long createTimeLt;
/** 订单 ID 过滤 */
@JsonProperty("order_id")
private String orderId;
/** 商品 id 过滤 */
@JsonProperty("spu_id")
private String spuId;
/** 佣金单更新时间范围之开始时间【和创建时间范围二选一】 */
@JsonProperty("update_time_gt")
private Long updateTimeGt;
/** 佣金单更新时间范围之结束时间【和创建时间范围二选一】 */
@JsonProperty("update_time_lt")
private Long updateTimeLt;
/** 单页佣金单数(不超过10) */
@JsonProperty("page_size")
private Integer pageSize;
/** 由上次请求返回,顺序翻页时需要传入, 会从上次返回的结果往后翻一页 */
@JsonProperty("next_key")
private String nextKey;
}

View File

@@ -0,0 +1,54 @@
package me.chanjar.weixin.channel.bean.talent;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.io.Serializable;
import java.util.List;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import me.chanjar.weixin.channel.bean.base.WxChannelBaseResponse;
/**
* 带货助手-获取佣金单列表 响应
*
* @author <a href="https://github.com/features/copilot">GitHub Copilot</a>
*/
@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class TalentOrderListResponse extends WxChannelBaseResponse {
private static final long serialVersionUID = 3541802319654186172L;
/** 佣金单信息列表 */
@JsonProperty("order_list")
private List<OrderInfo> orderList;
/** 是否还有剩余订单 */
@JsonProperty("has_more")
private Boolean hasMore;
/** 本次翻页的上下文,用于顺序翻页请求 */
@JsonProperty("next_key")
private String nextKey;
/** 佣金单基础信息 */
@Data
@NoArgsConstructor
public static class OrderInfo implements Serializable {
private static final long serialVersionUID = 5261736494628827543L;
/** 订单id */
@JsonProperty("order_id")
private String orderId;
/** skuid */
@JsonProperty("sku_id")
private String skuId;
/** 佣金单特殊标识【目前主要用于本地生活】 */
@JsonProperty("special_id")
private String specialId;
}
}

View File

@@ -0,0 +1,24 @@
package me.chanjar.weixin.channel.bean.talent;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.io.Serializable;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 带货助手-获取达人橱窗商品详情 请求参数
*
* @author <a href="https://github.com/features/copilot">GitHub Copilot</a>
*/
@Data
@NoArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class TalentWindowProductDetailParam implements Serializable {
private static final long serialVersionUID = 3849271605183749261L;
/** 橱窗商品ID(可以从"获取达人橱窗商品列表"接口获取) */
@JsonProperty("product_id")
private String productId;
}

View File

@@ -0,0 +1,81 @@
package me.chanjar.weixin.channel.bean.talent;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import me.chanjar.weixin.channel.bean.base.WxChannelBaseResponse;
/**
* 带货助手-获取达人橱窗商品详情 响应
*
* @author <a href="https://github.com/features/copilot">GitHub Copilot</a>
*/
@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class TalentWindowProductDetailResponse extends WxChannelBaseResponse {
private static final long serialVersionUID = 1634829710537264918L;
/** 橱窗商品详情 */
@JsonProperty("product")
private ProductDetail product;
/** 橱窗商品详情 */
@Data
@NoArgsConstructor
public static class ProductDetail implements Serializable {
private static final long serialVersionUID = 7283640192847516039L;
/** 橱窗商品ID */
@JsonProperty("product_id")
private String productId;
/** 商品来源店铺的appid */
@JsonProperty("appid")
private String appid;
/** 商品在货源店铺的商品ID,对于带货商品会返回 */
@JsonProperty("out_product_id")
private String outProductId;
/** 商品标题 */
@JsonProperty("title")
private String title;
/** 商品头图url */
@JsonProperty("img_url")
private String imgUrl;
/** 商品所属叶子类目(品类)ID */
@JsonProperty("leaf_category_id")
private Long leafCategoryId;
/** 商品状态:1=生效中,2=被禁止售卖 */
@JsonProperty("status")
private Integer status;
/** 价格区间最小值(单位分,销售价) */
@JsonProperty("selling_price")
private Long sellingPrice;
/** 剩余库存 */
@JsonProperty("stock")
private Long stock;
/** 销量 */
@JsonProperty("sales")
private Long sales;
/** 是否在橱窗设置对外隐藏 */
@JsonProperty("is_hide")
private Boolean isHide;
/** 用于在小程序跳转小店场景添加商品时传递跟佣信息 */
@JsonProperty("product_promotion_link")
private String productPromotionLink;
}
}

View File

@@ -0,0 +1,32 @@
package me.chanjar.weixin.channel.bean.talent;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.io.Serializable;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 带货助手-获取达人橱窗商品列表 请求参数
*
* @author <a href="https://github.com/features/copilot">GitHub Copilot</a>
*/
@Data
@NoArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class TalentWindowProductListParam implements Serializable {
private static final long serialVersionUID = 7419836250174638291L;
/** 单页商品数(不超过500) */
@JsonProperty("page_size")
private Integer pageSize;
/** 页面下标,下标从1开始(不可以与 lastBuffer 一起填写) */
@JsonProperty("page_index")
private Integer pageIndex;
/** 由上次请求返回,顺序翻页时需要传入(不可以与 pageIndex 一起填写) */
@JsonProperty("last_buffer")
private String lastBuffer;
}

View File

@@ -0,0 +1,58 @@
package me.chanjar.weixin.channel.bean.talent;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.io.Serializable;
import java.util.List;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import me.chanjar.weixin.channel.bean.base.WxChannelBaseResponse;
/**
* 带货助手-获取达人橱窗商品列表 响应
*
* @author <a href="https://github.com/features/copilot">GitHub Copilot</a>
*/
@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class TalentWindowProductListResponse extends WxChannelBaseResponse {
private static final long serialVersionUID = 8263047195826340712L;
/** 橱窗商品列表 */
@JsonProperty("products")
private List<ProductInfo> products;
/** 本次翻页的上下文,用于顺序翻页请求 */
@JsonProperty("last_buffer")
private String lastBuffer;
/** 橱窗商品基础信息 */
@Data
@NoArgsConstructor
public static class ProductInfo implements Serializable {
private static final long serialVersionUID = 6142837490516284039L;
/** 橱窗商品id */
@JsonProperty("product_id")
private String productId;
/** 对于自营商品会返回,代表商品来源店铺的appid */
@JsonProperty("appid")
private String appid;
/**
* 商品来源:1=来源店铺的自营商品,2=来源选品中心的带货商品
*/
@JsonProperty("product_source")
private Integer productSource;
/**
* 对于带货商品会返回,代表商品在货源小店中的商品id
*/
@JsonProperty("out_product_id")
private String outProductId;
}
}

View File

@@ -595,6 +595,32 @@ public class WxChannelApiUrlConstants {
String GET_SALE_PROFILE_DATA_URL = "https://api.weixin.qq.com/channels/ec/compass/finder/sale/profile/data/get";
}
/**
* 带货助手API
*/
public interface Talent {
/**
* <a href="https://developers.weixin.qq.com/doc/store/talent/openapi/order/api_get_order_list.html">获取佣金单列表</a>
*/
String GET_ORDER_LIST_URL = "https://api.weixin.qq.com/channels/ec/talent/get_order_list";
/**
* <a href="https://developers.weixin.qq.com/doc/store/talent/openapi/order/api_get_order_detail.html">获取佣金单详情</a>
*/
String GET_ORDER_DETAIL_URL = "https://api.weixin.qq.com/channels/ec/talent/get_order_detail";
/**
* <a href="https://developers.weixin.qq.com/doc/store/talent/openapi/window/api_get_product_list.html">获取达人橱窗商品列表</a>
*/
String GET_WINDOW_PRODUCT_LIST_URL = "https://api.weixin.qq.com/channels/ec/talent/window/product/list/get";
/**
* <a href="https://developers.weixin.qq.com/doc/store/talent/openapi/window/api_get_product_detail.html">获取达人橱窗商品详情</a>
*/
String GET_WINDOW_PRODUCT_DETAIL_URL = "https://api.weixin.qq.com/channels/ec/talent/window/product/get";
}
/**
* 罗盘商家版API
*/

View File

@@ -0,0 +1,70 @@
package me.chanjar.weixin.channel.api.impl;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertTrue;
import com.google.inject.Inject;
import me.chanjar.weixin.channel.api.WxChannelService;
import me.chanjar.weixin.channel.api.WxTalentService;
import me.chanjar.weixin.channel.bean.talent.TalentOrderDetailParam;
import me.chanjar.weixin.channel.bean.talent.TalentOrderDetailResponse;
import me.chanjar.weixin.channel.bean.talent.TalentOrderListParam;
import me.chanjar.weixin.channel.bean.talent.TalentOrderListResponse;
import me.chanjar.weixin.channel.bean.talent.TalentWindowProductDetailParam;
import me.chanjar.weixin.channel.bean.talent.TalentWindowProductDetailResponse;
import me.chanjar.weixin.channel.bean.talent.TalentWindowProductListParam;
import me.chanjar.weixin.channel.bean.talent.TalentWindowProductListResponse;
import me.chanjar.weixin.channel.test.ApiTestModule;
import me.chanjar.weixin.common.error.WxErrorException;
import org.testng.annotations.Guice;
import org.testng.annotations.Test;
/**
* 带货助手服务测试
*
* @author <a href="https://github.com/features/copilot">GitHub Copilot</a>
*/
@Guice(modules = ApiTestModule.class)
public class WxTalentServiceImplTest {
@Inject
private WxChannelService channelService;
@Test
public void testGetOrderList() throws WxErrorException {
WxTalentService talentService = channelService.getTalentService();
TalentOrderListParam param = new TalentOrderListParam();
TalentOrderListResponse response = talentService.getOrderList(param);
assertNotNull(response);
assertTrue(response.isSuccess());
}
@Test
public void testGetOrderDetail() throws WxErrorException {
WxTalentService talentService = channelService.getTalentService();
TalentOrderDetailParam param = new TalentOrderDetailParam();
param.setOrderId("");
TalentOrderDetailResponse response = talentService.getOrderDetail(param);
assertNotNull(response);
assertTrue(response.isSuccess());
}
@Test
public void testGetWindowProductList() throws WxErrorException {
WxTalentService talentService = channelService.getTalentService();
TalentWindowProductListParam param = new TalentWindowProductListParam();
TalentWindowProductListResponse response = talentService.getWindowProductList(param);
assertNotNull(response);
assertTrue(response.isSuccess());
}
@Test
public void testGetWindowProductDetail() throws WxErrorException {
WxTalentService talentService = channelService.getTalentService();
TalentWindowProductDetailParam param = new TalentWindowProductDetailParam();
param.setProductId("");
TalentWindowProductDetailResponse response = talentService.getWindowProductDetail(param);
assertNotNull(response);
assertTrue(response.isSuccess());
}
}