Beispiel #1
0
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
Beispiel #2
0
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))
Beispiel #3
0
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