Exemple #1
0
def processOrder(request):
    transaction_id = datetime.datetime.now().timestamp()
    data = json.loads(request.body)

    if request.user.is_authenticated:
        customer = request.user.customer
        order, created = Order.objects.get_or_create(customer=customer, complete=False)
        total = float(data['form']['total'])
        order.transaction_id = transaction_id

    else:
        customer, order = guestOrder(request, data)
    if total == order.get_cart_total:
        order.complete = True
        order.save()

    if order.shipping == True:
        ShippingAddress.objects.create(
            customer=customer,
            order=order,
            address=data['shipping']['address'],
            city=data['shipping']['city'],
            state=data['shipping']['state'],
            zipcode=data['shipping']['zipcode'],
        )

    return JsonResponse('payment complete!', safe=False)
Exemple #2
0
def order_comment(request):
    '''
    商品评论
    POST参数:
    order_id:订单ID
    total_count:订单有商品件数
    goods_1:订单商品ID
    content_1:评论内容
    GET参数:
    orderid:订单ID
    '''
    if request.method == 'POST':
        orderid = request.POST.get('order_id')
        if not orderid:
            return JsonResponse({'status': '401', 'msg': '订单错误!'})
        try:
            order = Order.objects.get(user=request.user, order_id=orderid)
        except:
            return JsonResponse({'status': '401', 'msg': '订单错误!'})
        count = int(request.POST.get('total_count'))  #订单中有几个商品
        for i in range(1, count + 1):
            ordergoods_id = request.POST.get('goods_' + str(i))  #订单商品
            comment = request.POST.get('content_' + str(i))  #评论1或评论2
            ordergoods = OrderGoods.objects.get(pk=ordergoods_id)
            ordergoods.comment = comment
            ordergoods.save()

        order.order_status = 5
        order.save()
        return JsonResponse({'status': '200', 'msg': '评价成功!'})

    else:
        orderid = request.GET.get('orderid')
        if not orderid:
            return JsonResponse({'status': '401', 'msg': '订单错误!'})
        try:
            order = Order.objects.get(user=request.user, order_id=orderid)
        except:
            return JsonResponse({'status': '401', 'msg': '订单错误!'})

        for status in Order.ORDER_STATUS:
            if order.order_status in status:
                order.status = status[1]
                break

        order_list = []
        order_list.append({'order_id': order.order_id, })

        ordergoods_list = []
        for ordergoods in order.ordergoods_set.all():
            ordergoods.total = ordergoods.price * ordergoods.number
            ordergoods_list.append({'name': ordergoods.goods.name, 'total': ordergoods.total})

        length = ordergoods_list.__len__()

        response_data = [{'order_list': order_list, 'ordergoods_list': ordergoods_list, 'length': length}]
        return JsonResponse(response_data,safe=False)
Exemple #3
0
def payed(request):
    order_id = request.GET.get("orderid")

    order = Order.objects.get(pk=order_id)

    order.o_status = ORDER_STATUS_NOT_SEND

    order.save()

    data = {"status": 200, "msg": "payed success"}
    return JsonResponse(data=data)
    def post(self, *args, **kwargs):
        order = self.get_object()

        if order.status < Order.CONFIRMED:
            order.is_deleted = True
            order.save()
            redirect_url = reverse_lazy("order:list")

        else:
            redirect_url = order.get_absolute_url()

        return HttpResponseRedirect(redirect_url)
Exemple #5
0
def check_order(request):
    '''
    检查订单支付
    参数:
    orderId:订单ID
    '''
    order_id = request.POST.get('orderId')
    if not order_id:
        return JsonResponse({'status': '401', 'errmsg': '无效的订单编号!'})
    try:
        order = Order.objects.get(user=request.user, order_id=order_id, pay_method=2, order_status=1)
    except:
        return JsonResponse({'status': '401', 'errmsg': '订单错误!'})

    app_private_key_string = open(settings.PRIVATE_KEY).read()
    alipay_public_key_string = open(settings.PUBLIC_KEY).read()

    alipay = AliPay(
        appid="2021000116676798",  # 沙箱环境里的appid
        app_notify_url=None,  # 默认回调url
        app_private_key_string=app_private_key_string,
        # 支付宝的公钥,验证支付宝回传消息使用,不是你自己的公钥,
        alipay_public_key_string=alipay_public_key_string,
        sign_type="RSA2",  # RSA 或者 RSA2
        debug=True  # 默认False
    )

    while True:
        response = alipay.api_alipay_trade_query(order_id)
        code = response.get('code')
        trade_status = response.get('trade_status')
        if code == '10000' and trade_status == 'TRADE_STATUS':
            trade_no = response.get('trade_no')
            order.trade_no = trade_no
            order.order_status = 2
            order.save()
            return JsonResponse({'status': '200', 'msg': '支付成功!'})
        # 支付接口有问题,或者接口没有问题但是用户还没有支付成功
        elif code == '4000' or (code == '10000' and trade_status == 'WAIT_BUYER_PAY'):
            import time
            time.sleep(5)
            continue
        else:
            return JsonResponse({'status': '401', 'errmsg': '支付失败!'})
Exemple #6
0
def order(request):
    if request.method=="POST":
        items_json = request.POST.get('itemsJson', '')


        Name=request.POST.get('Name','')
        Email = request.POST.get('Email', '')
        Address = request.POST.get('Address', '')
        City = request.POST.get('City', '')
        State = request.POST.get('State', '')
        Zip = request.POST.get('Zip', '')
        Phone = request.POST.get('Phone', '')
        order=Order(items_json=items_json,Name=Name,Email=Email,Address=Address,City=City,State=State,Zip=Zip,Phone=Phone)
        order.save()
        ord=Orderupdate(id=order.id,update_desc="Your order has been placed..")
        ord.save()
        thank = True
        id = Order.id
        return render(request, 'Mycart/checkout.html', {'thank': thank, 'id': id})
    return render(request,'Mycart/checkout.html')
Exemple #7
0
def make_order(request):
    carts = Cart.objects.filter(c_user=request.user).filter(c_is_select=True)

    order = Order()

    order.o_user = request.user

    order.o_price = get_total_price()

    order.save()

    for cart_obj in carts:
        ordergoods = OrderGoods()
        ordergoods.o_order = order
        ordergoods.o_goods_num = cart_obj.c_goods_num
        ordergoods.o_goods = cart_obj.c_goods
        ordergoods.save()
        cart_obj.delete()
    data = {
        "status": 200,
        "msg": "ok",
        "order_id": order.id,
    }
    return JsonResponse(data=data)