Переглянути джерело

记录苹果内购收据认证响应

locky 1 рік тому
батько
коміт
f3c2810984
2 змінених файлів з 15 додано та 4 видалено
  1. 9 0
      Ansjer/config.py
  2. 6 4
      Controller/InAppPurchaseController.py

+ 9 - 0
Ansjer/config.py

@@ -27,6 +27,15 @@ RESET_REGION_ID_SERIAL_REDIS_LIST = 'reset_region_id_serial_redis_list'
 # 地区id列表
 REGION_ID_LIST = [1, 2, 3, 4, 5]
 
+# 支付类型
+PAY_TYPE_PAYPAL = 1
+PAY_TYPE_ALIPAY = 2
+PAY_TYPE_WECHAT = 3
+PAY_TYPE_APPLE = 4
+PAY_TYPE_IN_APP_PURCHASE = 5
+PAY_TYPE_EXPERIENCE = 10
+PAY_TYPE_CDK = 11
+
 # 阿里云AccessKey和AccessKeySecret
 ALI_ACCESS_KEY_ID = 'LTAI5t9BXQWTPfBEh2Qu8YNA'
 ALI_ACCESS_KEY_SECRET = '8TcEjHkHGsJaknbHlHzZP4HXQ7GuvT'

+ 6 - 4
Controller/InAppPurchaseController.py

@@ -6,7 +6,7 @@ import time
 import itunesiap
 from django.db.models import Q
 from django.views import View
-from Ansjer.config import LOGGER
+from Ansjer.config import LOGGER, CONFIG_INFO, CONFIG_TEST, PAY_TYPE_IN_APP_PURCHASE
 from Controller.CheckUserData import DataValid
 from Model.models import Order_Model, Store_Meal, Device_Info, UID_Bucket, Unused_Uid_Meal, AiService, Device_User, \
     SysMsgModel
@@ -15,6 +15,8 @@ from Object.AliSmsObject import AliSmsObject
 from Object.RedisObject import RedisObject
 from Service.CommonService import CommonService
 
+env = itunesiap.env.sandbox if CONFIG_INFO != CONFIG_TEST else itunesiap.env.production
+
 
 class InAppPurchaseView(View):
     def get(self, request, *args, **kwargs):
@@ -75,11 +77,11 @@ class InAppPurchaseView(View):
                     return response.json(10033)
 
             order_id = CommonService.createOrderID()
-            verify_response = itunesiap.verify(receipt, env=itunesiap.env.sandbox)
-            print(verify_response.receipt.in_app[0]['product_id'])     # response.receipt.last_in_app.product_id
+            verify_response = itunesiap.verify(receipt, env=env)
+            LOGGER.info('苹果内购收据认证响应:{}'.format(verify_response.text))
             product_id = verify_response.receipt.in_app[0]['product_id']
 
-            pay_type = 5
+            pay_type = PAY_TYPE_IN_APP_PURCHASE
             now_time = int(time.time())
 
             store_qs = Store_Meal.objects.filter(