浏览代码

PayPal支付异步检查是否代理订单

zhangdongming 1 月之前
父节点
当前提交
9232b92836
共有 2 个文件被更改,包括 36 次插入12 次删除
  1. 9 0
      Controller/CloudStorage.py
  2. 27 12
      Controller/PaymentCycle.py

+ 9 - 0
Controller/CloudStorage.py

@@ -5,6 +5,7 @@ import datetime
 import json
 import logging
 import sys
+import threading
 import time
 import ssl
 from decimal import Decimal
@@ -1187,6 +1188,14 @@ class CloudStorageView(View):
                     else:
                         AiService.objects.create(uid=uid, channel=channel, detect_status=1, addTime=now_time,
                                                  updTime=now_time, endTime=end_time, use_status=1, orders_id=order_id)
+                try:
+                    check_thread = threading.Thread(
+                        target=AgentOrderView.check_agent_service_package, args=(order_id, uid, rank)
+                    )
+                    check_thread.start()
+                except Exception as e:
+                    logger.error('{}PayPal单次购买异步检查代理订单异常e:{}'.format(order_id, repr(e)))
+                logger.info('PayPal单次购买支付成功orderId:{}'.format(order_id))
                 # 开通云盘服务
                 # icloud_use_qs = IcloudUseDetails.objects.filter(user_id=userid).values('id')
                 # if not icloud_use_qs.exists():

+ 27 - 12
Controller/PaymentCycle.py

@@ -457,10 +457,6 @@ class PaypalCycleNotify(View):
                     # 检查是否云服务代理订单
                     order_id = order_qs[0]['orderID']
                     rank = order_qs[0]['rank_id']
-                    check_thread = threading.Thread(
-                        target=AgentOrderView.check_agent_service_package, args=(order_id, uid, rank)
-                    )
-                    check_thread.start()
 
                     if order_qs[0]['create_vod']:
                         order_qs.update(status=1, trade_no=paypal_transaction_id, updTime=nowTime, fee=fee)
@@ -491,8 +487,16 @@ class PaypalCycleNotify(View):
                         # 核销coupon
                         if coupon_id:
                             CouponModel.objects.filter(id=coupon_id).update(use_status=2, update_time=nowTime)
-
-                    PAY_LOGGER.info('PayPal周期扣款成功---更新交易id:{}'.format(paypal_transaction_id))
+                    # PayPal支付成功后异步检查是否代理订单
+                    try:
+                        check_thread = threading.Thread(
+                            target=AgentOrderView.check_agent_service_package, args=(order_id, uid, rank)
+                        )
+                        check_thread.start()
+                    except Exception as e:
+                        PAY_LOGGER.error('PayPal周期扣款异步检查代理订单失败,order_id:{},e:{}'.format(order_id, repr(e)))
+
+                    PAY_LOGGER.info('PayPal周期扣款成功{}---更新交易id:{}'.format(order_id, paypal_transaction_id))
                     return HttpResponse('success')
                 else:
                     PAY_LOGGER.info('PayPal周期扣款失败---paymentID:{}或paypal_transaction_id:{}为空'.
@@ -573,6 +577,14 @@ class PaypalCycleNotify(View):
                     # 核销coupon
                     if coupon_id:
                         CouponModel.objects.filter(id=coupon_id).update(use_status=2, update_time=nowTime)
+                # PayPal首次扣款异步检查是否代理订单
+                try:
+                    check_thread = threading.Thread(
+                        target=AgentOrderView.check_agent_service_package, args=(order_id, UID, rank)
+                    )
+                    check_thread.start()
+                except Exception as e:
+                    PAY_LOGGER.error('{}PayPal周期扣款首次异步检查代理订单失败:{}'.format(order_id, repr(e)))
                 PAY_LOGGER.info('{} PayPal周期扣款首次扣款成功'.format(UID))
                 return HttpResponse('success')
 
@@ -686,13 +698,16 @@ class PaypalCycleNotify(View):
                 PaypalWebHookEvent.objects.filter(id=paypal_webhook_event_qs.id).update(newOrderID=orderID,
                                                                                         update_status=update_status)
 
-                # 检查是否云服务代理订单
-                check_thread = threading.Thread(
-                    target=AgentOrderView.check_agent_service_package, args=(orderID, UID, rank)
-                )
-                check_thread.start()
+                # PayPal检查是否云服务代理订单
+                try:
+                    check_thread = threading.Thread(
+                        target=AgentOrderView.check_agent_service_package, args=(orderID, UID, rank)
+                    )
+                    check_thread.start()
+                except Exception as e:
+                    PAY_LOGGER.error('{}PayPal周期扣款检查代理订单失败:{}'.format(order_id, repr(e)))
 
-                PAY_LOGGER.info('{} PayPal周期扣款成功'.format(UID))
+                PAY_LOGGER.info('{} PayPal周期扣款成功{}'.format(UID, orderID))
                 return HttpResponse('success')
         except Exception as e:
             PAY_LOGGER.info('PayPal周期扣款异常: errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))