chenshibin 4 жил өмнө
parent
commit
f21f93660e
1 өөрчлөгдсөн 68 нэмэгдсэн , 56 устгасан
  1. 68 56
      Controller/CloudStorage.py

+ 68 - 56
Controller/CloudStorage.py

@@ -958,67 +958,79 @@ class CloudStorageView(View):
         result_code = request_dict.get('result_code', None)
         asy = threading.Thread(target=ModelService.add_log,
                                args=('回调',
-                                     '回调',result_code))
+                                     '回调','微信回调成功'))
         asy.start()
-        if result_code == 'SUCCESS':
-            check_sign = WechatPayObject.get_notifypay(request_dict)
-            if not check_sign:
-                return HttpResponse(WechatPayObject.xml_to_dict({'return_code':'FAIL', 'return_msg':'签名失败'}))
-            orderID = request_dict.get('out_trade_no',None)
+        try:
+            if result_code == 'SUCCESS':
+                check_sign = WechatPayObject.get_notifypay(request_dict)
+                if not check_sign:
+                    return HttpResponse(WechatPayObject.xml_to_dict({'return_code': 'FAIL', 'return_msg': '签名失败'}))
+                orderID = request_dict.get('out_trade_no', None)
+                asy = threading.Thread(target=ModelService.add_log,
+                                       args=(orderID,
+                                             '回调', '修改订单状态'))
+                asy.start()
+                self.callback_dostatus(orderID)
+                print("进来了,微信支付成功回调")
+
+                asy = threading.Thread(target=ModelService.add_log,
+                                       args=(orderID,
+                                             '回调', '进来了,微信支付成功回调'))
+                asy.start()
+                order_qs = Order_Model.objects.filter(orderID=orderID)
+                nowTime = int(time.time())
+                order_list = order_qs.values("UID", "channel", "commodity_code", "rank", "isSelectDiscounts",
+                                             "userID__userID", "userID__username")
+                userid = order_list[0]['userID__userID']
+                username = order_list[0]['userID__username']
+                UID = order_list[0]['UID']
+                channel = order_list[0]['channel']
+                rank = order_list[0]['rank']
+                smqs = Store_Meal.objects.filter(id=rank). \
+                    values("day", "bucket_id", "bucket__storeDay", "expire")
+                bucketId = smqs[0]['bucket_id']
+                if not smqs.exists():
+                    return HttpResponse(WechatPayObject.xml_to_dict({'return_code': 'FAIL', 'return_msg': '套餐不存在'}))
+                # ##
+                ubqs = UID_Bucket.objects.filter(bucket__id=bucketId, uid=UID, channel=channel, endTime__gte=nowTime). \
+                           values("id", "bucket__storeDay", "bucket__region", "endTime").order_by('addTime')[:1]
+                expire = smqs[0]['expire']
+                if order_list[0]['isSelectDiscounts'] == 1:
+                    expire = smqs[0]['expire'] * 2
+                if ubqs.exists():
+                    ubq = ubqs[0]
+                    endTime = CommonService.calcMonthLater(expire, ubq['endTime'])
+                    ub_cqs = UID_Bucket.objects.filter(id=ubq['id']).update \
+                        (uid=UID, channel=channel, bucket_id=bucketId,
+                         endTime=endTime, updateTime=nowTime)
+                    uid_bucket_id = ubq['id']
+                else:
+                    endTime = CommonService.calcMonthLater(expire)
+                    ub_cqs = UID_Bucket.objects.create \
+                        (uid=UID, channel=channel, bucket_id=bucketId, endTime=endTime, addTime=nowTime,
+                         updateTime=nowTime)
+                    uid_bucket_id = ub_cqs.id
+
+                dvq = Device_Info.objects.filter(UID=UID, vodPrimaryUserID='', vodPrimaryMaster='')
+                if dvq.exists():
+                    dvq_set_update_dict = {
+                        'vodPrimaryUserID': userid,
+                        'vodPrimaryMaster': username
+                    }
+                    dvq.update(**dvq_set_update_dict)
+                order_qs.update(status=1, updTime=nowTime, uid_bucket_id=uid_bucket_id)
+                return HttpResponse(WechatPayObject.xml_to_dict({'return_code': 'SUCCESS', 'return_msg': 'OK'}))
+            return HttpResponse(WechatPayObject.xml_to_dict({'return_code': 'FAIL', 'return_msg': '参数格式校验错误'}))
+        except Exception as e:
+            print(repr(e))
             asy = threading.Thread(target=ModelService.add_log,
-                                   args=(orderID,
-                                         '回调', '修改订单状态'))
+                                   args=('回调',
+                                         '回调报错', repr(e)))
             asy.start()
-            self.callback_dostatus(orderID)
-            print("进来了,微信支付成功回调")
+            return response.json(10, repr(e))
+
 
-            asy = threading.Thread(target=ModelService.add_log,
-                                   args=(orderID,
-                                         '回调', '进来了,微信支付成功回调'))
-            asy.start()
-            order_qs = Order_Model.objects.filter(orderID=orderID)
-            nowTime = int(time.time())
-            order_list = order_qs.values("UID", "channel", "commodity_code", "rank", "isSelectDiscounts",
-                                         "userID__userID", "userID__username")
-            userid = order_list[0]['userID__userID']
-            username = order_list[0]['userID__username']
-            UID = order_list[0]['UID']
-            channel = order_list[0]['channel']
-            rank = order_list[0]['rank']
-            smqs = Store_Meal.objects.filter(id=rank). \
-                values("day", "bucket_id", "bucket__storeDay", "expire")
-            bucketId = smqs[0]['bucket_id']
-            if not smqs.exists():
-                return HttpResponse(WechatPayObject.xml_to_dict({'return_code':'FAIL', 'return_msg':'套餐不存在'}))
-            # ##
-            ubqs = UID_Bucket.objects.filter(bucket__id=bucketId, uid=UID, channel=channel, endTime__gte=nowTime). \
-                       values("id", "bucket__storeDay", "bucket__region", "endTime").order_by('addTime')[:1]
-            expire = smqs[0]['expire']
-            if order_list[0]['isSelectDiscounts'] == 1:
-                expire = smqs[0]['expire'] * 2
-            if ubqs.exists():
-                ubq = ubqs[0]
-                endTime = CommonService.calcMonthLater(expire,ubq['endTime'])
-                ub_cqs = UID_Bucket.objects.filter(id=ubq['id']).update \
-                    (uid=UID, channel=channel, bucket_id=bucketId,
-                     endTime=endTime, updateTime=nowTime)
-                uid_bucket_id = ubq['id']
-            else:
-                endTime = CommonService.calcMonthLater(expire)
-                ub_cqs = UID_Bucket.objects.create \
-                    (uid=UID, channel=channel, bucket_id=bucketId, endTime=endTime, addTime=nowTime, updateTime=nowTime)
-                uid_bucket_id = ub_cqs.id
 
-            dvq = Device_Info.objects.filter(UID=UID, vodPrimaryUserID='', vodPrimaryMaster='')
-            if dvq.exists():
-                dvq_set_update_dict = {
-                    'vodPrimaryUserID': userid,
-                    'vodPrimaryMaster': username
-                }
-                dvq.update(**dvq_set_update_dict)
-            order_qs.update(status=1, updTime=nowTime, uid_bucket_id=uid_bucket_id)
-            return HttpResponse(WechatPayObject.xml_to_dict({'return_code':'SUCCESS', 'return_msg':'OK'}))
-        return HttpResponse(WechatPayObject.xml_to_dict({'return_code':'FAIL', 'return_msg':'参数格式校验错误'}))
 
     def do_create_pay_order(self, request_dict, userID, ip, response):
         uid = request_dict.get('uid', None)