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