eBay Trading API的GetSellerTransactions调用未返回卖家Feedback评分相关数据
原因分析与解决方法
1. 字段取值路径错误
GetSellerTransactions接口的Seller对象不属于顶级响应字段,你直接从GetSellerTransactionsCall实例调用getSeller()方法本身就无法获取到有效数据,正确的取值路径需要从交易条目里读取:
你已经获取到了TransactionType类型的交易数组,每笔交易的Item属性下才挂载了对应的Seller对象。
2. 可选输出字段未配置
即使设置了DetailLevelCodeType.RETURN_ALL,eBay Trading API对于部分用户属性字段仍然需要显式指定输出,否则不会默认返回,需要额外添加OutputSelector配置,明确要求返回Item.Seller及下属的FeedbackRatingStar字段。
修正后代码示例
GetSellerTransactionsCall getSellerTransactionsCall = new GetSellerTransactionsCall(); getSellerTransactionsCall.setApiContext(ebayAPI.getAPIContext(profileID)); DetailLevelCodeType[] detailsLevels = new DetailLevelCodeType[1]; detailsLevels[0] = DetailLevelCodeType.RETURN_ALL; getSellerTransactionsCall.setDetailLevel(detailsLevels); // 新增:指定需要返回的卖家相关字段 getSellerTransactionsCall.setOutputSelector(new String[] { "Item.Seller", "Item.Seller.FeedbackRatingStar" }); getSellerTransactionsCall.setIncludeFinalValueFee(true); TransactionType[] transactionTypes = getSellerTransactionsCall.getSellerTransactions(); // 从交易条目中获取卖家信息 if (transactionTypes != null && transactionTypes.length > 0) { // 该接口返回的所有交易均属于当前授权卖家,取第一条的卖家信息即可 UserType sellerAsUserType = transactionTypes[0].getItem().getSeller(); System.out.println("Seller: " + sellerAsUserType); FeedbackRatingStarCodeType feedbackRatingStarCodeType = sellerAsUserType.getFeedbackRatingStar(); System.out.println("Feedback Rating Star Code: " + feedbackRatingStarCodeType); }
内容的提问来源于stack exchange,提问作者Levi Hibbitts
相关产品推荐
相关产品推荐

