瀏覽代碼

周期付款 - 修复订阅过期后订阅充值失败的问题

linhaohong 1 年之前
父節點
當前提交
9eb8384d87
共有 1 個文件被更改,包括 11 次插入4 次删除
  1. 11 4
      Controller/InAppPurchaseController.py

+ 11 - 4
Controller/InAppPurchaseController.py

@@ -21,7 +21,7 @@ from django.http import HttpResponse
 from Ansjer.config import LOGGER, CONFIG_INFO, CONFIG_TEST, PAY_TYPE_IN_APP_PURCHASE, BASE_DIR
 from Controller.CheckUserData import DataValid
 from Model.models import Order_Model, Store_Meal, Device_Info, UID_Bucket, Unused_Uid_Meal, AiService, Device_User, \
-    SysMsgModel, DeviceApplePackage
+    SysMsgModel, DeviceApplePackage, InAppPurchasePackage
 from Object.AWS.S3Email import S3Email
 from Object.AliSmsObject import AliSmsObject
 from Object.RedisObject import RedisObject
@@ -156,12 +156,16 @@ class InAppPurchaseView(View):
             order_qs = Order_Model.objects.filter(orderID=order_id, UID=uid).values("rank_id")
             if not order_qs.exists():
                 return response.json(173, "订单不存在")
-            store_qs = Store_Meal.objects.filter(id=order_qs[0]['rank_id'], product_id=product_id).values(
+            store_qs = Store_Meal.objects.filter(id=order_qs[0]['rank_id']).values(
                 'id', 'currency', 'price', 'lang__content', 'day', 'commodity_type', 'lang__title', 'expire',
                 'commodity_code', 'discount_price', 'bucket_id', 'bucket__mold', 'cycle_config_id', 'is_ai')
             if not store_qs.exists():
                 return response.json(173, "套餐不存在")
 
+            in_app_purchase_package_qs = InAppPurchasePackage.objects.filter(product_id=product_id)
+            if not in_app_purchase_package_qs.exists():
+                return response.json(173, "内购套餐不存在")
+
             bucket_id = store_qs[0]['bucket_id']
             is_ai = store_qs[0]['is_ai']
             expire = store_qs[0]['expire']
@@ -205,8 +209,11 @@ class InAppPurchaseView(View):
 
             # 修改订阅状态
             if payload.rawType == "Auto-Renewable Subscription":
-                DeviceApplePackage.objects.filter(userID=user_id, uid=uid).update(subscription_status=1,
-                                                                                  original_transaction_id=original_transaction_id)
+                in_app_purchase_package = in_app_purchase_package_qs.values('id').first()
+                package_id = in_app_purchase_package['id']
+                DeviceApplePackage.objects.filter(userID=user_id, uid=uid, package_id=package_id).update(
+                    subscription_status=1,
+                    original_transaction_id=original_transaction_id)
             order_qs.update(status=1, uid_bucket_id=uid_bucket_id,
                             transaction_id=transaction_id, create_vod=1,
                             original_transaction_id=original_transaction_id)