From 19533a17aa55fafc70d0a385928e785cb50e1ebc Mon Sep 17 00:00:00 2001 From: admin <2780501319@qq.com> Date: 星期五, 30 七月 2021 02:05:14 +0800 Subject: [PATCH] 爱奇艺视频更新 --- src/main/java/com/yeshi/buwan/pptv/PPTVApiUtil.java | 145 +++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 129 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/yeshi/buwan/pptv/PPTVApiUtil.java b/src/main/java/com/yeshi/buwan/pptv/PPTVApiUtil.java index d45970e..5b9e47f 100644 --- a/src/main/java/com/yeshi/buwan/pptv/PPTVApiUtil.java +++ b/src/main/java/com/yeshi/buwan/pptv/PPTVApiUtil.java @@ -1,27 +1,38 @@ package com.yeshi.buwan.pptv; import com.google.gson.Gson; +import com.yeshi.buwan.pptv.entity.PPTVGoodsInfo; import com.yeshi.buwan.pptv.entity.PPTVProgram; import com.yeshi.buwan.pptv.entity.PPTVSeries; import com.yeshi.buwan.util.StringUtil; import com.yeshi.buwan.util.TimeUtil; +import com.yeshi.buwan.util.log.LoggerUtil; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.apache.commons.httpclient.HttpClient; -import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.methods.PostMethod; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.yeshi.utils.HttpUtil; +import java.lang.reflect.Field; +import java.net.URLEncoder; import java.util.*; public class PPTVApiUtil { static Logger logger = LoggerFactory.getLogger(PPTVApiUtil.class); - private final static String APP_KEY = "eb324ec4439e193c38fd8d7fdbdae9af"; - private final static String APP_SECRET = "163cf4fa3780091e61a48c6abb6246d3"; - private final static String CHANNEL_ID = "111111"; + //姝e紡 + public final static String APP_KEY = "9227024a6c540a7f8571d75c469da9ba"; + private final static String APP_SECRET = "f3e922ac18f9da6c816d3012f8b7e575"; + + //娴嬭瘯 +// private final static String APP_KEY = "eb324ec4439e193c38fd8d7fdbdae9af"; +// private final static String APP_SECRET = "163cf4fa3780091e61a48c6abb6246d3"; + + + public final static String CHANNEL_ID = "253350"; + private final static String CANAL = "buwan"; private static String getBase64(String str) { String st = StringUtil.getBase64(str).replace("\r\n", ""); @@ -110,7 +121,7 @@ } private static List<PPTVSeries> getList(String method) { - String result = baseRequest(null, method); + String result = baseRequest(new HashMap<>(), method); logger.error(result); List<String> list = parseUrls(result); List<PPTVSeries> totalList = new ArrayList<>(); @@ -136,11 +147,60 @@ } public static PPTVSeries getDetail(String seriesCodes) { + Gson gson = new Gson(); Map<String, String> params = new HashMap<>(); params.put("seriesCodes", seriesCodes); String result = baseRequest(params, "pptv.channel.content.detail"); System.out.println(result); - return null; + JSONObject resultJSON = JSONObject.fromObject(result); + JSONArray array = resultJSON.optJSONObject("response").optJSONObject("body").optJSONArray("contentInfos"); + List<PPTVProgram> programList = new ArrayList<>(); + PPTVSeries pptvSeries = null; + for (int i = 0; i < array.size(); i++) { + JSONObject item = array.optJSONObject(i); + if (pptvSeries == null) + pptvSeries = gson.fromJson(item.toString(), PPTVSeries.class); + + PPTVGoodsInfo goodsInfo = new PPTVGoodsInfo(); + goodsInfo.setGoodsNo(item.optString("goodsNo")); + goodsInfo.setGoodsName(item.optString("goodsName")); + goodsInfo.setStatus(item.optString("goodsStatus")); + goodsInfo.setIsNoVipPricing(item.optString("isNoVipPricing")); + goodsInfo.setIsTicket(item.optString("isTicket")); + goodsInfo.setIsVipPricing(item.optString("isVipPricing")); + + pptvSeries.setGoodsInfo(goodsInfo); + + + List<String> keys = new ArrayList<>(); + for (Iterator<String> its = item.keys(); its.hasNext(); ) { + String key = its.next(); + if (!key.contains("series_")) { + keys.add(key); + } + } + + for (String key : keys) { + item.remove(key); + } + + String itemStr = item.toString().replace("series_", ""); + + JSONObject pitem = JSONObject.fromObject(itemStr); + goodsInfo = new PPTVGoodsInfo(); + goodsInfo.setGoodsNo(pitem.optString("goodsNo")); + goodsInfo.setGoodsName(pitem.optString("goodsName")); + goodsInfo.setStatus(pitem.optString("goodsStatus")); + goodsInfo.setIsNoVipPricing(pitem.optString("isNoVipPricing")); + goodsInfo.setIsTicket(pitem.optString("isTicket")); + goodsInfo.setIsVipPricing(pitem.optString("isVipPricing")); + + PPTVProgram program = gson.fromJson(itemStr, PPTVProgram.class); + program.setGoodsInfo(goodsInfo); + programList.add(program); + } + pptvSeries.setSeries(programList); + return pptvSeries; } @@ -153,10 +213,21 @@ public static String getOpenId(String uid) { Map<String, String> params = new HashMap<>(); params.put("uid", uid); +// String result = baseRequest("https://coapi.pptv.com/coapi-web/api/http/sopRequest", params, "pptv.channel.openid.get"); String result = baseRequest("https://coapi.pptv.com/coapi-web/api/http/sopRequest", params, "pptv.channel.openid.get"); - logger.info(result); + System.out.println(result); JSONObject resultJSON = JSONObject.fromObject(result); - return resultJSON.optJSONObject("response").optJSONObject("body").optString("openId"); + JSONObject response = resultJSON.optJSONObject("response"); + if (StringUtil.isNullOrEmpty(response.optString("error_code"))) + return response.optJSONObject("body").optString("openId"); + return null; + } + + + public static void getVIPPriceList() { + Map<String, String> params = new HashMap<>(); + String result = baseRequest("https://coapi.pptv.com/coapi-web/api/http/sopRequest", params, "pptv.channel.goods.associator"); + System.out.println(result); } @@ -165,15 +236,57 @@ * * @param code */ - public static void login(String code) { - String url = String.format("https://coapi.pptv.com/coapi-web/api/getUserToken/%s/%s.htm", APP_KEY, code); - Map<String, String> params = new HashMap<>(); - params.put("code", code); - String result = baseRequest(url, params, ""); - logger.info(result); + public static boolean login(String code) { + String url = String.format("https://coapi.pptv.com/coapi-web/api/getUserToken/%s/%s.htm", APP_KEY, URLEncoder.encode(code)); + String result = HttpUtil.get(url); + System.out.println(result); + JSONObject resultJSON = JSONObject.fromObject(result); + return resultJSON.optInt("errCode") == 1; + } -// JSONObject resultJSON = JSONObject.fromObject(result); -// return resultJSON.optJSONObject("response").optJSONObject("body").optString("openId"); + + /** + * 涔板晢鍝� + * + * @param openId + * @param orderNo + * @param goodsNo + * @param orderTime + * @return + */ + public static boolean buyGoods(String openId, String orderNo, String goodsNo, Date orderTime) { + Map<String, String> params = new HashMap<>(); + params.put("openId", openId); + params.put("canal", CHANNEL_ID); + params.put("channel", "yeshi"); + params.put("goodsNo", goodsNo); + params.put("outOrderId", orderNo); + params.put("orderTime", TimeUtil.getGernalTime(orderTime.getTime(), "yyyy-MM-dd HH:mm:ss")); + params.put("sign", StringUtil.Md5(String.format("%s&%s&%s&%s", openId, params.get("channel"), orderNo, "2MnD8nCWu7EzbiJ"))); + String result = get("http://billing.api.pptv.com/cusp/jointMember", params); + LoggerUtil.getVIPLogger().info("寮�閫氫細鍛�-璁㈠崟鍙凤細{},缁撴灉锛歿}", orderNo, result); + System.out.println(result); + JSONObject data = JSONObject.fromObject(result); + if (data.optInt("errorCode") == 0) { + return true; + } + return false; + } + + private static String get(String url, Map<String, String> params) { + List<String> list = new ArrayList<>(); + for (Iterator<String> its = params.keySet().iterator(); its.hasNext(); ) { + String key = its.next(); + list.add(key + "=" + URLEncoder.encode(params.get(key))); + } + url += "?" + org.yeshi.utils.StringUtil.concat(list, "&"); + System.out.println(url); + return HttpUtil.get(url); + } + + public static void main(String[] args) { + //DA7559531560894 + buyGoods("257dfd950c20ad25dee9f99ef926c0f8", "buwan_100", "DA7559531560894", new Date()); } -- Gitblit v1.8.0