Esempio n. 1
0
def get_pago_contraentrega(request):
    if request.POST:
        metodo = MetodoPago.objects.get(nombre='Contra entrega')
        pedido = Pedido.objects.get(numero_pedido=request.POST.get('id_pago'))
        carro = Carro.objects.get(pedido=pedido.pk)

        total = carro.total_carro()

        pago = Pago(cantidad=total,
                    id_pago=pedido.numero_pedido,
                    metodo_pago=metodo,
                    descripcion=
                    'Pago contra entrega, esperando el pago cuando se envia',
                    transaccion=request.POST['transaccion'])
        pago.save()

        pedido.pago_pedido = pago
        pedido.metodo_pago = metodo
        pedido.save()

        carro.estado = carro.ENVIADA
        carro.save()

        request.session['pedido'] = pedido.numero_pedido
        return HttpResponse(json.dumps({'status': 'ok'}),
                            content_type='application/json;charset=utf8')
    else:
        raise Http404("No Hay Pedido")
Esempio n. 2
0
def get_pago_contraentrega(request):
	if request.POST:
		metodo = MetodoPago.objects.get(nombre='Contra entrega')
		pedido = Pedido.objects.get(numero_pedido=request.POST.get('id_pago'))
		carro = Carro.objects.get(pedido=pedido.pk) 

		total = carro.total_carro()

		pago = Pago(cantidad= total,
				id_pago = pedido.numero_pedido,
				metodo_pago = metodo,
				descripcion = 'Pago contra entrega, esperando el pago cuando se envia',
				transaccion = request.POST['transaccion'])			
		pago.save()

		pedido.pago_pedido = pago
		pedido.metodo_pago = metodo
		pedido.save()
		
		carro.estado = carro.ENVIADA
		carro.save()
		
		request.session['pedido'] = pedido.numero_pedido;
		return HttpResponse(json.dumps({'status':'ok'}),content_type='application/json;charset=utf8')
	else:
		raise Http404("No Hay Pedido")
Esempio n. 3
0
def stripe_paymet(request):
    stripe.api_key = settings.STRIPE_SECRET_KEY

    if request.method == 'POST':
        datos = json.loads(request.body)
        try:
            card_token = datos['stripeToken']
            carro_id = datos['carro']
        except KeyError:
            return HttpResponseBadRequest('stripeToken not set')
        currency = getattr(settings, 'SHOP_CURRENCY', 'usd')
        carro = Carro.objects.get(pk=carro_id)
        pedido = carro.pedido
        amount = carro.total_carro()
        amount = int(amount * 100)
        if request.user.is_authenticated():
            propietario = request.user.email
        else:
            propietario = 'Invitado'
        description = '%s de %s' % (card_token, propietario)

        stripe_dict = {
            'amount': amount,
            'currency': currency,
            'card': card_token,
            'description': description,
        }
        try:
            stripe_result = stripe.Charge.create(**stripe_dict)
        except stripe.error.CardError, e:
            error = e
            return HttpResponse(json.dumps({'error', error}),
                                content_type='application/json;charset=utf8')
        else:
            metodo = MetodoPago.objects.get(nombre='Stripe')
            pago = Pago(cantidad=amount / 100,
                        id_pago=stripe_result['id'],
                        descripcion=description,
                        metodo_pago=metodo,
                        transaccion=card_token)
            pago.save()
            #Grabar PEdido
            pedido.pago_pedido = pago
            pedido.metodo_pago = metodo
            pedido.save()
            carro.estado = carro.ENVIADA
            carro.save()
            request.session['pedido'] = pedido.numero_pedido
        return HttpResponse(json.dumps({
            'status': stripe_result['status'],
            'pedido': pedido.numero_pedido
        }),
                            content_type='application/json;charset=utf8')
Esempio n. 4
0
def mercadopago_succes(request, pedido):

    carro = Carro.objects.get(pedido__numero_pedido=pedido)
    pago = Pago(cantidad=carro.total_carro(),
                id_pago='',
                descripcion='',
                metodo_pago='',
                transaccion='')
    pago.save()
    carro.estado = carro.ENVIADA
    carro.save()
    url = "%s/%s" % (settings.PAYPAL_URL_FRONT_RETURN, pedido)
    return HttpResponseRedirect(url)
Esempio n. 5
0
def stripe_paymet(request):
	stripe.api_key = settings.STRIPE_SECRET_KEY
	
	if request.method == 'POST':
		try:
			card_token = request.POST['stripeToken']
			carro_id = request.POST['carro']
		except KeyError:
			return HttpResponseBadRequest('stripeToken not set')
		currency = getattr(settings, 'SHOP_CURRENCY', 'usd')
		carro = Carro.objects.get(pk = carro_id)
		pedido = carro.pedido
		amount = carro.total_carro()
		amount = int(amount*100)
		if request.user.is_authenticated():
			propietario = request.user.email
		else:
			propietario = 'Invitado'
		description = '%s de %s' %(card_token,propietario)

		stripe_dict = {
			'amount': amount,
			'currency': currency,
			'card': card_token,
			'description': description,
		}
		try:
			stripe_result = stripe.Charge.create(**stripe_dict)
		except stripe.error.CardError, e:
			error = e
			return HttpResponse(json.dumps({'error',error}),
			content_type='application/json;charset=utf8')
		else:
			metodo = MetodoPago.objects.get(nombre='Stripe')			
			pago = Pago(cantidad = amount/100,
						id_pago=stripe_result['id'],
						descripcion=description,
						metodo_pago = metodo,
						transaccion = card_token)
			pago.save()
			pedido.pago_pedido = pago
			pedido.metodo_pago = metodo
			pedido.save()
			carro.estado = carro.ENVIADA
			carro.save()
			request.session['pedido'] = pedido.numero_pedido
		return HttpResponse(json.dumps({'status': stripe_result['status'],'pedido': pedido.numero_pedido}),
			content_type='application/json;charset=utf8')
Esempio n. 6
0
def retorn_mercado_pago(request, pedido):
    metodo = MetodoPago.objects.get(nombre='Mercado Pago')
    carro = Carro.objects.get(pedido__numero_pedido=pedido)
    pedido = carro.pedido

    carro.estado = carro.ENVIADA
    carro.save()

    pago = Pago(cantidad=carro.total_carro(),
                id_pago=pedido.numero_pedido,
                metodo_pago=metodo,
                descripcion='Pago por Mercado Pago',
                transaccion='')
    pago.save()

    pedido.pago_pedido = pago
    pedido.save()

    url = "%s/%s" % (settings.PAYPAL_URL_FRONT_RETURN, pedido.numero_pedido)
    return HttpResponseRedirect(url)
Esempio n. 7
0
def show_me_the_money(sender, **kwargs):
    ipn_obj = sender

    if ipn_obj.payment_status == ST_PP_COMPLETED:

        pedido = Pedido.objects.get(numero_pedido=ipn_obj.invoice)
        carro = Carro.objects.get(pedido=pedido.pk)
        total = carro.total_carro()
        today = datetime.now().date()
        tipos_cambio = TipoCambio.objects.filter(fecha=today)
        metodo = MetodoPago.objects.get(nombre='Paypal')

        pago = Pago(cantidad=ipn_obj.mc_gross,
                    id_pago=ipn_obj.txn_id,
                    metodo_pago=metodo,
                    transaccion=ipn_obj.invoice)
        if ipn_obj.receiver_email != settings.PAYPAL_RECEIVER_EMAIL:
            pago.descripcion = 'Ocurrio un Error en el email de receptor'
            pago.save()
            return

        for tipo in tipos_cambio:
            tipo_cambio = tipo.cambio

        tipo_cambio = round(tipo_cambio, 2)
        total_dolares = round(total / tipo_cambio, 2)

        if ipn_obj.mc_gross == total_dolares and ipn_obj.mc_currency == 'USD':
            pago.valido = True
            pago.descripcion = 'Todo Perfecto'
        else:
            pago.descripcion = 'El pago tiene datos incorrectos'

        pago.save()
        pedido.pago_pedido = pago
        pedido.metodo_pago = metodo
        pedido.save()

        carro.estado = carro.ENVIADA
        carro.save()
Esempio n. 8
0
def retorn_paypal(request):
	if request.POST:
		metodo = MetodoPago.objects.get(nombre='Paypal')
		pedido = Pedido.objects.get(numero_pedido=request.POST['invoice'])
		carro = Carro.objects.get(pedido=pedido.pk) 

		pago = Pago(cantidad=request.POST['payment_gross'],
				id_pago = request.POST['invoice'],
				metodo_pago = metodo,
				descripcion = request.POST['payment_status'],
				transaccion = request.POST['txn_id'])			
		pago.save()

		pedido.pago_pedido = pago
		pedido.metodo_pago = metodo
		pedido.save()
		
		carro.estado = carro.ENVIADA
		carro.save()
		
		request.session['pedido'] = request.POST['invoice'];

		return HttpResponseRedirect(reverse('felicidades'))
Esempio n. 9
0
def retorn_paypal(request):
    if request.POST:
        metodo = MetodoPago.objects.get(nombre='Paypal')
        pedido = Pedido.objects.get(numero_pedido=request.POST['invoice'])
        carro = Carro.objects.get(pedido=pedido.pk)

        pago = Pago(cantidad=request.POST['payment_gross'],
                    id_pago=request.POST['invoice'],
                    metodo_pago=metodo,
                    descripcion=request.POST['payment_status'],
                    transaccion=request.POST['txn_id'])
        pago.save()

        pedido.pago_pedido = pago
        pedido.metodo_pago = metodo
        pedido.save()

        carro.estado = carro.ENVIADA
        carro.save()

        request.session['pedido'] = request.POST['invoice']

        return HttpResponseRedirect(reverse('felicidades'))