Jelajahi Sumber

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

zhangdongming 1 bulan lalu
induk
melakukan
638363da15

+ 4 - 4
AdminController/CloudServiceManage/AgentOrderController.py

@@ -75,19 +75,19 @@ class AgentOrderView(View):
             serial_number = CommonService.get_serial_number_by_uid(uid)
             a_device_qs = AgentDevice.objects.filter(serial_number=serial_number) \
                 .values('ac_id', 'type', 'status')
-            LOGGER.info(f'******check_agent_service_package检查是否代理*****orderId:{order_id}')
+            LOGGER.info(f'检查当前订单是否绑定代理*****orderID:{order_id},serialNumber:{serial_number}')
 
             if not a_device_qs.exists():
                 return False
-            LOGGER.info(f'******check_agent_service_package当前设备属于代理商*****serial_number:{serial_number}')
+            LOGGER.info(f'当前设备属于代理商orderID:{order_id},serialNumber:{serial_number}')
 
             asy = threading.Thread(target=cls.save_agent_package,
                                    args=(order_id, serial_number, a_device_qs[0]['ac_id'], package_id))
             asy.start()
             return True
         except Exception as e:
-            LOGGER.info('*****AgentOrderView.check_agent_service_package:errLine:{}, errMsg:{}'
-                        .format(e.__traceback__.tb_lineno, repr(e)))
+            LOGGER.error('*****支付成功保存云服务代理订单异常orderID:{},errLine:{}, errMsg:{}'
+                        .format(order_id, e.__traceback__.tb_lineno, repr(e)))
         return False
 
     @classmethod

+ 33 - 2
Controller/InAppPurchaseController.py

@@ -24,6 +24,7 @@ from appstoreserverlibrary.receipt_utility import ReceiptUtility
 from django.views import View
 from django.http import HttpResponse
 
+from AdminController.CloudServiceManage.AgentOrderController import AgentOrderView
 from Ansjer.config import LOGGER, CONFIG_INFO, CONFIG_TEST, PAY_TYPE_IN_APP_PURCHASE, BASE_DIR, CONFIG_US
 from Controller.CheckUserData import DataValid
 from Model.models import Order_Model, Store_Meal, Device_Info, UID_Bucket, Unused_Uid_Meal, AiService, Device_User, \
@@ -268,7 +269,15 @@ class InAppPurchaseView(View):
                                        business_name=f"内购充值成功",
                                        created_time=int(time.time()), updated_time=int(time.time()),
                                        access_result="SUCCESS")
-
+            try:
+                # 检查是否云服务代理订单
+                check_thread = threading.Thread(
+                    target=AgentOrderView.check_agent_service_package, args=(order_id, uid, order_qs[0]['rank_id'])
+                )
+                check_thread.start()
+            except Exception as e:
+                logger.error(f"苹果内购认证交易订单orderID:{order_id}, 检查是否云服务代理订单异常:{repr(e)}")
+            logger.info(f"苹果内购认证交易订单orderID:{order_id}")
             return response.json(0, {'url': pay_result_url})
         except Exception as e:
             redis_obj.del_data(redis_key)
@@ -543,6 +552,17 @@ class InAppPurchaseView(View):
                 # 构建云存套餐消息
                 sys_msg_text_list = cls.cloud_storage_message(uid)
                 cls.do_vod_msg_notice(uid, user_id, lang, sys_msg_text_list)
+
+                try:
+                    # 检查是否云服务代理订单
+                    check_thread = threading.Thread(
+                        target=AgentOrderView.check_agent_service_package, args=(order_id, uid, rank_id)
+                    )
+                    check_thread.start()
+                except Exception as e:
+                    logger.error(f"App Store服务器通知orderID:{order_id}, 检查是否云服务代理订单异常:{repr(e)}")
+                logger.info(f"App Store服务器通知, 续订transactionId:{transaction_id}")
+
                 return HttpResponse(status=200)
 
             elif str(decoded_payload.rawNotificationType) == "SUBSCRIBED":
@@ -638,8 +658,19 @@ class InAppPurchaseView(View):
 
                     # 构建云存套餐消息
                     sys_msg_text_list = cls.cloud_storage_message(uid)
-
                     cls.do_vod_msg_notice(uid, user_id, lang, sys_msg_text_list)
+
+                    try:
+                        # 检查是否云服务代理订单
+                        check_thread = threading.Thread(
+                            target=AgentOrderView.check_agent_service_package,
+                            args=(order_id, uid, rank_id)
+                        )
+                        check_thread.start()
+                    except Exception as e:
+                        logger.error(f"App Store服务器通知orderID:{order_id}, 检查是否云服务代理订单异常:{repr(e)}")
+                    logger.info(f"App Store服务器通知, 订阅transactionId:{transaction_id}")
+
                 return HttpResponse(status=200)
 
             elif str(decoded_payload.rawNotificationType) == "EXPIRED":