From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 25 二月 2025 16:41:22 +0800 Subject: [PATCH] 淘宝转链接口更新 --- fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java | 205 ++++++++++++++++++++++++++------------------------ 1 files changed, 106 insertions(+), 99 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java b/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java index 5bf4cd8..f137847 100644 --- a/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java +++ b/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java @@ -36,79 +36,6 @@ //娣樺疂瀹PI鎺ュ彛 public class TaoKeApiUtil { - // 瑙f瀽鍒哥殑鍐呭 - private static TaoBaoSearchResult parseCoupleContent(String content) { - TaoBaoSearchResult result = new TaoBaoSearchResult(); - JSONObject root = JSONObject.fromObject(content); - - root = root.optJSONObject("tbk_dg_item_coupon_get_response"); - if (root.optJSONObject("results") == null) - return null; - - JSONArray array = root.optJSONObject("results").optJSONArray("tbk_coupon"); - if (array != null) { - List<TaoBaoGoodsBrief> goodsList = new ArrayList<>(); - for (int i = 0; i < array.size(); i++) { - JSONObject item = array.optJSONObject(i); - TaoBaoGoodsBrief goods = new TaoBaoGoodsBrief(); - goods.setPictUrl(item.optString("pict_url")); - goods.setAuctionId(item.optString("num_iid")); - goods.setAuctionUrl(item.optString("item_url")); - goods.setBiz30day(item.optInt("volume")); - goods.setCouponInfo(item.optString("coupon_info")); - List<BigDecimal> quanInfo = TaoBaoCouponUtil.getCouponInfo(goods.getCouponInfo()); - goods.setCouponAmount(quanInfo.get(1)); - goods.setCouponEffectiveEndTime(item.optString("coupon_end_time")); - goods.setCouponEffectiveStartTime(item.optString("coupon_start_time")); - goods.setCouponStartFee(quanInfo.get(0)); - goods.setCouponLeftCount(item.optInt("coupon_remain_count")); - goods.setCouponLink(item.optString("coupon_click_url")); - goods.setCouponTotalCount(item.optInt("coupon_total_count")); - goods.setDayLeft(-1); - if (item.optJSONObject("small_images") != null) { - JSONArray imgArray = item.optJSONObject("small_images").optJSONArray("string"); - if (imgArray != null) { - List<String> imgList = new ArrayList<>(); - for (int n = 0; n < imgArray.size(); n++) { - imgList.add(imgArray.optString(n)); - } - goods.setImgList(imgList); - } - } - - goods.setSellerId(item.optLong("seller_id")); - goods.setShopTitle(item.optString("shop_title")); - goods.setTitle(item.optString("title")); - - goods.setTkRate(new BigDecimal(item.optString("commission_rate"))); - goods.setTotalNum(1000); - goods.setUserType(item.optInt("user_type")); - goods.setUserTypeName(""); - goods.setZkPrice(new BigDecimal(item.optString("zk_final_price"))); - - if (goods.getZkPrice().compareTo(goods.getCouponStartFee()) >= 0 - && goods.getZkPrice().compareTo(goods.getCouponAmount()) > 0) { - BigDecimal finalPrice = goods.getZkPrice().subtract(goods.getCouponAmount()); - goods.setTkCommFee(finalPrice.multiply(goods.getTkRate()).divide(new BigDecimal(100))); - } else - goods.setTkCommFee(new BigDecimal(0)); - - goodsList.add(goods); - } - - result.setTaoBaoGoodsBriefs(goodsList); - - int totalCount = 1000;// root.optInt("total_results"); - PageEntity pe = new PageEntity(0, 0, totalCount); - result.setPageEntity(pe); - } - result.setNavList(new ArrayList<>()); - TaoBaoHead taoBaoHead = new TaoBaoHead(); - taoBaoHead.setDocsfound((int) result.getPageEntity().getTotalCount()); - result.setTaoBaoHead(taoBaoHead); - return result; - } - /** * 鑾峰彇鍟嗗搧璇︽儏锛岀畝鐗� * @@ -121,7 +48,7 @@ map.put("method", "taobao.tbk.item.info.get"); map.put("num_iids", id + ""); - String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true); + String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true); System.out.println(resultStr); JSONObject data = JSONObject.fromObject(resultStr); // 鍟嗗搧涓嬫灦 @@ -138,7 +65,7 @@ if (array != null && array.size() > 0) { JSONObject item = array.optJSONObject(0); TaoBaoGoodsBrief goods = parseSimpleGoodsInfo(item); - if(goods!=null&&!NumberUtil.isNumeric(id)){ + if (goods != null && !NumberUtil.isNumeric(id)) { goods.setAuctionId(id); } return goods; @@ -154,11 +81,11 @@ map.put("num_iids", id + ""); String resultStr = null; - if(!NumberUtil.isNumeric(id)){ - resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true); - }else{ + if (!NumberUtil.isNumeric(id)) { + resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true); + } else { map.put("biz_scene_id", "2"); - resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, TaoBaoConstant.getSpecialAuthAppInfo(TaoBaoConstant.TAOBAO_PID_DEFAULT)); + resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, TaoBaoConstant.getSpecialAuthAppInfo(TaoBaoConstant.TAOBAO_PID_DEFAULT)); } System.out.println(resultStr); JSONObject data = JSONObject.fromObject(resultStr); @@ -176,7 +103,7 @@ if (array != null && array.size() > 0) { JSONObject item = array.optJSONObject(0); TaoBaoGoodsBrief goods = parseSimpleGoodsInfo(item); - if(goods!=null&&!NumberUtil.isNumeric(id)){ + if (goods != null && !NumberUtil.isNumeric(id)) { goods.setAuctionId(id); } return goods; @@ -188,7 +115,11 @@ TaoBaoGoodsBrief goods = new TaoBaoGoodsBrief(); goods.setAuctionId(item.optString("num_iid")); goods.setAuctionUrl(item.optString("item_url")); - goods.setBiz30day(item.optInt("volume")); + if (item.containsKey("annual_vol")) { + goods.setBiz30day(item.optInt("annual_vol") / 12); + } else { + goods.setBiz30day(item.optInt("volume")); + } if (item.optJSONObject("small_images") != null) { JSONArray imgArray = item.optJSONObject("small_images").optJSONArray("string"); if (imgArray != null) { @@ -425,7 +356,7 @@ } // 浠庤浆閾炬悳绱� - TaoBaoGoodsBrief newGoods = specialConvertCoupon(goods.getAuctionId(), + TaoBaoGoodsBrief newGoods = specialConvertCouponV2(goods.getAuctionId(), new TaoKeAppInfo(TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET, TaoBaoConstant.TAOBAO_PID_DEFAULT), specialId, relationId); @@ -506,7 +437,7 @@ } // 浠庤浆閾炬悳绱� - TaoBaoGoodsBrief newGoods = specialConvertCoupon(goods.getAuctionId(), + TaoBaoGoodsBrief newGoods = specialConvertCouponV2(goods.getAuctionId(), new TaoKeAppInfo(TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET, TaoBaoConstant.TAOBAO_PID_DEFAULT), null, null); @@ -1001,8 +932,8 @@ System.out.println("resultStr" + resultStr); JSONObject data = JSONObject.fromObject(resultStr); JSONObject rootData = data.optJSONObject("tbk_dg_material_optional_upgrade_response"); - if ( rootData!= null - &&rootData.optJSONObject("result_list") != null) { + if (rootData != null + && rootData.optJSONObject("result_list") != null) { JSONArray array = rootData.optJSONObject("result_list") .optJSONArray("map_data"); List<TaoBaoGoodsBrief> goodsList = new ArrayList<>(); @@ -1206,7 +1137,11 @@ goods.setAuctionId(item.optString("num_iid")); goods.setAuctionUrl("https:" + item.optString("url")); - goods.setBiz30day(item.optInt("volume")); + if (item.containsKey("annual_vol")) { + goods.setBiz30day(item.optInt("annual_vol") / 100); + } else { + goods.setBiz30day(item.optInt("volume")); + } goods.setCouponInfo(item.optString("coupon_info")); if (goods.getCouponInfo() != null) @@ -1298,7 +1233,6 @@ JSONObject mgcInfo = item.optJSONObject("mgc_info"); - TaoBaoGoodsBrief goods = new TaoBaoGoodsBrief(); goods.setPictUrl(basicInfo.optString("pict_url")); @@ -1308,8 +1242,13 @@ goods.setAuctionId(item.optString("item_id")); goods.setAuctionUrl("https:" + item.optString("url")); - goods.setBiz30day(basicInfo.optInt("volume")); - if(pricePromotionInfo.optJSONObject("final_promotion_path_list")!=null&&pricePromotionInfo.optJSONObject("final_promotion_path_list").optJSONArray("final_promotion_path_map_data").size()>0) { + + if (basicInfo.containsKey("annual_vol")) { + goods.setBiz30day(basicInfo.optInt("annual_vol") / 12); + } else { + goods.setBiz30day(basicInfo.optInt("volume")); + } + if (pricePromotionInfo.optJSONObject("final_promotion_path_list") != null && pricePromotionInfo.optJSONObject("final_promotion_path_list").optJSONArray("final_promotion_path_map_data").size() > 0) { JSONArray array = pricePromotionInfo.optJSONObject("final_promotion_path_list").optJSONArray("final_promotion_path_map_data"); JSONObject couponInfo = array.optJSONObject(0); goods.setCouponInfo(couponInfo.optString("promotion_desc").replace(".00", "")); @@ -1322,7 +1261,7 @@ goods.setCouponLink(publishInfo.optString("coupon_share_url")); goods.setCouponTotalCount(100); goods.setCouponActivityId(couponInfo.optString("promotion_id")); - }else{ + } else { goods.setCouponAmount(new BigDecimal(0)); } @@ -1367,7 +1306,7 @@ goods.setUserTypeName(""); goods.setZkPrice(new BigDecimal(pricePromotionInfo.optString("zk_final_price"))); - if (publishInfo.optJSONArray("sp_campaign_list")!=null&&publishInfo.optJSONArray("sp_campaign_list").size()>0) { + if (publishInfo.optJSONArray("sp_campaign_list") != null && publishInfo.optJSONArray("sp_campaign_list").size() > 0) { goods.setDxjhInfo(publishInfo.optJSONArray("sp_campaign_list").optJSONObject(0).optString("sp_name")); } @@ -1385,7 +1324,7 @@ goods.setTotalFee(new BigDecimal("0")); // 鎺ㄨ崘璇� - if(mgcInfo!=null) { + if (mgcInfo != null) { goods.setDescription(mgcInfo.optString("item_description")); } goods = loadYuShouInfo(goods, item); @@ -2129,6 +2068,62 @@ } + public static TaoBaoGoodsBrief specialConvertCouponV2(String auctionId, TaoKeAppInfo app, String specialId, String relationId) { + String pid = app.getPid(); + String[] sts = pid.split("_"); + Map<String, String> map = new HashMap<>(); + map.put("method", "taobao.tbk.dg.general.link.convert"); + map.put("item_id_list", auctionId + ""); + map.put("adzone_id", sts[3]); + if (!StringUtil.isNullOrEmpty(specialId) && !StringUtil.isNullOrEmpty(relationId)) { + map.put("special_id", specialId); + } else if (!StringUtil.isNullOrEmpty(specialId)) { + map.put("special_id", specialId); + } else if (!StringUtil.isNullOrEmpty(relationId)) { + map.put("relation_id", relationId); + } + try { + String result = TaoKeBaseUtil.baseRequestForThreeTimes(map, app); + System.out.println(result); + JSONObject json = JSONObject.fromObject(result); + JSONObject resultJSON = json.optJSONObject("tbk_dg_general_link_convert_response").optJSONObject("data") + .optJSONObject("item_url_list").optJSONArray("item_url_list").optJSONObject(0); + JSONObject goodsInfo=resultJSON.optJSONObject("link_info_dto"); + String couponLink = goodsInfo.optString("coupon_short_url"); + String itemLink = goodsInfo.optString("cps_short_url"); + TaoBaoGoodsBrief goods = new TaoBaoGoodsBrief(); + goods.setAuctionUrl(itemLink); + goods.setCouponLink(couponLink); + if (!StringUtil.isNullOrEmpty(resultJSON.optString("coupon_info"))) { + goods.setCouponLink(couponLink); + goods.setCouponInfo(resultJSON.optString("coupon_info")); + if (!StringUtil.isNullOrEmpty(resultJSON.optString("coupon_total_count"))) { + goods.setCouponTotalCount(Integer.parseInt(resultJSON.optString("coupon_total_count"))); + } + + if (!StringUtil.isNullOrEmpty(resultJSON.optString("coupon_remain_count"))) { + goods.setCouponLeftCount(Integer.parseInt(resultJSON.optString("coupon_remain_count"))); + } + + goods.setCouponEffectiveStartTime(resultJSON.optString("coupon_start_time")); + goods.setCouponEffectiveEndTime(resultJSON.optString("coupon_end_time")); + + } + + JSONObject rateInfo=resultJSON.optJSONObject("promotion_info_dto"); + String tkRate = rateInfo.optString("commission_rate"); + if (!StringUtil.isNullOrEmpty(tkRate)) { + goods.setTkRate(new BigDecimal(tkRate)); + } + goods = loadYuShouInfo(goods, resultJSON); + return goods; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + // AA5ISJ private static TaoBaoGoodsBrief parseWuLiaoItemFromMaterialId(JSONObject item) { @@ -2137,7 +2132,11 @@ goods.setPictUrl(TbImgUtil.getTBSize320Img("https:" + item.optString("pict_url"))); goods.setAuctionId(item.optString("item_id")); goods.setAuctionUrl("https://item.taobao.com/item.htm?id=" + goods.getAuctionId()); - goods.setBiz30day(item.optInt("volume")); + if (item.containsKey("annual_vol")) { + goods.setBiz30day(item.optInt("annual_vol") / 12); + } else { + goods.setBiz30day(item.optInt("volume")); + } if (!StringUtil.isNullOrEmpty(item.optString("coupon_amount"))) { goods.setCouponEffectiveEndTime(TimeUtil.getGernalTime(item.optLong("coupon_end_time"), "yyyy-MM-dd")); goods.setCouponEffectiveStartTime(TimeUtil.getGernalTime(item.optLong("coupon_start_time"), "yyyy-MM-dd")); @@ -2644,12 +2643,20 @@ // map.put("num_iids", "708395859317"); // String resultStr = TaoKeBaseUtil.baseRequestForThreeTimes(map, true); // System.out.println(resultStr); - SearchFilter sf=new SearchFilter(); - sf.setKey("闉�"); - sf.setPage(1); - sf.setPageSize(20); - TaoBaoSearchResult result = searchWuLiaoNew(sf,null,null); - System.out.printf(result.toString()); +// SearchFilter sf=new SearchFilter(); +// sf.setKey("闉�"); +// sf.setPage(1); +// sf.setPageSize(20); +// TaoBaoSearchResult result = searchWuLiaoNew(sf,null,null); +// System.out.printf(result.toString()); +// public static final String TAOBAO_AUTH_APPKEY = "24980167"; +// public static final String TAOBAO_AUTH_APPSECRET = "e0a2e05deabf5ce039b52e5b492d5382"; +// public static final String TAOBAO_PID_DEFAULT="mm_124933865_56750082_89555600043"; + + + TaoKeAppInfo app = new TaoKeAppInfo("24980167", "e0a2e05deabf5ce039b52e5b492d5382", "mm_124933865_56750082_89555600043"); + + specialConvertCouponV2("ZMxBywvT6tPr0wabjaFBQPiVt6-g4DYZPC2OoJaaRXIoq", app, "511379263", null); } } -- Gitblit v1.8.0