BIN
simditor/static/simditor/images/emoji/clock5.png


BIN
simditor/static/simditor/images/emoji/clock530.png


BIN
simditor/static/simditor/images/emoji/clock6.png


BIN
simditor/static/simditor/images/emoji/clock630.png


BIN
simditor/static/simditor/images/emoji/clock7.png


BIN
simditor/static/simditor/images/emoji/clock730.png


BIN
simditor/static/simditor/images/emoji/clock8.png


BIN
simditor/static/simditor/images/emoji/clock830.png


BIN
simditor/static/simditor/images/emoji/clock9.png


BIN
simditor/static/simditor/images/emoji/clock930.png


BIN
simditor/static/simditor/images/emoji/closed_book.png


BIN
simditor/static/simditor/images/emoji/closed_lock_with_key.png


BIN
simditor/static/simditor/images/emoji/closed_umbrella.png


BIN
simditor/static/simditor/images/emoji/cloud.png


BIN
simditor/static/simditor/images/emoji/clubs.png


BIN
simditor/static/simditor/images/emoji/cn.png


BIN
simditor/static/simditor/images/emoji/cocktail.png


BIN
simditor/static/simditor/images/emoji/coffee.png


BIN
simditor/static/simditor/images/emoji/cold_sweat.png


BIN
simditor/static/simditor/images/emoji/collision.png


BIN
simditor/static/simditor/images/emoji/computer.png


BIN
simditor/static/simditor/images/emoji/confetti_ball.png


BIN
simditor/static/simditor/images/emoji/confounded.png


BIN
simditor/static/simditor/images/emoji/confused.png


BIN
simditor/static/simditor/images/emoji/congratulations.png


BIN
simditor/static/simditor/images/emoji/construction.png


BIN
simditor/static/simditor/images/emoji/construction_worker.png


BIN
simditor/static/simditor/images/emoji/convenience_store.png


BIN
simditor/static/simditor/images/emoji/cookie.png


BIN
simditor/static/simditor/images/emoji/cool.png


BIN
simditor/static/simditor/images/emoji/cop.png


BIN
simditor/static/simditor/images/emoji/copyright.png


BIN
simditor/static/simditor/images/emoji/corn.png


BIN
simditor/static/simditor/images/emoji/couple.png


BIN
simditor/static/simditor/images/emoji/couple_with_heart.png


BIN
simditor/static/simditor/images/emoji/couplekiss.png


BIN
simditor/static/simditor/images/emoji/cow.png


BIN
simditor/static/simditor/images/emoji/cow2.png


BIN
simditor/static/simditor/images/emoji/credit_card.png


BIN
simditor/static/simditor/images/emoji/crocodile.png


BIN
simditor/static/simditor/images/emoji/crossed_flags.png


BIN
simditor/static/simditor/images/emoji/crown.png


BIN
simditor/static/simditor/images/emoji/cry.png


BIN
simditor/static/simditor/images/emoji/crying_cat_face.png


BIN
simditor/static/simditor/images/emoji/crystal_ball.png


BIN
simditor/static/simditor/images/emoji/cupid.png


BIN
simditor/static/simditor/images/emoji/curly_loop.png


BIN
simditor/static/simditor/images/emoji/currency_exchange.png


BIN
simditor/static/simditor/images/emoji/curry.png


BIN
simditor/static/simditor/images/emoji/custard.png


BIN
simditor/static/simditor/images/emoji/customs.png


BIN
simditor/static/simditor/images/emoji/cyclone.png


BIN
simditor/static/simditor/images/emoji/dancer.png


BIN
simditor/static/simditor/images/emoji/dancers.png


BIN
simditor/static/simditor/images/emoji/dango.png


BIN
simditor/static/simditor/images/emoji/dart.png


BIN
simditor/static/simditor/images/emoji/dash.png


BIN
simditor/static/simditor/images/emoji/date.png


BIN
simditor/static/simditor/images/emoji/de.png


BIN
simditor/static/simditor/images/emoji/deciduous_tree.png


BIN
simditor/static/simditor/images/emoji/department_store.png


BIN
simditor/static/simditor/images/emoji/diamond_shape_with_a_dot_inside.png


BIN
simditor/static/simditor/images/emoji/diamonds.png


BIN
simditor/static/simditor/images/emoji/disappointed.png


BIN
simditor/static/simditor/images/emoji/dizzy.png


BIN
simditor/static/simditor/images/emoji/dizzy_face.png


BIN
simditor/static/simditor/images/emoji/do_not_litter.png


BIN
simditor/static/simditor/images/emoji/dog.png


BIN
simditor/static/simditor/images/emoji/dog2.png


BIN
simditor/static/simditor/images/emoji/dollar.png


BIN
simditor/static/simditor/images/emoji/dolls.png


BIN
simditor/static/simditor/images/emoji/dolphin.png


BIN
simditor/static/simditor/images/emoji/door.png


BIN
simditor/static/simditor/images/emoji/doughnut.png


BIN
simditor/static/simditor/images/emoji/dragon.png


BIN
simditor/static/simditor/images/emoji/dragon_face.png


BIN
simditor/static/simditor/images/emoji/dress.png


BIN
simditor/static/simditor/images/emoji/dromedary_camel.png


BIN
simditor/static/simditor/images/emoji/droplet.png


BIN
simditor/static/simditor/images/emoji/dvd.png


BIN
simditor/static/simditor/images/emoji/e-mail.png


BIN
simditor/static/simditor/images/emoji/ear.png


BIN
simditor/static/simditor/images/emoji/ear_of_rice.png


BIN
simditor/static/simditor/images/emoji/earth_africa.png


BIN
simditor/static/simditor/images/emoji/earth_americas.png


BIN
simditor/static/simditor/images/emoji/earth_asia.png


BIN
simditor/static/simditor/images/emoji/egg.png


BIN
simditor/static/simditor/images/emoji/eggplant.png


BIN
simditor/static/simditor/images/emoji/eight.png


BIN
simditor/static/simditor/images/emoji/eight_pointed_black_star.png


BIN
simditor/static/simditor/images/emoji/eight_spoked_asterisk.png


BIN
simditor/static/simditor/images/emoji/eightball.png


BIN
simditor/static/simditor/images/emoji/electric_plug.png


BIN
simditor/static/simditor/images/emoji/elephant.png


BIN
simditor/static/simditor/images/emoji/email.png


+ 0 - 0
simditor/static/simditor/images/emoji/emojify.css

@@ -0,0 +1 @@

add order_id for lensman_origin_photo_upload_api & check multi paid · 07da1c3383 - Gogs: Go Git Service

add order_id for lensman_origin_photo_upload_api & check multi paid

Brightcells лет %!s(int64=9): %!d(string=назад)
Родитель
Сommit
07da1c3383
4 измененных файлов с 9 добавлено и 4 удалено
  1. 3 4
      group/lensman_views.py
  2. 1 0
      pay/models.py
  3. 4 0
      pay/views.py
  4. 1 0
      utils/error/errno_utils.py

+ 3 - 4
group/lensman_views.py

@@ -283,6 +283,8 @@ def lensman_photo_upload_api(request):
283 283
 @logit
284 284
 @transaction.atomic
285 285
 def lensman_origin_photo_upload_api(request):
286
+    order_id = request.POST.get('order_id', '')
287
+
286 288
     user_id = lensman_id = request.POST.get('user_id', '')
287 289
     session_id = request.POST.get('session_id', '')
288 290
 
@@ -293,13 +295,10 @@ def lensman_origin_photo_upload_api(request):
293 295
     photo = request.FILES.get('photo', '')
294 296
 
295 297
     try:
296
-        order = OrderInfo.objects.get(session_id=session_id, lensman_photo_id=photo_id)
298
+        order = OrderInfo.objects.get(order_id=order_id, pay_status=OrderInfo.PAID)
297 299
     except OrderInfo.DoesNotExist:
298 300
         return response(OrderStatusCode.WX_ORDER_NOT_FOUND)
299 301
 
300
-    if order.pay_status != OrderInfo.PAID:
301
-        return response(OrderStatusCode.WX_ORDER_NOT_PAY)
302
-
303 302
     from_uid = order.from_uid
304 303
     # 原图已删除, 处理退款逻辑
305 304
     if deleted:

+ 1 - 0
pay/models.py

@@ -107,6 +107,7 @@ class OrderInfo(CreateUpdateMixin):
107 107
         except GroupPhotoInfo.DoesNotExist:
108 108
             group_photo = {}
109 109
         return {
110
+            'order_id': self.order_id,
110 111
             'session_id': self.session_id,
111 112
             'photo_id': self.lensman_photo_id,
112 113
             'group_photo_info': group_photo and group_photo.photo_info(user_id),

+ 4 - 0
pay/views.py

@@ -43,6 +43,10 @@ def wx_order_create_api(request):
43 43
     except GroupPhotoInfo.DoesNotExist:
44 44
         return response(GroupPhotoStatusCode.GROUP_PHOTO_NOT_FOUND)
45 45
 
46
+    # 判断是否重复购买
47
+    if OrderInfo.objects.filter(photo_id=photo_id, photo_type=photo_type, from_uid=user_id, pay_status=OrderInfo.PAID).exists():
48
+        return response(OrderStatusCode.WX_ORDER_PAID_ALREADY_EXISTS)
49
+
46 50
     body = request.POST.get('body', '')  # 商品描述
47 51
     total_fee = int(request.POST.get('total_fee', 0))  # 总金额,单位分
48 52
 

+ 1 - 0
utils/error/errno_utils.py

@@ -78,6 +78,7 @@ class OrderStatusCode(BaseStatusCode):
78 78
     SIGN_CHECK_FAIL = StatusCodeField(404010, u'Sign Check Fail', description=u'签名校验失败')
79 79
     FEE_CHECK_FAIL = StatusCodeField(404011, u'FEE Check Fail', description=u'金额校验失败')
80 80
     NO_DETAIL_PERMISSION = StatusCodeField(404015, u'No Detail Permission', description=u'没有详情权限')
81
+    WX_ORDER_PAID_ALREADY_EXISTS = StatusCodeField(404020, u'WX Order Paid Already Exists', description=u'照片已购买')
81 82
 
82 83
 
83 84
 class WithdrawStatusCode(BaseStatusCode):