shawenguan 1 年之前
父節點
當前提交
a23be77bf9
共有 1 個文件被更改,包括 16 次插入11 次删除
  1. 16 11
      addons/elife/OfpayHelper.py

+ 16 - 11
addons/elife/OfpayHelper.py

@@ -199,10 +199,10 @@ class OfpayHelper:
         print("###[OfpayHelper]path=%s"%path);
         if path.startswith('/h5/union/interactiveIGoChoose/index'):
             self.handle_login(flow);
-        elif path.startswith('/h5/union/api/interactiveIGoChoose/indexConfigRebuild'):
-            self.handle_activitylist(flow);
-        elif path.startswith('/h5/union/api/interactiveIGoChoose/orderList'):
-            self.handle_orderlist(flow);
+        # elif path.startswith('/h5/union/api/interactiveIGoChoose/indexConfigRebuild'):
+        #     self.handle_activitylist(flow);
+        # elif path.startswith('/h5/union/api/interactiveIGoChoose/orderList'):
+        #     self.handle_orderlist(flow);
 
     def get_jwt_token_data(self, flow: http.HTTPFlow):
         request = flow.request;
@@ -236,6 +236,8 @@ class OfpayHelper:
         ctx.log.info('###handle_login###');
         request = flow.request;
         response = flow.response;
+        if not response.cookies:
+            return;
         jwt_data = self.get_jwt_token_data(flow);
         if not jwt_data:
             return;
@@ -245,10 +247,10 @@ class OfpayHelper:
             account = payload['customerInfo']['phone'];
 
         login_params = flow.request.query.get('loginParams');
-        ori_cookies = dict(request.cookies);
-        rsp_cookies = dict(response.cookies);
-        for key in rsp_cookies:
-            ori_cookies[key] = rsp_cookies[key];
+        cookies = dict(request.cookies);
+        for name, morsel in response.cookies.items():
+            value = morsel[0];
+            cookies[name] = value;
 
         # # 获取所有的Set-Cookie头部
         # set_cookie_headers = flow.response.headers.get_all("Set-Cookie")
@@ -261,7 +263,7 @@ class OfpayHelper:
         #         # 例如,可以检查cookie的过期时间,路径等属性
         #         print("Attributes:", morsel);
 
-        authorization = ori_cookies['unionToken_interactiveIGoChoose'];
+        authorization = cookies['unionToken_interactiveIGoChoose'];
         sign_time = None;
         expire_time = None;
         try:
@@ -273,7 +275,7 @@ class OfpayHelper:
                 info_str = payload['customerInfo'];
                 customer_info = json.loads(info_str);
                 payload['customerInfo'] = customer_info;
-            account = payload['customerInfo']['phone'];
+                account = customer_info['phone'];
 
             sign_time = seconds_to_beijing_time(payload['iat']);
             expire_time = seconds_to_beijing_time(payload['exp']);
@@ -281,6 +283,8 @@ class OfpayHelper:
         except Exception as e:
             print(e);
 
+        if not account:
+            return;
         try:
             sql_query = f'''
                 UPDATE elife_account_data
@@ -292,7 +296,8 @@ class OfpayHelper:
                     login_params = %s
                 WHERE account = %s;
             ''';
-            sql_params = (authorization, repr(ori_cookies), sign_time, expire_time, login_params, account);
+            sql_params = (authorization, repr(cookies), sign_time, expire_time, login_params, account);
+            print(sql_params);
             self.check_mysql_connect();
             cursor = self.db_conn.cursor();
             cursor.execute(sql_query, sql_params);