def get(self): iscatched = False if self.current_user: beginvalue = time.mktime(time.strptime('2015-01-12', "%Y-%m-%d")) endvalue = time.mktime(time.strptime('2015-01-31', "%Y-%m-%d")) q = Order.select(Order.currentprice).where( (Order.user == self.current_user) & (Order.ordered >= beginvalue) & (Order.status < 5) & (Order.ordered < endvalue) & (Order.payment < 9) & (((Order.status > -1) & (Order.payment == 0)) | ( (Order.status > 0) & (Order.payment > 0)))).dicts() price = sum([n['currentprice'] for n in q]) cpcount = int(price / 50.0) activities = UserActivity.select().where( UserActivity.user == self.current_user.id) if activities.count() > 0: iscatched = True else: price = 0.0 cpcount = 0 list = ProductStandard.select(ProductStandard).join(Product). \ where((ProductStandard.id << [268,215,128,279,38,37,84,86]) & (Product.status == 1)) self.render('activity/new_year.html', user=self.current_user, price=price, cpcount=cpcount, iscatched=iscatched, list=list)
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)
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)
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)
def new_user_order_coupon(order): msg = '' oc = Order.select().where((Order.user == order.user) & (Order.status > 1) & (Order.status < 5) & (Order.ordered <= order.ordered)) if oc.count() == 1: log = u'首单返50%优惠券活动,系统自动赠送' if (oc[0].currentprice >= 20) & (oc[0].currentprice < 80): cpcount = int(oc[0].currentprice / 10.0) cps = CouponTotal.select().where((CouponTotal.name == '满50减5元') & ( CouponTotal.status == 0)).limit(1) if cps.count() < 1: msg = u'用户' + order.user.username + u'首单返券失败,请检查“满50减5元”优惠券是否存在或已被禁用' else: count = 0 while count < cpcount: create_coupon(order.user, cps[0].id, log) count += 1 msg += u'首单返卷成功,用户获得' + str(cpcount) + u'张5元优惠券' if (oc[0].currentprice >= 80): cpcount5 = int(oc[0].currentprice / 10.0 / 2) cpcount10 = int(oc[0].currentprice / 10.0 / 4) cps5 = CouponTotal.select().where( (CouponTotal.name == '满50减5元') & (CouponTotal.status == 0)).limit(1) cps10 = CouponTotal.select().where( (CouponTotal.name == '满100减10元') & (CouponTotal.status == 0)).limit(1) if cps5.count() < 1: msg = u'用户' + order.user.username + u'首单返卷失败,请检查“满50减5元”优惠券是否存在或已被禁用' else: count = 0 while count < cpcount5: create_coupon(order.user, cps5[0].id, log) count += 1 msg += u'首单返卷成功,用户获得 ' + str(cpcount5) + u' 张5元优惠券' if cps10.count() < 1: msg = u'用户' + order.user.username + u'首单返卷失败,请检查“满100减10元”优惠券是否存在或已被禁用' else: count = 0 while count < cpcount10: create_coupon(order.user, cps10[0].id, log) count += 1 msg += u'和 ' + str(cpcount10) + u' 张10元优惠券' return msg
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)
def old_new_user_balance(order): try: rate = float(setting.Old_New_User_Rate) #首单返利利率 max_price = float(setting.Old_New_Max_Price) #首单返利最大金额 oc = Order.select().where((Order.user == order.user) & (Order.status == 4) & (Order.ordered <= order.ordered)) if oc.count() == 1: fl_price = oc[0].currentprice - oc[ 0].shippingprice #商品金额 = 订单实际支付金额 - 订单运费 if (fl_price >= 0): return_balance = round((fl_price * rate), 2) if return_balance > max_price: return_balance = max_price up = User_Promote.get(User_Promote.new_user == order.user) if up: balance = Balance() balance.user = up.old_user balance.balance = return_balance balance.created = int(time.time()) balance.stype = 0 balance.log = u'老推新首单返利。' balance.save() msg = u'恭喜您,您推荐的好友'+order.user.username+u'首次订单已经完成,您获得'+str(return_balance)+\ u'元余额返利,请登录车装甲查收。' sms = { 'mobile': up.old_user.username, 'body': msg, 'signtype': '1', 'isyzm': '1' } create_msg(simplejson.dumps(sms), 'sms') up.first_order_gift = 1 up.first_order_time = int(time.time()) up.first_order_content = msg up.save() except: pass
def get(self): alipay = Alipay(**self.settings) params = {} ks = self.request.arguments.keys() for k in ks: params[k] = self.get_argument(k) msg = "" if alipay.notify_verify(params): tn = self.get_argument("out_trade_no", None) trade_no = self.get_argument("trade_no", None) trade_status = self.get_argument("trade_status", None) logging.info("return:%s - %s - %s" % (tn, trade_no, trade_status)) try: order = None tn1 = tn.split(',') for n in tn1: orders = Order.select().where(Order.ordernum == n) if orders.count() > 0: order = orders[0] if order and order.status == 0: order.status = 1 order.save() order_Item = '' cartProducts = OrderItem.select().where( OrderItem.order == order) for cartproduct in cartProducts: order_Item += u'名称:' + cartproduct.product.name + u' X ' + str( cartproduct.quantity) + u'份;' if cartproduct.item_type == 5: pr = Product_Reserve.get( Product_Reserve.product == cartproduct.product) old_quantity = pr.quantity pr.quantity += cartproduct.quantity pr.save() if (old_quantity < pr.quantity_stage1) & ( pr.quantity >= pr.quantity_stage1): return_reserve_balance( cartproduct.product.id) elif (old_quantity < pr.quantity_stage2) & ( pr.quantity >= pr.quantity_stage2): return_reserve_balance( cartproduct.product.id) for n in cartProducts: if n.product.categoryfront.type == '2': sn = 1 for s in range(n.quantity): sn = sn + s seed = "1234567890" sa = [] for i in range(12): sa.append(random.choice(seed)) salt = ''.join(sa) OrderItemService.create(order_item=n.id, sn=sn, service_code=salt, service_used=0, store=order.store, user=order.user) try: admins = AdminUser.select().where(AdminUser.roles % '%Y%') receivers = [ n.email for n in admins if len(n.email) > 0 ] email = { u'receiver': receivers, u'subject': u'用户下单成功', u'body': u"支付方式:在线支付;<br/>订单编号为:" + n + u";<br>订单金额:" + str(order.currentprice) + u";<br>订单详情:" + order_Item } create_msg(simplejson.dumps(email), 'email') except Exception, e: print e alipay.send_goods_confirm_by_platform(trade_no) msg = "success" self.redirect("/cart/pay?result=" + msg + "&tn=" + tn + "&price=" + str(order.currentprice) + "&ptype=1") except Exception, ex: logging.error(ex)
def post(self): alipay = Alipay(**self.settings) params = {} ks = self.request.arguments.keys() for k in ks: params[k] = self.get_argument(k) if alipay.notify_verify(params): tn = self.get_argument("out_trade_no", None) #订单编号 trade_no = self.get_argument("trade_no", None) #支付宝交易号 trade_status = self.get_argument("trade_status", None) #交易状态 logging.info("notify:%s - %s - %s" % (tn, trade_no, trade_status)) buyer_email = self.get_argument("buyer_email", None) #买家支付宝帐号 notify_time = self.get_argument("notify_time", None) #通知时间 subject = self.get_argument("subject", None) #商品名称 payment_type = self.get_argument("payment_type", None) #支付类型 gmt_create = self.get_argument("gmt_create", None) #交易创建时间 gmt_payment = self.get_argument("gmt_payment", None) #交易付款时间 gmt_close = self.get_argument("gmt_close", None) #交易关闭时间 refund_status = self.get_argument("refund_status", None) #退款状态 gmt_refund = self.get_argument("gmt_refund", None) #退款时间 seller_email = self.get_argument("seller_email", None) #卖家支付宝账号 seller_id = self.get_argument("seller_id", None) #卖家支付宝账户号 buyer_id = self.get_argument("buyer_id", None) #买家支付宝账户号 price = self.get_argument("price", None) #商品单价 total_fee = self.get_argument("total_fee", None) #Number quantity = self.get_argument("quantity", None) #购买数量 body = self.get_argument("body", None) #商品描述 is_total_fee_adjust = self.get_argument("is_total_fee_adjust", None) #是否调整总价 use_coupon = self.get_argument("use_coupon", None) #是否使用红包买家 error_code = self.get_argument("error_code", None) #错误代码 bank_seq_no = self.get_argument("bank_seq_no", None) #网银流水 out_channel_inst = self.get_argument("out_channel_inst", None) #实际支付渠道 pay_response = { 'out_trade_no': tn, 'trade_no': trade_no, 'trade_status': trade_status, 'buyer_email': buyer_email, 'notify_time': notify_time, 'subject': subject, 'payment_type': payment_type, 'gmt_create': gmt_create, 'gmt_payment': gmt_payment, 'gmt_close': gmt_close, 'refund_status': refund_status, 'gmt_refund': gmt_refund, 'seller_email': seller_email, 'seller_id': seller_id, 'buyer_id': buyer_id, 'price': price, 'total_fee': total_fee, 'quantity': quantity, 'body': body, 'is_total_fee_adjust': is_total_fee_adjust, 'use_coupon': use_coupon, 'error_code': error_code, 'bank_seq_no': bank_seq_no, 'out_channel_inst': out_channel_inst } try: order = None tn = tn.split(',') for n in tn: orders = Order.select().where(Order.ordernum == n) if orders.count() > 0: order = orders[0] if order and order.status == 0: order.status = 1 order.pay_account = buyer_email order.trade_no = trade_no order.pay_response = simplejson.dumps(pay_response) order.save() order_Item = '' cartProducts = OrderItem.select().where( OrderItem.order == order) for cartproduct in cartProducts: order_Item += u'名称:' + cartproduct.product.name + u' X ' + str( cartproduct.quantity) + u'份;' if cartproduct.item_type == 5: pr = Product_Reserve.get( Product_Reserve.product == cartproduct.product) old_quantity = pr.quantity pr.quantity += cartproduct.quantity pr.save() if (old_quantity < pr.quantity_stage1) & ( pr.quantity >= pr.quantity_stage1): return_reserve_balance( cartproduct.product.id) elif (old_quantity < pr.quantity_stage2) & ( pr.quantity >= pr.quantity_stage2): return_reserve_balance( cartproduct.product.id) for n in cartProducts: if n.product.categoryfront.type == '2': sn = 1 for s in range(n.quantity): sn = sn + s seed = "1234567890" sa = [] for i in range(12): sa.append(random.choice(seed)) salt = ''.join(sa) OrderItemService.create(order_item=n.id, sn=sn, service_code=salt, service_used=0, store=order.store, user=order.user) try: admins = AdminUser.select().where(AdminUser.roles % '%Y%') receivers = [ n.email for n in admins if len(n.email) > 0 ] email = { u'receiver': receivers, u'subject': u'用户下单成功', u'body': u"支付方式:在线支付;<br/>订单编号为:" + n + u";<br>订单金额:" + str(order.currentprice) + u";<br>订单详情:" + order_Item } create_msg(simplejson.dumps(email), 'email') except Exception, e: print e except Exception, ex: logging.error(ex) if trade_status == 'WAIT_SELLER_SEND_GOODS': alipay.send_goods_confirm_by_platform(trade_no) self.write("success")
def get(self): userid = self.get_argument('userid', None) if userid: user = User.get(id=userid) if user: activities = UserActivity.select().where( UserActivity.user == user) if activities.count() == 0: beginvalue = time.mktime( time.strptime('2015-01-12', "%Y-%m-%d")) endvalue = time.mktime( time.strptime('2015-01-31', "%Y-%m-%d")) q = Order.select(Order.currentprice).where( (Order.user == self.current_user) & (Order.ordered >= beginvalue) & (Order.status < 5) & (Order.ordered < endvalue) & (Order.payment < 9) & (((Order.status > -1) & (Order.payment == 0)) | ( (Order.status > 0) & (Order.payment > 0)))).dicts() price = sum([n['currentprice'] for n in q]) cpcount = int(price / 50.0) if cpcount > 0: cps = Coupon.select(Coupon).join(CouponTotal).where( (CouponTotal.name == '满50减5元') & (Coupon.status == 0)).limit(cpcount) if cps.count() < cpcount: msg = '领取优惠券失败,管理员会立即处理,请谅解,给您带来的不便' admins = AdminUser.select() receivers = [ n.email for n in admins if len(n.email) > 0 ] email = { u'receiver': receivers, u'subject': u'5元优惠券库存不够了', u'body': u'用户:' + str(userid) + u'领取优惠券失败,库存不足。' } try: create_msg(simplejson.dumps(email), 'email') except: pass else: for cp in cps: cp.user = user cp.status = 1 cp.save() cp.coupontotal.quantity += 1 cp.coupontotal.save() UserActivity.create(user=user, catchtime=int(time.time()), status=1) msg = '成功领取' + str( cpcount ) + '张优惠券。您可以在 [个人中心]-[我的优惠券] 中查看详情,感谢您的关注' try: content = '作为车装甲最最重视的用户,非常感谢您对车装甲的支持。送您' + str( cpcount * 5) + '元优惠券,请笑纳。' sms = { 'mobile': user.mobile, 'body': content, 'signtype': '1', 'isyzm': '1' } create_msg(simplejson.dumps(sms), 'sms') except: pass else: msg = '您累计消费不足50元,无法领取优惠券,感谢您的关注' else: msg = '您已经领取过优惠券,感谢您的关注' else: msg = '请先登录车装甲,之后才能领取,感谢您的关注' else: msg = '请先登录车装甲,之后才能领取,感谢您的关注' self.write(msg)
def new_year_send_logic(order): user = order.user beginvalue = time.mktime(time.strptime('2015-01-31', "%Y-%m-%d")) endvalue = time.mktime(time.strptime('2015-02-15', "%Y-%m-%d")) now = int(time.time()) # logger.error(str(now)) needsend = True if now < endvalue and order.status < 5 and order.payment < 9 and \ ((order.status > -1 and order.payment == 0) or (order.status > 0 and order.payment > 0)): #当前为2月15日之前,并且订单状态有效 if user.signuped > beginvalue: #新注册用户,1月31日当天或以后注册的 q = Order.select().where( (Order.user == user) & (Order.id != order.id) & (Order.status < 5) & (Order.payment < 9) & (((Order.status > -1) & (Order.payment == 0)) | ( (Order.status > 0) & (Order.payment > 0)))) ct = q.count() if ct == 0: #新用户第一次购买 needsend = False tencount = int(order.currentprice / 40.0) fivecount = tencount * 2 if fivecount > 0: cps = Coupon.select(Coupon).join(CouponTotal).where( (CouponTotal.name == '满50减5元') & (Coupon.status == 0) & (Coupon.user >> None)).limit(fivecount) if cps.count() < fivecount: admins = AdminUser.select() receivers = [ n.email for n in admins if len(n.email) > 0 ] email = { u'receiver': receivers, u'subject': u'5元优惠劵库存不够了', u'body': u'用户:' + str(user.id) + u'领取优惠劵失败,库存不足。' } try: create_msg(simplejson.dumps(email), 'email') except: pass else: for cp in cps: cp.user = user cp.status = 1 cp.save() cp.coupontotal.quantity += 1 cp.coupontotal.save() if tencount > 0: cps = Coupon.select(Coupon).join(CouponTotal).where( (CouponTotal.name == '满100减10元') & (Coupon.status == 0) & (Coupon.user >> None)).limit(tencount) if cps.count() < tencount: admins = AdminUser.select() receivers = [ n.email for n in admins if len(n.email) > 0 ] email = { u'receiver': receivers, u'subject': u'10元优惠劵库存不够了', u'body': u'用户:' + str(user.id) + u'领取优惠劵失败,库存不足。' } try: create_msg(simplejson.dumps(email), 'email') except: pass else: for cp in cps: cp.user = user cp.status = 1 cp.save() cp.coupontotal.quantity += 1 cp.coupontotal.save() if fivecount > 0: try: content = '小易终于等到您啦~请收下见面礼吧!' + str( tencount * 10 + fivecount * 5) + '元代金券已经放入账户,下单时即可使用。更多优惠请到车装甲' sms = { 'mobile': user.mobile, 'body': content, 'signtype': '1', 'isyzm': '1' } create_msg(simplejson.dumps(sms), 'sms') except: pass if needsend: #老用户下单(含新用户第二次下单),满50送5,满80送5X2;1月31日以前注册的用户 cpcount = 0 if order.currentprice >= 80: cpcount = 2 elif order.currentprice >= 50: cpcount = 1 if cpcount > 0: cps = Coupon.select(Coupon).join(CouponTotal).where( (CouponTotal.name == '满50减5元') & (Coupon.status == 0) & (Coupon.user >> None)).limit(cpcount) if cps.count() < cpcount: admins = AdminUser.select() receivers = [n.email for n in admins if len(n.email) > 0] email = { u'receiver': receivers, u'subject': u'5元优惠劵赠送异常', u'body': u'用户:' + str(user.id) + u'领取优惠劵失败,库存不足。' } try: create_msg(simplejson.dumps(email), 'email') except: pass else: for cp in cps: cp.user = user cp.status = 1 cp.save() cp.coupontotal.quantity += 1 cp.coupontotal.save() try: content = '作为车装甲最最重视的用户,非常感谢您对车装甲的支持。送您' + str( cpcount * 5) + '元优惠券,请笑纳。' sms = { 'mobile': user.mobile, 'body': content, 'signtype': '1', 'isyzm': '1' } create_msg(simplejson.dumps(sms), 'sms') except: pass
def get_context(self): return { 'list': Order.select(), }
def retrieve_order(order_id): order = Order.select().where(Order.id == order_id).get() order.update_paid() return render_template('detail.jinja2', order=order)
def get(self): store_user = self.get_store_user() page = int( self.get_argument("page", '1') if len(self.get_argument("page", '1')) > 0 else '1') status = int(self.get_argument("status", -1)) pagesize = self.settings['admin_pagesize'] ft = (Order.status > -1) keyword = self.get_argument("keyword", '') begindate = self.get_argument("begindate", '') enddate = self.get_argument("enddate", '') statuscheck = int( self.get_argument("statuscheck", '-1') if len(self.get_argument("statuscheck", '1')) > 0 else '-1') phone = self.get_argument("phone", '') ft = ft & (Order.store == store_user.store.id) if keyword: keyw = '%' + keyword + '%' ft = ft & (Order.ordernum % keyw) status = -1 if phone: ph = '%' + phone + '%' ft = ft & ((Order.take_tel % ph) | (Order.take_name % ph)) status = -1 if (phone == '') & (keyword == ''): if status != -1: if status == 0: # 待付款 ft = ft & ((Order.status == 0) & ((Order.payment == 1) | (Order.payment == 3))) elif status == 1: # 待处理 ft = ft & ((Order.status == 1) | ((Order.payment == 0) & (Order.status == 0))) pagesize = 99999 else: ft = ft & (Order.status == status) else: if statuscheck != -1 and statuscheck != '': if statuscheck == 0: # 待付款 ft = ft & ((Order.status == 0) & ((Order.payment == 1 | (Order.payment == 3)))) elif statuscheck == 1: # 待处理 ft = ft & ((Order.status == 1) | ((Order.payment == 0) & (Order.status == 0))) pagesize = 99999 else: ft = ft & (Order.status == statuscheck) if begindate and enddate: begin = time.strptime(begindate, "%Y-%m-%d") end = time.strptime((enddate + " 23:59:59"), "%Y-%m-%d %H:%M:%S") ft = ft & (Order.ordered > time.mktime(begin)) & (Order.ordered < time.mktime(end)) q = Order.select().where(ft).order_by(Order.ordered.desc()) total = q.count() if total % pagesize > 0: totalpage = total / pagesize + 1 else: totalpage = total / pagesize orders = q.paginate(page, pagesize) for o in orders: oCount = Order.select().where((Order.id < o.id) & (Order.status > 0) & (Order.status < 5) & (Order.user == o.user)).count() o.pay_response = u'首单' if oCount == 0 else u'' o.trade_no = str(oCount + 1) self.render('/store/order/orders.html', orders=orders, total=total, page=page, pagesize=pagesize, totalpage=totalpage, status=status, active='orders', begindate=begindate, enddate=enddate, keyword=keyword, phone=phone)
def notify_verify(post): """验证---签名&&数据是否支付宝发送 """ #初级验证---签名 order_params = {} params = {} _, prestr = fix_params_filter(post) mysign = build_mysign(prestr, Settings.KEY, Settings.SIGN_TYPE) if mysign != post.get('sign'): return False tree = etree.fromstring(post.get("notify_data").encode('utf-8')) notify_id = tree.find("notify_id").text order_params["trade_no"] = tree.find("trade_no").text order_params["out_trade_no"] = tree.find("out_trade_no").text order_params["trade_status"] = tree.find("trade_status").text order_params["total_fee"] = tree.find("total_fee").text order_params['buyer_email'] = tree.find("buyer_email").text #二级验证---数据是否支付宝发送 if notify_id: params['partner'] = Settings.PARTNER params['notify_id'] = notify_id if Settings.TRANSPORT == 'https': params['service'] = 'notify_verify' gateway = 'https://mapi.alipay.com/gateway.do' else: gateway = 'http://notify.alipay.com/trade/notify_query.do' verify_url = "%s?%s" % (gateway, urlencode(params)) verify_result = urlopen(verify_url).read() if verify_result.lower().strip() == 'true': tn = tree.find("out_trade_no").text try: order = None tn = tn.split(',') for n in tn: orders = Order.select().where(Order.ordernum == n) if orders.count() > 0: order = orders[0] if order and order.status == 0: order.status = 1 order.pay_account = tree.find("buyer_email").text order.trade_no = tree.find("trade_no").text order.save() order_Item = '' cartProducts = OrderItem.select().where( OrderItem.order == order) for n in cartProducts: if n.product.categoryfront.type == '2': sn = 1 for s in range(n.quantity): sn = sn + s seed = "1234567890" sa = [] for i in range(12): sa.append(random.choice(seed)) salt = ''.join(sa) OrderItemService.create(order_item=n.id, sn=sn, service_code=salt, service_used=0, store=order.store, user=order.user) # try: # admins = AdminUser.select().where(AdminUser.roles % '%Y%') # receivers = [n.email for n in admins if len(n.email)>0] # email = {u'receiver': receivers, u'subject':u'用户下单成功',u'body': u"支付方式:在线支付;<br/>订单编号为:" + n + u";<br>订单金额:"+ str(order.currentprice) + u";<br>订单详情:"+order_Item} # create_msg(simplejson.dumps(email), 'email') # except Exception, e: # print e except Exception, ex: logging.error(ex) return order_params
add_price = add_price) i.text = str(price) i = SubElement(v, "PRICE_BEFORE_DISCOUNT") i.text = str(price_before) parameters = [(attr_name[it['id_attribute']], attr_val[it['id_attribute']]) for it in group] if parameters: par = SubElement(v, "PARAMETERS") for pn, pv in parameters: parameter(par, pn, pv) f.write(el) with Feed('order', os.path.join(OUTPUT_DIRECTORY, 'orders.xml'), 'ORDERS') as f: for order in Order.select() \ .join(Address, on=(Order.id_address_delivery == Address.id_address)): el = Element("ORDER") i = SubElement(el, "ORDER_ID") i.text = str(order.id_order) i = SubElement(el, "CUSTOMER_ID") #i.text = str(order.id_customer) i.text = b64(str(customer_email.get(order.id_customer, ""))) i = SubElement(el, "CREATED_ON") i.text = dt_iso(order.date_add) i = SubElement(el, "FINISHED_ON") i.text = dt_iso(order.delivery_date) i = SubElement(el, "STATUS") i.text = order_state(order.current_state) i = SubElement(el, "ZIP_CODE") i.text = order.id_address_delivery.postcode