def verify_order(self, request):
# get request params
prepay_id = request.POST.get('prepay_id')
order_id = request.POST.get('order_id')
if settings.TESTING:
ret_code = set_order_paid(order_id=order_id)
if ret_code == 1:
return JsonResponse(
{'ok': False, 'msg': FAIL_HINT_MSG, 'code': 4})
return JsonResponse({'ok': True, 'msg': '', 'code': 0})
query_ret = wx.wx_pay_order_query(order_id=order_id)
if query_ret['ok']:
trade_state = query_ret['data']['trade_state']
if trade_state == wx.WX_SUCCESS:
# ????, ????????, ????????
try:
ret_code = set_order_paid(prepay_id=prepay_id,
order_id=query_ret['data'][
'out_trade_no'],
open_id=query_ret['data'][
'openid'])
if ret_code == 1:
return JsonResponse(
{'ok': False, 'msg': FAIL_HINT_MSG, 'code': 4})
except (OrderStatusIncorrect, RefundError):
return JsonResponse(
{'ok': False, 'msg': FAIL_HINT_MSG, 'code': 4})
except Exception as ex:
logger.exception(ex)
return JsonResponse(
{'ok': False, 'msg': '????, ?????', 'code': 5})
return JsonResponse({'ok': True, 'msg': '', 'code': 0})
else:
if trade_state == wx.WX_PAYERROR:
return {'ok': False, 'msg': '????', 'code': 2}
else:
return {'ok': False, 'msg': '???', 'code': 3}
else:
return {'ok': False, 'msg': query_ret['msg'], 'code': 1}
评论列表
文章目录