def create_unpay_order_mobile(user, video_id): try: created_flag = False unpay_order = Order() timeStamp = time.time() out_trade_no = "{0}{1}".format(getRandomStr(6),int(timeStamp*100)) video = get_video_by_id(video_id) account = get_account_from_user(user) try: t_order = Order.objects.filter(account=account).all() if t_order != None: for o in t_order: v = o.video if v == video: if o.pay_state == 2: return o elif o.pay_state == 1: if check_pay_by_order_num(o.order_num) == True: o.pay_state = 2 o.save() return o created_flag = True unpay_order = o break except Exception, e: printError("create_unpay_order_mobile-1: " + str(e)) #unpay_order = Order() unpay_order.order_num = out_trade_no unpay_order.account = account unpay_order.video = video unpay_order.name = video.title unpay_order.pic = video.logo_img if created_flag == False: unpay_order.price = video.money unpay_order.order_valid_day = video.valid_day unpay_order.pay_state = 1 #unpay_order.wxpay_qrcode = get_wxpay_qrcode(unpay_order)#"/static/storage/wxpay_qrcode/150831170420-zrOL.png" with transaction.atomic(): unpay_order.save() unpay_order.video = video unpay_order.save() if created_flag == False: add_user_order_info(account, unpay_order, pc_flag=False) return unpay_order
def get_video_state(user, video): if user == None: return False try: account = get_account_from_user(user) if account == None: return False user_orders = Order.objects.filter(account=account).all() is_paid = False if user.is_superuser == True: is_paid = True elif getLen(user_orders) < 1: is_paid = False else: for o in user_orders: if o.video == video: if o.pay_state == 2: if check_chaoshi(o.release_date, o.order_valid_day) == True: return False else: return True elif o.pay_state == 1: if check_pay_by_order_num(o.order_num) == True: o.pay_state = 2 o.save() # add user order info add_user_order_info(account, o, pc_flag=1) return True else: if o.price == 0: if check_chaoshi(o.release_date, o.order_valid_day) == True: if o.pay_state == 1: o.delete() return False else: return True except Exception, e: printError("get_video_state: " + str(e))
def create_unpay_order(user, video_id): try: created_flag = False unpay_order = Order() video = get_video_by_id(video_id) account = get_account_from_user(user) timeStamp = time.time() out_trade_no = "{0}{1}".format(getRandomStr(6),int(timeStamp*100)) time_format = '%Y-%m-%d %H:%M:%S' try: t_order = Order.objects.filter(account=account).all() if t_order != None: for o in t_order: v = o.video if v == video: if o.pay_state == 1: #current = datetime.datetime.now() #current_str = current.strftime(time_format) #order_time_str = o.release_date.strftime(time_format) #current = datetime.datetime.strptime(current_str,time_format) #order_time = datetime.datetime.strptime(order_time_str,time_format) #time_space = (current-order_time).seconds #if time_space > 5000: if True: if check_pay_by_order_num(o.order_num) == True: o.pay_state = 2 o.save() return o elif o.pay_state == 2: return o created_flag = True unpay_order = o break #elif o.pay_state == -1: # o.pay_state = 1 #o.order_num = out_trade_no # remove_file(o.wxpay_qrcode) # o.wxpay_qrcode = get_wxpay_qrcode(o) # o.save() except Exception, e: printError("create_unpay_order-1: " + str(e)) #unpay_order = Order() unpay_order.order_num = out_trade_no unpay_order.account = account unpay_order.video = video unpay_order.name = video.title unpay_order.pic = video.logo_img if created_flag == False: unpay_order.price = video.money unpay_order.order_valid_day = video.valid_day unpay_order.pay_state = 1 unpay_order.wxpay_qrcode = get_wxpay_qrcode(unpay_order)#"/static/storage/wxpay_qrcode/150831170420-zrOL.png" with transaction.atomic(): unpay_order.save() unpay_order.video = video unpay_order.save() if created_flag == False: add_user_order_info(account, unpay_order, pc_flag=True) return unpay_order