Exemplo n.º 1
0
    def post(self, sid):
        try:
            shop = Shop.get(id = sid)
        except:
            self.flash("此商品不存在")
            self.redirect("/admin/shops")
            return
        
        name = self.get_argument("name", None)
        price = float(str(self.get_argument("price", 0.0)))
        order = int(self.get_argument("order", 1))

        shopattr = ShopAttr()
        shopattr.sid = sid
        shopattr.name = name
        shopattr.price = price
        shopattr.order = order

        try:
            shopattr.validate()
            shopattr.save()
            self.flash("规格%s添加成功" % name)
            self.redirect("/admin/shopattrs/%d" % int(sid) )
            return
        except Exception as ex:
            self.flash(str(ex))
        
        self.render('admin/addshopattr.html', shop = shop, maxorder = ShopAttr.maxorder(sid))
Exemplo n.º 2
0
    def post(self, sid):
        try:
            shop = Shop.get(id=sid)
        except:
            self.flash("此商品不存在")
            self.redirect("/admin/shops")
            return

        name = self.get_argument("name", None)
        price = float(str(self.get_argument("price", 0.0)))
        order = int(self.get_argument("order", 1))

        shopattr = ShopAttr()
        shopattr.sid = sid
        shopattr.name = name
        shopattr.price = price
        shopattr.order = order

        try:
            shopattr.validate()
            shopattr.save()
            self.flash(u"规格%s添加成功" % name)
            self.redirect("/admin/shopattrs/%d" % int(sid))
            return
        except Exception, ex:
            self.flash(str(ex))
Exemplo n.º 3
0
    def post(self):

        result = {'status': False, 'msg': 0}
        user = self.get_current_user()

        if user:
            sid = int(self.get_argument("sid", 0))
            said = int(self.get_argument("said", 0))
            num = int(self.get_argument("num", 1))

            #判断商品是否下架
            if sid > 0 and said > 0 and num > 0:
                try:
                    Shop.get(id=sid)
                    ShopAttr.get(id=said)

                    #判断是否有未使用的订单或生成新订单
                    try:
                        try:
                            order = Order.get(uid=user.id, status=0)
                        except:
                            order = Order()
                            order.uid = user.id
                            order.mobile = user.mobile
                            order.ordered = int(time.time())
                            try:
                                order.save()
                            except Exception, ex:
                                logging.error(ex)

                        try:
                            orderitem = OrderItem.get(oid=order.id,
                                                      sid=sid,
                                                      said=said)
                        except:
                            orderitem = OrderItem()

                        orderitem.oid = order.id
                        orderitem.sid = sid
                        orderitem.said = said
                        orderitem.num = orderitem.num + num
                        orderitem.save()

                        result['status'] = True
                        result['msg'] = 200

                    except Exception, ex:
                        logging.error(ex)
                        result['msg'] = 500

                except:
Exemplo n.º 4
0
    def post(self):
        
        result = {'status' : False, 'msg' : 0}
        user = self.get_current_user()
        
        if user:
            sid = int(self.get_argument("sid", 0))
            said = int(self.get_argument("said", 0))
            num = int(self.get_argument("num", 1))
            
            #判断商品是否下架
            if sid > 0 and said > 0 and num > 0:
                try:
                    Shop.get(id = sid)
                    ShopAttr.get(id = said)
                    
                    #判断是否有未使用的订单或生成新订单
                    try:
                        try:
                            order = Order.get(uid = user.id, status = 0)
                        except:
                            order = Order()
                            order.uid = user.id
                            order.mobile = user.mobile
                            order.ordered = int(time.time())
                            try:
                                order.save()
                            except Exception, ex:
                                logging.error(ex)
                        
                        try:
                            orderitem = OrderItem.get(oid = order.id, sid = sid, said = said)
                        except:
                            orderitem = OrderItem()

                        orderitem.oid = order.id
                        orderitem.sid = sid
                        orderitem.said = said
                        orderitem.num = orderitem.num + num
                        orderitem.save()
                        
                        result['status'] = True
                        result['msg'] = 200
                        
                    except Exception, ex:
                        logging.error(ex)
                        result['msg'] = 500
                    
                except:
Exemplo n.º 5
0
    def get(self):
        orderitems = []
        user = self.current_user

        try:
            order = Order.get(uid=user.id, status=0)

            for orderitem in OrderItem.select().where(
                    OrderItem.oid == order.id).dicts():
                try:
                    orderitem['shop'] = Shop.get(id=orderitem['sid'])
                    if orderitem['said'] > 0:
                        orderitem['shopattr'] = ShopAttr.get(
                            id=orderitem['said'])
                    orderitems.append(orderitem)
                except:
                    pass
        except:
            order = Order()

        ashops = Shop.select().where((Shop.cid == 2) & (Shop.status != 9))
        self.render("shop/order.html",
                    orderitems=orderitems,
                    order=order,
                    ashops=ashops)
Exemplo n.º 6
0
 def get(self, oid):
     orderitems = []
     price = 0.0
     credit = 0.0
     order = None
     try:
         order = Order.get(id = oid)
         print order.id
         for orderitem in OrderItem.select().where(OrderItem.oid == order.id).dicts():
             try:
                 orderitem['shop'] = Shop.get(id = orderitem['sid'])
                 _oiprice = orderitem['shop'].price
                 
                 if orderitem['said'] > 0:
                     orderitem['shopattr'] = ShopAttr.get(id = orderitem['said'])
                     if orderitem['shop'].cid == 1:
                         _oicredit = orderitem['shopattr'].price
                         credit = credit + _oicredit * orderitem['num']
                         _oiprice = orderitem['shopattr'].price
                     else:
                         _oiprice = orderitem['shopattr'].price
                 else:
                     _oiprice = float(_oiprice)
                     
                 orderitems.append(orderitem)
                 price = price + float(_oiprice) * orderitem['num']
             except:
                 pass
         print price
     except:
         pass
     
     self.render("/responsive/user_confirmorder.html", order = order, credit = credit, orderitems = orderitems)
Exemplo n.º 7
0
    def get(self, ename):

        try:
            shop = Shop.get(ename=ename)
            shop.views = shop.views + 1
            shop.save()
            category = Category.get(id=shop.cid)
        except:
            raise HTTPError(404)
            return

        categoryattrs = CategoryAttr.select().where(
            CategoryAttr.cid == shop.cid)
        shopattrs = ShopAttr.select().where(ShopAttr.sid == shop.id)
        if shop.args:
            shop.args = simplejson.loads(shop.args)
        pics = ShopPic.select().where(ShopPic.sid == shop.id)

        recomshops = Shop.select().where((Shop.status == 1)
                                         & (Shop.id != shop.id)).paginate(
                                             1, 5)
        self.render("shop/shop.html",
                    shop=shop,
                    category=category,
                    categoryattrs=categoryattrs,
                    shopattrs=shopattrs,
                    pics=pics,
                    recomshops=recomshops)
Exemplo n.º 8
0
 def get(self, sid):
     try:
         shop = Shop.get(id = sid)
     except:
         self.flash("此商品不存在")
         self.redirect("/admin/shops")
         return
     
     self.render('admin/addshopattr.html', shop = shop, maxorder = ShopAttr.maxorder(sid))
Exemplo n.º 9
0
    def get(self):
        orderitems = []
        user = self.current_user

        order = None

        distributions = self.get_distributions()
        price = 0.0
        credit = 0.0

        try:
            order = Order.get(uid=user.id, status=0)

            try:
                mobile = '18014349809'
                sendmsg(self.settings, mobile, '新订单')
            except:
                pass

            for orderitem in OrderItem.select().where(
                    OrderItem.oid == order.id).dicts():
                try:
                    orderitem['shop'] = Shop.get(id=orderitem['sid'])
                    _oiprice = orderitem['shop'].price

                    if orderitem['said'] > 0:
                        orderitem['shopattr'] = ShopAttr.get(
                            id=orderitem['said'])
                        if orderitem['shop'].cid == 1:
                            _oicredit = orderitem['shopattr'].price
                            credit = credit + _oicredit * orderitem['num']
                        else:
                            _oiprice = orderitem['shopattr'].price
                    else:
                        _oiprice = float(_oiprice)

                    orderitems.append(orderitem)

                    price = price + _oiprice * orderitem['num']

                except:
                    pass
            order.price = price
            order.save()

        except:
            pass

        if orderitems:
            self.render("shop/settle.html",
                        tmday=datetime.date.today() +
                        datetime.timedelta(days=1),
                        order=order,
                        orderitems=orderitems,
                        distributions=distributions.values(),
                        credit=credit)
Exemplo n.º 10
0
    def get(self, said):
        try:
            shopattr = ShopAttr.get(id=said)
            shop = Shop.get(id=shopattr.sid)
        except:
            self.flash("此商品不存在")
            self.redirect("/admin/shops")
            return

        self.render('admin/editshopattr.html', shop=shop, shopattr=shopattr)
Exemplo n.º 11
0
 def get(self, said):
     try:
         shopattr = ShopAttr.get(id = said)
         shop = Shop.get(id = shopattr.sid)
     except:
         self.flash("此商品不存在")
         self.redirect("/admin/shops")
         return
     
     self.render('admin/editshopattr.html', shop = shop, shopattr = shopattr)
Exemplo n.º 12
0
 def get(self, sid):
     try:
         shop = Shop.get(id = sid)
     except:
         self.flash("此商品不存在")
         self.redirect("/admin/addshop")
         return
     
     shopattrs = [shopattr for shopattr in ShopAttr.select().where(ShopAttr.sid == sid)]
     self.render('admin/shopattr.html', shop = shop, shopattrs = shopattrs)
Exemplo n.º 13
0
    def get(self):
        user = self.get_current_user()
        status = self.get_argument("status", None)

        ft = (Order.uid == user.id)

        if status:
            ft = ft & (Order.status == status)

        page = int(self.get_argument("page", 1))
        pagesize = self.settings['admin_pagesize']

        oq = Order.select().where(ft)
        total = oq.count()

        orders = []
        for order in oq.paginate(page, pagesize).dicts():
            order['orderitems'] = []

            for orderitem in OrderItem.select().where(
                    OrderItem.oid == order['id']).dicts():

                try:
                    orderitem['shop'] = Shop.get(id=orderitem['sid'])
                    if orderitem['said'] > 0:
                        orderitem['shopattr'] = ShopAttr.get(
                            id=orderitem['said'])
                except:
                    break

                order['orderitems'].append(orderitem)

            if order['orderitems']:
                orders.append(order)

            else:
                Order.delete().where(Order.id == order['id']).execute()

                try:
                    user = User.get(id=user.id)

                    if user.order > 0:
                        user.order = user.order - 1
                        user.save()
                        self.session['user'] = user
                        self.session.save()
                except:
                    pass

        self.render('user/order.html',
                    orders=orders,
                    total=total,
                    page=page,
                    pagesize=pagesize)
Exemplo n.º 14
0
 def get(self):
     user = self.get_current_user()
     status = self.get_argument("status", None)
     
     ft = (Order.uid == user.id)
     
     if status:
         ft = ft & (Order.status == status)
     
     page = int(self.get_argument("page", 1))
     pagesize = self.settings['admin_pagesize']
     
     oq = Order.select().where(ft)
     total = oq.count()
     
     orders = []
     for order in oq.paginate(page, pagesize).dicts():
         order['orderitems'] = []
         
         for orderitem in OrderItem.select().where(OrderItem.oid == order['id']).dicts():
             
             try:
                 orderitem['shop'] = Shop.get(id = orderitem['sid'])
                 if orderitem['said'] > 0:
                     orderitem['shopattr'] = ShopAttr.get(id = orderitem['said'])
             except:
                 break
             
             order['orderitems'].append(orderitem)
         
         if order['orderitems']:
             orders.append(order)
             
         else:
             Order.delete().where(Order.id == order['id']).execute()
             
             try:
                 user = User.get(id = user.id)
                 
                 if user.order > 0:
                     user.order = user.order - 1
                     user.save()
                     self.session['user'] = user
                     self.session.save()
             except:
                 pass
             
     
     self.render('user/order.html', orders = orders, total = total, page = page, pagesize = pagesize)
Exemplo n.º 15
0
 def get(self):
     orderitems = []
     user = self.current_user
     
     order = None
     
     distributions = self.get_distributions()
     price = 0.0
     credit = 0.0
     
     try:
         order = Order.get(uid = user.id, status = 0)
         
         try:
             mobile = '18014349809'
             sendmsg(self.settings, mobile, '新订单')
         except:
             pass
             
         for orderitem in OrderItem.select().where(OrderItem.oid == order.id).dicts():
             try:
                 orderitem['shop'] = Shop.get(id = orderitem['sid'])
                 _oiprice = orderitem['shop'].price
                 
                 if orderitem['said'] > 0:
                     orderitem['shopattr'] = ShopAttr.get(id = orderitem['said'])
                     if orderitem['shop'].cid == 1:
                         _oicredit = orderitem['shopattr'].price
                         credit = credit + _oicredit * orderitem['num']
                     else:
                         _oiprice = orderitem['shopattr'].price
                 else:
                     _oiprice = float(_oiprice)
                 
                 orderitems.append(orderitem)
                 
                 price = price + _oiprice * orderitem['num']
                 
             except:
                 pass
         order.price = price
         order.save()
         
     except:
         pass
     
     if orderitems:
         self.render("shop/settle.html", tmday = datetime.date.today() + datetime.timedelta(days=1), order  = order, orderitems = orderitems, distributions = distributions.values(), credit = credit)
Exemplo n.º 16
0
    def get(self):
        status = self.get_argument("status", None)
        ft = (Order.status >= 0)
        if status:
            ft = ft & (Order.status == status)

        page = int(self.get_argument("page", 1))
        pagesize = self.settings['admin_pagesize']

        oq = Order.select().where(ft)
        total = oq.count()

        orders = []
        for order in oq.paginate(page, pagesize).order_by(
                Order.ordered.desc()).dicts():
            order['orderitems'] = []
            try:
                order['ua'] = UserAddr.get(id=order['uaid'])
            except:
                order['ua'] = UserAddr()

            try:
                order['distr'] = Distribution.get(id=order['distrid'])
            except:
                order['distr'] = Distribution()

            for orderitem in OrderItem.select().where(
                    OrderItem.oid == order['id']).dicts():

                try:
                    orderitem['shop'] = Shop.get(id=orderitem['sid'])
                    if orderitem['said'] > 0:
                        orderitem['shopattr'] = ShopAttr.get(
                            id=orderitem['said'])

                    order['orderitems'].append(orderitem)
                except:
                    orderitem['shop'] = Shop()

            if order['orderitems']:
                orders.append(order)

        self.render('admin/order.html',
                    orders=orders,
                    total=total,
                    page=page,
                    pagesize=pagesize)
Exemplo n.º 17
0
 def get(self, ename):
     
     try:
         shop = Shop.get(ename = ename)
         shop.views = shop.views + 1
         shop.save()
         category = Category.get(id = shop.cid)
     except:
         raise HTTPError(404)
         return
     
     categoryattrs = CategoryAttr.select().where(CategoryAttr.cid == shop.cid)
     shopattrs = ShopAttr.select().where(ShopAttr.sid == shop.id)
     if shop.args:
         shop.args = simplejson.loads(shop.args)
     pics = ShopPic.select().where(ShopPic.sid == shop.id)
     
     recomshops = Shop.select().where((Shop.status == 1) & (Shop.id != shop.id)).paginate(1, 5)
     self.render("shop/shop.html", shop = shop, category = category, categoryattrs = categoryattrs, shopattrs = shopattrs, pics = pics, recomshops = recomshops)
Exemplo n.º 18
0
 def get(self):
     orderitems = []
     user = self.current_user
     
     try:
         order = Order.get(uid = user.id, status = 0)
         
         for orderitem in OrderItem.select().where(OrderItem.oid == order.id).dicts():
             try:
                 orderitem['shop'] = Shop.get(id = orderitem['sid'])
                 if orderitem['said'] > 0:
                     orderitem['shopattr'] = ShopAttr.get(id = orderitem['said'])
                 orderitems.append(orderitem)
             except:
                 pass
     except:
         order = Order()
     
     ashops = Shop.select().where((Shop.cid == 2) & (Shop.status != 9))
     self.render("shop/order.html", orderitems = orderitems, order = order, ashops = ashops)
Exemplo n.º 19
0
 def get(self):
     status = self.get_argument("status", None)
     ft = (Order.status >= 0)
     if status:
         ft = ft & (Order.status == status)
     
     page = int(self.get_argument("page", 1))
     pagesize = self.settings['admin_pagesize']
     
     oq = Order.select().where(ft)
     total = oq.count()
             
     orders = []
     for order in oq.paginate(page, pagesize).order_by(Order.ordered.desc()).dicts():
         order['orderitems'] = []
         try:
             order['ua'] = UserAddr.get(id = order['uaid'])
         except:
             order['ua'] = UserAddr()
         
         try:
             order['distr'] = Distribution.get(id = order['distrid'])
         except:
             order['distr'] = Distribution()
             
         for orderitem in OrderItem.select().where(OrderItem.oid == order['id']).dicts():
             
             try:
                 orderitem['shop'] = Shop.get(id = orderitem['sid'])
                 if orderitem['said'] > 0:
                     orderitem['shopattr'] = ShopAttr.get(id = orderitem['said'])
                 
                 order['orderitems'].append(orderitem)
             except:
                 orderitem['shop'] = Shop()
         
         if order['orderitems']:
             orders.append(order)
     
     self.render('admin/order.html', orders = orders, total = total, page = page, pagesize = pagesize)
Exemplo n.º 20
0
 def get(self, said):
     ShopAttr.delete().where(ShopAttr.id == said).execute()
     self.flash(u"规格删除成功")
     self.redirect(self.request.headers["Referer"])
Exemplo n.º 21
0
 def get(self, said):
     ShopAttr.delete().where(ShopAttr.id == said).execute()
     self.flash(u"规格删除成功")
     self.redirect(self.request.headers["Referer"])
Exemplo n.º 22
0
 def post(self):
     order = None
     user = self.get_current_user()
     
     try:
         order = Order.get(uid = user.id, status = 0)
         
         mobile = self.get_argument("mobile", user.mobile)
         uaid = self.get_argument("uaid", None)
         distrid = self.get_argument("distrid", None)
         day = self.get_argument("day", datetime.date.today() + datetime.timedelta(days=1))
         hour = int(self.get_argument("hour", 10))
         payment = self.get_argument("payment", 0)
         message = self.get_argument("message", "")
         isinvoice = self.get_argument("isinvoice", 0)
         invoicesub = self.get_argument("invoicesub", 0)
         invoicename = self.get_argument("invoicename", "")
         invoicecontent = self.get_argument("payment", 1)
         shippingprice = self.get_argument("shippingprice", 0.0)
         
         if uaid and distrid:
             try:
                 distrib = Distribution.get(id = distrid)
                 shippingprice = distrib.price
             except:
                 pass
             
             order.mobile = mobile
             order.uaid = uaid
             order.distrid = distrid
             order.distribbed = "%s %d:00:00" % (str(day), hour)
             order.payment = payment
             order.message = message
             
             order.isinvoice = isinvoice
             
             if isinvoice:
                 order.invoicesub = invoicesub
                 order.invoicename = invoicename
                 order.invoicecontent = invoicecontent
             
             order.shippingprice = shippingprice
             
             order.save()
             
             
                 
             body = ""
             for orderitem in OrderItem.select().where(OrderItem.oid == order.id).dicts():
                     
                 try:
                     shop = Shop.get(id = orderitem['sid'])
                         
                     sname = ""
                     if orderitem['said'] > 0:
                         shopattr = ShopAttr.get(id = orderitem['said'])
                         
                         if shop.cid == 1:
                             credits = shopattr.price * orderitem['num']
                             
                             if credits > user.credit:
                                 OrderItem.delete().where(OrderItem.id == orderitem['id']).execute()
                             else:
                                 user = User.get(id = user.id)
                                 user.credit = user.credit - credits
                                 user.save()
                                 
                                 clog = CreditLog()
                                 clog.uid = user.id
                                 clog.mobile = user.mobile
                                 clog.ctype = 1
                                 clog.affect = int(credits)
                                 clog.log = u"购买" + shop.name
                                 clog.save()
                                 
                                 self.session['user'] = user
                                 self.session.save()
                                 
                         sname = shopattr.name
                         
                     #body = body + shop.name + " " + sname + " " + str(orderitem['num']) + "个\n"
                     body = body + shop.name + " " + sname + " " + str(orderitem['num'])
                 except Exception, ex:
                     logging.error(ex)
             
             tn = "U%d-S%d" % (user.id, order.id)
             
             if int(payment) == 1:
                 self.redirect("/alipay/topay?tn=%s&body=%s&price=%f" % (tn, body, order.price))
             else:
                 self.flash(u"请选择地址和收货方式")
                 self.redirect("/user/orders")
         else:
Exemplo n.º 23
0
    def post(self):
        order = None
        user = self.get_current_user()

        try:
            order = Order.get(uid=user.id, status=0)

            mobile = self.get_argument("mobile", user.mobile)
            uaid = self.get_argument("uaid", None)
            distrid = self.get_argument("distrid", None)
            day = self.get_argument(
                "day",
                datetime.date.today() + datetime.timedelta(days=1))
            hour = int(self.get_argument("hour", 10))
            payment = self.get_argument("payment", 0)
            message = self.get_argument("message", "")
            isinvoice = self.get_argument("isinvoice", 0)
            invoicesub = self.get_argument("invoicesub", 0)
            invoicename = self.get_argument("invoicename", "")
            invoicecontent = self.get_argument("payment", 1)
            shippingprice = self.get_argument("shippingprice", 0.0)

            if uaid and distrid:
                try:
                    distrib = Distribution.get(id=distrid)
                    shippingprice = distrib.price
                except:
                    pass

                order.mobile = mobile
                order.uaid = uaid
                order.distrid = distrid
                order.distribbed = "%s %d:00:00" % (str(day), hour)
                order.payment = payment
                order.message = message

                order.isinvoice = isinvoice

                if isinvoice:
                    order.invoicesub = invoicesub
                    order.invoicename = invoicename
                    order.invoicecontent = invoicecontent

                order.shippingprice = shippingprice

                order.save()

                body = ""
                for orderitem in OrderItem.select().where(
                        OrderItem.oid == order.id).dicts():

                    try:
                        shop = Shop.get(id=orderitem['sid'])

                        sname = ""
                        if orderitem['said'] > 0:
                            shopattr = ShopAttr.get(id=orderitem['said'])

                            if shop.cid == 1:
                                credits = shopattr.price * orderitem['num']

                                if credits > user.credit:
                                    OrderItem.delete().where(
                                        OrderItem.id ==
                                        orderitem['id']).execute()
                                else:
                                    user = User.get(id=user.id)
                                    user.credit = user.credit - credits
                                    user.save()

                                    clog = CreditLog()
                                    clog.uid = user.id
                                    clog.mobile = user.mobile
                                    clog.ctype = 1
                                    clog.affect = int(credits)
                                    clog.log = u"购买" + shop.name
                                    clog.save()

                                    self.session['user'] = user
                                    self.session.save()

                            sname = shopattr.name

                        body = body + shop.name + " " + sname + " " + str(
                            orderitem['num']) + "个\n"
                    except Exception, ex:
                        logging.error(ex)

                tn = "U%d-S%d" % (user.id, order.id)

                if int(payment) == 1:
                    self.redirect("/alipay/topay?tn=%s&body=%s&price=%f" %
                                  (tn, body, order.price))
                else:
                    self.flash(u"请选择地址和收货方式")
                    self.redirect("/user/orders")
            else:
Exemplo n.º 24
0
 def get(self):
     orderitems = []
     user = self.current_user
     
     order = None
     
     distributions = self.get_distributions()
     price = 0.0
     credit = 0.0
     
     try:
         order = Order.get(uid = user.id, status = 0)
         print order.id
         '''
         try:
             mobile = '18014349809'
             sendmsg(self.settings, mobile, '新订单')
         except:
             pass
         '''    
         for orderitem in OrderItem.select().where(OrderItem.oid == order.id).dicts():
             try:
                 orderitem['shop'] = Shop.get(id = orderitem['sid'])
                 _oiprice = orderitem['shop'].price
                 
                 if orderitem['said'] > 0:
                     orderitem['shopattr'] = ShopAttr.get(id = orderitem['said'])
                     if orderitem['shop'].cid == 1:
                         _oicredit = orderitem['shopattr'].price
                         credit = credit + _oicredit * orderitem['num']
                         _oiprice = orderitem['shopattr'].price
                     else:
                         _oiprice = orderitem['shopattr'].price
                 else:
                     _oiprice = float(_oiprice)
                     
                 orderitems.append(orderitem)
                 price = price + float(_oiprice) * orderitem['num']
             except:
                 pass
         print price
         price_pay = str(int(price*100))
         print 'price_pay:' + price_pay
         openid = user.openid
         print 'wx_pay:'+ openid
         jsApi = JsApi_pub()
         unifiedOrder = UnifiedOrder_pub()
         unifiedOrder.setParameter("openid",openid) #商品描述
         unifiedOrder.setParameter("body","菜市优品购物") #商品描述
         timeStamp = time.time()
         print timeStamp
         out_trade_no = "{0}{1}".format(WxPayConf_pub.APPID, int(timeStamp*100))
         unifiedOrder.setParameter("out_trade_no", out_trade_no) #商户订单号
         print 'out_trade_no:' + out_trade_no
         Order.update(wxid = out_trade_no).where(Order.id == order.id).execute()
         unifiedOrder.setParameter("total_fee", price_pay) #总金额
         print WxPayConf_pub.NOTIFY_URL
         unifiedOrder.setParameter("notify_url", WxPayConf_pub.NOTIFY_URL) #通知地址 
         unifiedOrder.setParameter("trade_type", "JSAPI") #交易类型
         
         prepay_id = unifiedOrder.getPrepayId()
         jsApi.setPrepayId(prepay_id)
         jsApiParameters = jsApi.getParameters()
         print jsApiParameters
         appid = json.loads(jsApiParameters).get("appId")
         timestamp = json.loads(jsApiParameters).get("timeStamp")
         noncestr = json.loads(jsApiParameters).get("nonceStr")
         package = json.loads(jsApiParameters).get("package")
         signtype = json.loads(jsApiParameters).get("signType")
         paysign = json.loads(jsApiParameters).get("paySign")
         print appid + timestamp + noncestr + package + signtype +paysign
         if orderitems:
             self.render("/responsive/wxpay.html", tmday = datetime.date.today() + datetime.timedelta(days=1), order  = order, orderitems = orderitems, distributions = distributions.values(), credit = credit, appid = appid, timestamp = timestamp, noncestr = noncestr, package = package, signtype = signtype, paysign = paysign)
     except:
         pass
Exemplo n.º 25
0
    def get(self):
        orderitems = []
        user = self.current_user

        order = None

        distributions = self.get_distributions()
        price = 0.0
        credit = 0.0

        try:
            order = Order.get(uid=user.id, status=0)
            print order.id
            '''
            try:
                mobile = '18014349809'
                sendmsg(self.settings, mobile, '新订单')
            except:
                pass
            '''
            for orderitem in OrderItem.select().where(
                    OrderItem.oid == order.id).dicts():
                try:
                    orderitem['shop'] = Shop.get(id=orderitem['sid'])
                    _oiprice = orderitem['shop'].price

                    if orderitem['said'] > 0:
                        orderitem['shopattr'] = ShopAttr.get(
                            id=orderitem['said'])
                        if orderitem['shop'].cid == 1:
                            _oicredit = orderitem['shopattr'].price
                            credit = credit + _oicredit * orderitem['num']
                            _oiprice = orderitem['shopattr'].price
                        else:
                            _oiprice = orderitem['shopattr'].price
                    else:
                        _oiprice = float(_oiprice)

                    orderitems.append(orderitem)
                    price = price + float(_oiprice) * orderitem['num']
                except:
                    pass
            print price
            price_pay = str(int(price * 100))
            print 'price_pay:' + price_pay
            openid = user.openid
            print 'wx_pay:' + openid
            jsApi = JsApi_pub()
            unifiedOrder = UnifiedOrder_pub()
            unifiedOrder.setParameter("openid", openid)  #商品描述
            unifiedOrder.setParameter("body", "菜市优品购物")  #商品描述
            timeStamp = time.time()
            print timeStamp
            out_trade_no = "{0}{1}".format(WxPayConf_pub.APPID,
                                           int(timeStamp * 100))
            unifiedOrder.setParameter("out_trade_no", out_trade_no)  #商户订单号
            print 'out_trade_no:' + out_trade_no
            Order.update(wxid=out_trade_no).where(
                Order.id == order.id).execute()
            unifiedOrder.setParameter("total_fee", price_pay)  #总金额
            print WxPayConf_pub.NOTIFY_URL
            unifiedOrder.setParameter("notify_url",
                                      WxPayConf_pub.NOTIFY_URL)  #通知地址
            unifiedOrder.setParameter("trade_type", "JSAPI")  #交易类型

            prepay_id = unifiedOrder.getPrepayId()
            jsApi.setPrepayId(prepay_id)
            jsApiParameters = jsApi.getParameters()
            print jsApiParameters
            appid = json.loads(jsApiParameters).get("appId")
            timestamp = json.loads(jsApiParameters).get("timeStamp")
            noncestr = json.loads(jsApiParameters).get("nonceStr")
            package = json.loads(jsApiParameters).get("package")
            signtype = json.loads(jsApiParameters).get("signType")
            paysign = json.loads(jsApiParameters).get("paySign")
            print appid + timestamp + noncestr + package + signtype + paysign
            if orderitems:
                self.render("/responsive/wxpay.html",
                            tmday=datetime.date.today() +
                            datetime.timedelta(days=1),
                            order=order,
                            orderitems=orderitems,
                            distributions=distributions.values(),
                            credit=credit,
                            appid=appid,
                            timestamp=timestamp,
                            noncestr=noncestr,
                            package=package,
                            signtype=signtype,
                            paysign=paysign)
        except:
            pass