@@ -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: |
@@ -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), |
@@ -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 |
|
@@ -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): |