예제 #1
0
def Confirm_Purchase(request, id):
    # Get cart item
    item = get_object_or_404(models.Clothing_Post, id=id)

    if request.method == "POST":
        firstName = request.POST.get("firstName")
        lastName = request.POST.get("lastName")
        address = request.POST.get("address")

        # User wants to buy
        Payment = get_payment_model()
        payment = Payment.object.create(
            variant = "default",
            description = "Purchase of Clothing",
            total = Item.Price,
            billing_first_name = firstName,
            billing_last_name = lastName,
            billing_address_1 = address
        )
    
    payment = get_object_or_404(get_payment_model(), Item=item)
    # try:
    #     form = payment.get_form(data=request.POST or None)
    # except RedirectNeeded as redirect_to:
    #     return redirect(str(redirect_to))
    form = payment
    return render(request, "Clothes/Purchase_Confirm.html", {"item":item, 'form':form})
예제 #2
0
파일: views.py 프로젝트: xochilt/eventos
def payment_details(request, payment_id):
    payment = get_object_or_404(get_payment_model(), id=payment_id)
    try:
        form = payment.get_form(data=request.POST or None)
    except RedirectNeeded as redirect_to:
        return redirect(str(redirect_to))
    return TemplateResponse(request, 'payment.html', {'form': form, 'payment': payment})
예제 #3
0
 def __init__(self, data, service_type):
     self.data = data
     self.service_type = service_type
     self.payment_id = self.data.get('payment_id', None)
     self.provider = provider_factory('click')
     self.payment = get_object_or_404(get_payment_model(),
                                      id=self.payment_id)
     super(Services, self).__init__(self.provider, self.payment, self.data)
예제 #4
0
파일: views.py 프로젝트: levinrockx/oxynetz
def payment_details(request, pk):
    payment = get_object_or_404(get_payment_model(), pk=pk)
    try:
        form = payment.get_form(data=request.POST or None)
    except RedirectNeeded as redirect_to:
        return redirect(str(redirect_to))
    return TemplateResponse(request, 'payment.html',
                            {'form': form, 'payment': payment})
예제 #5
0
def payment_details(request, payment_id):
    payment = get_object_or_404(get_payment_model(), id=payment_id)
    try:
        form = payment.get_form(data=request.POST or None)
    except RedirectNeeded as redirect_to:
        return redirect(str(redirect_to))
    return TemplateResponse(request, "payment.html", {
        "form": form,
        "payment": payment
    })
예제 #6
0
def payment_details(self, id):
    """The route for this function is called by django-payments after a registration is submitted. """
    print('========== views function - payment_details ==============')
    payment = get_object_or_404(get_payment_model(), id=id)
    try:
        form = payment.get_form(data=self.POST or None)
    except RedirectNeeded as redirect_to:
        print('---- payment_details redirected -------')
        return redirect(str(redirect_to))
    print('------ payment_details TemplateResponse ---------')
    return TemplateResponse(self, 'payment/payment.html',
                            {'form': form, 'payment': payment})
def payment_details(request, payment_id=None):
    payment = get_object_or_404(get_payment_model(), id=payment_id)
    payment.id = 1005
    payment.currency = 'CZK'
    try:
        form = payment.get_form(data=request.GET or None)
    except RedirectNeeded as redirect_to:
        return redirect(str(redirect_to))
    return TemplateResponse(request, 'payment.html', {
        'form': form,
        'payment': payment
    })
예제 #8
0
 def get_token_from_request(self, request=None, payment=None):
     if request.method == 'GET':
         # Redirect not webhook
         source_id = request.GET.get('source')
         if source_id is None:
             return None
         Payment = get_payment_model()
         try:
             payment = Payment.objects.get(transaction_id=source_id, )
         except Payment.DoesNotExist:
             return None
         return payment.token
     return super().get_token_from_request(request=request, payment=payment)
예제 #9
0
def process_data(request, token, provider=None):
    '''
    Calls process_data of an appropriate provider.

    Raises Http404 if variant does not exist.
    '''
    Payment = get_payment_model()
    payment = get_object_or_404(Payment, token=token)
    if not provider:
        try:
            provider = provider_factory(payment.variant)
        except ValueError:
            raise Http404('No such payment')
    return provider.process_data(payment, request)
예제 #10
0
 def get_token_from_request(self, request=None, payment=None):
     '''
     Extract payment token from webhook
     via payment intent's id == payment.transaction_id
     '''
     event_dict = self.decode_webhook_request(request)
     if event_dict is None:
         return None
     obj = event_dict['data']['object']
     Payment = get_payment_model()
     try:
         payment = Payment.objects.get(transaction_id=obj['id'], )
     except Payment.DoesNotExist:
         return None
     return payment.token
예제 #11
0
파일: views.py 프로젝트: rahulyhg/rejot
 def get_context_data(self, **kwargs):
     context = super(OrderView, self).get_context_data(**kwargs)
     payment, created = get_payment_model().objects.get_or_create(
         order__pk=self.object.pk,
         defaults={
             'variant': 'default',
             'description': 'Plan Purchase',
             'order': self.object,
             'total': self.object.total(),
             'tax': self.object.tax_total(),
             'currency': self.object.currency
         })
     context['payment_form'] = payment.get_form()
     context['payment'] = payment
     return context
예제 #12
0
def payment(db) -> BasePayment:
    Payment = get_payment_model()
    return Payment.objects.create(
        variant="przelewy24",  # this is the variant from PAYMENT_VARIANTS
        description="Book purchase",
        total=Decimal(120.24),
        tax=Decimal(20),
        currency="PLN",
        delivery=Decimal(10),
        billing_first_name="Sherlock",
        billing_last_name="Holmes",
        billing_address_1="221B Baker Street",
        billing_address_2="",
        billing_city="London",
        billing_postcode="NW1 6XE",
        billing_country_code="GB",
        billing_country_area="Greater London",
        customer_ip_address="127.0.0.1",
    )
예제 #13
0
def create_payment(request, payment_variant, order_id):
    order = get_object_or_404(Order, pk=order_id)
    Payment = get_payment_model()
    payment = Payment.objects.create(
        variant=payment_variant,
        order=order,
        description='Subscription plan %s purchase' % order.name,
        total=Decimal(order.total()),
        tax=Decimal(order.tax_total()),
        currency=order.currency,
        delivery=Decimal(0),
        billing_first_name=settings.PLANS_INVOICE_ISSUER['issuer_name'],
        # billing_last_name=settings.PLANS_INVOICE_ISSUER['issuer_'],
        billing_address_1=settings.PLANS_INVOICE_ISSUER['issuer_street'],
        # billing_address_2=settings.PLANS_INVOICE_ISSUER['issuer_'],
        billing_city=settings.PLANS_INVOICE_ISSUER['issuer_city'],
        billing_postcode=settings.PLANS_INVOICE_ISSUER['issuer_zipcode'],
        billing_country_code=settings.PLANS_INVOICE_ISSUER['issuer_country'],
        # billing_country_area=settings.PLANS_INVOICE_ISSUER['issuer_name'],
        customer_ip_address='127.0.0.1')
    return redirect(
        reverse('payment_details', kwargs={'payment_id': payment.id}))
예제 #14
0
def checkout(request):
    form = CreditCardPaymentFormWithName()

    if request.POST:
        Payment = get_payment_model()
        payment = Payment.objects.create(
            variant='default',  # this is the variant from PAYMENT_VARIANTS
            description='',
            total=Decimal(120),
            tax=Decimal(20),
            currency='MXN',
            delivery=Decimal(10),
            billing_first_name='Carlos',
            billing_last_name='Fuentes',
            billing_address_1='UNAM CU, Facultad de Ingenieria',
            billing_address_2='',
            billing_city='Mexico City',
            billing_postcode='56617',
            billing_country_code='MX',
            billing_country_area='Mexico',
            customer_ip_address='127.0.0.1')
        return redirect('/')

    return render(request, 'payment.html', {'form': form})
예제 #15
0
        return render(request, 'poster/Search.html', {'form': form})


def payment_details(request, payment_id):
    payment = get_object_or_404(get_payment_model(), id=payment_id)
    try:
        form = payment.get_form(data=request.POST or None)
    except RedirectNeeded as redirect_to:
        return redirect(str(redirect_to))
    return TemplateResponse(request, 'poster/payment.html', {
        'form': form,
        'payment': payment
    })


Payment = get_payment_model()
payment = Payment.objects.create(
    variant='default',  # this is the variant from PAYMENT_VARIANTS
    description='Book purchase',
    total=Decimal(120),
    tax=Decimal(20),
    currency='USD',
    delivery=Decimal(10),
    billing_first_name='Sherlock',
    billing_last_name='Holmes',
    billing_address_1='221B Baker Street',
    billing_address_2='',
    billing_city='London',
    billing_postcode='NW1 6XE',
    billing_country_code='UK',
    billing_country_area='Greater London',
예제 #16
0
 def form_valid(self, form):
     form_data = form.cleaned_data
     if 'order_in_session' in self.request.session:
         try:
             order = SoftwareOrder.objects.get(pk=self.request.session['order_in_session'])
         except SoftwareOrder.DoesNotExist:
             order = SoftwareOrder()
     else:
         order = SoftwareOrder()
     cart = Cart(self.request.session)
     order.total = cart.total
     order.user = self.request.user
     order.company = self.request.user.company
     order.first_name = self.request.user.first_name
     order.last_name = self.request.user.last_name
     order.email = self.request.user.email
     order.city = self.request.user.city
     order.state = self.request.user.state
     order.country = self.request.user.country
     order.phone = self.request.user.phone
     order.is_completed = False
     order.save()
     self.request.session['order_in_session'] = order.pk
     order.items.all().delete()
     for item in cart.items:
         order_item = SoftwareOrderItem()
         order_item.software = item.product.software
         order_item.quantity = item.quantity
         order_item.price = item.price
         order_item.name = "%s" % item.product
         order_item.sku = item.product.software.sku
         order_item.order = order
         order_item.save()
         if item.product.modules.exists():
             order_item.modules = item.product.modules.all()
             module_names = []
             module_skus = []
             for module in order_item.modules.all():
                 module_names.append(module.name)
                 module_skus.append(module.sku)
             order_item.name = "%s Plus %s" % (order_item.name, ", ".join(module_names))
             order_item.sku = "%s %s" % (order_item.sku, " ".join(module_skus))
             order_item.save()
     self.request.session['billing_details'] = {
         'billing_first_name': form_data['billing_first_name'],
         'billing_last_name': form_data['billing_last_name'],
         'billing_company': form_data['billing_company'],
         'billing_country_code': form_data['billing_country_code'],
         'billing_city': form_data['billing_city'],
         'billing_country_area': form_data['billing_country_area'],
         'billing_address_1': form_data['billing_address_1'],
         'billing_address_2': form_data['billing_address_2'],
         'billing_postcode': form_data['billing_postcode']
     }
     Payment = get_payment_model()
     payment = Payment.objects.create(
         variant=form_data['pay_method'],  # this is the variant from PAYMENT_VARIANTS
         description=order.order_code,
         order=order,
         user=self.request.user,
         total=cart.total,
         tax=Decimal(0),
         currency=settings.DEFAULT_CURRENCY,
         delivery=Decimal(0),
         billing_first_name=form_data['billing_first_name'],
         billing_last_name=form_data['billing_last_name'],
         billing_company=form_data['billing_company'],
         billing_address_1=form_data['billing_address_1'],
         billing_address_2=form_data['billing_address_2'],
         billing_city=form_data['billing_city'],
         billing_postcode=form_data['billing_postcode'],
         billing_country_code=form_data['billing_country_code'],
         billing_country_area=form_data['billing_country_area'],
         customer_ip_address=self.request.META.get('REMOTE_ADDR'))
     return redirect(reverse('checkout-payment', args=[payment.pk]))
예제 #17
0
def order_load(payment_id):
    if int(payment_id) > 1000000000:
        return None
    payment = get_object_or_404(get_payment_model(), id=int(payment_id))
    return payment
예제 #18
0
파일: views.py 프로젝트: D0han/saleor
from django.http.response import Http404, HttpResponseForbidden
from django.shortcuts import redirect
from django.template.response import TemplateResponse
from order import check_order_status
from payment.forms import PaymentMethodsForm, PaymentDeledeForm
from payments import RedirectNeeded, get_payment_model

Payment = get_payment_model()


@check_order_status
def index(request, order):
    form = PaymentMethodsForm(request.POST or None)
    try:
        waiting_payment = order.payments.get(status='waiting')
    except Payment.DoesNotExist:
        waiting_payment = None
        waiting_payment_form = None
    else:
        waiting_payment_form = PaymentDeledeForm(
            None, order=order, initial={'payment_id': waiting_payment.id})
    if form.is_valid() and not waiting_payment:
        payment_method = form.cleaned_data['method']
        return redirect('order:payment:details', token=order.token,
                        variant=payment_method)
    return TemplateResponse(request, 'payment/index.html',
                            {'form': form, 'order': order,
                             'waiting_payment': waiting_payment,
                             'waiting_payment_form': waiting_payment_form})

예제 #19
0
 def get_payment_by_id(self, transaction_id):
     Payment = get_payment_model()
     try:
         return Payment.objects.get(transaction_id=transaction_id, )
     except Payment.DoesNotExist:
         return None