Ejemplo n.º 1
0
def pytools_capture(request):
    if request.method != 'POST':
        return
    user = request.user
    user_creation = user.date_joined if user.is_authenticated else now()
    pagarme_resp = payment_facade.pytools_capture(request.POST['token'],
                                                  user_creation)
    customer = pagarme_resp['customer']
    customer_email = customer['email']
    source = request.GET.get('utm_source', default='unknown')
    customer_first_name = customer['name'].split()[0]
    payment_method = pagarme_resp['payment_method']
    if payment_method == 'credit_card':
        if user.is_authenticated:
            _promote_client(user, request)
        else:
            user_facade.force_register_client(customer_first_name,
                                              customer_email, source)
        dct = {'redirect_url': reverse('payments:pytools_thanks')}
    elif payment_method == 'boleto':
        if not user.is_authenticated:
            user = user_facade.force_register_lead(customer_first_name,
                                                   customer_email, source)
        user_facade.client_generated_boleto(user)
        path = reverse('payments:pytools_boleto')
        qs = urlencode(_extract_boleto_params(pagarme_resp))
        dct = {'redirect_url': f'{path}?{qs}'}
    else:
        raise ValueError(f'Invalid payment method {payment_method}')
    return JsonResponse(dct)
Ejemplo n.º 2
0
def pytools_capture(request):
    if request.method != 'POST':
        return
    pagarme_resp = payment_facade.pytools_capture(request.POST['token'])
    if pagarme_resp['payment_method'] == 'credit_card':
        user = request.user
        _promote_client(user)
        dct = {'redirect_url': reverse('payments:pytools_thanks')}
    elif pagarme_resp['payment_method'] == 'boleto':
        path = reverse('payments:pytools_boleto')
        qs = urlencode(_extract_boleto_params(pagarme_resp))
        dct = {'redirect_url': f'{path}?{qs}'}
    return JsonResponse(dct)