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)
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)