def get_scanner(request, station_id): if request.method == "OPTIONS": return HttpResponse() ret = '{"detail":"%s"}' auth = VigilateAuthentication() try: auth_result = auth.authenticate(request) if not auth_result: return HttpResponse(ret % "Unauthenticated", status=403) request.user = auth_result[0] except AuthenticationFailed as e: return HttpResponse(ret % e, status=401) try: station_id_int = int(station_id) station = Station.objects.filter(id=station_id_int, user=request.user.id)[0] except (ValueError, IndexError): return HttpResponse(ret % "Not found", status=404) with open(os.path.join(BASE_DIR, 'program_scanner/scanner.py'), 'r') as raw_scan: conf_scan = raw_scan.read() conf_scan = conf_scan.replace('DEFAULT_ID', station_id) conf_scan = conf_scan.replace('DEFAULT_USER', request.user.email) conf_scan = conf_scan.replace('DEFAULT_TOKEN', Station.objects.get(id=station_id_int).token) conf_scan = conf_scan.replace('DEFAULT_URL', request.get_host()) conf_scan = conf_scan.replace('DEFAULT_SCHEME', request.scheme) rep = HttpResponse(content_type='text/x-python') rep['Content-Disposition'] = 'attachment; filename=scanner.py' rep.write(conf_scan) return rep
def checkout(request, plan_id): if request.method == "OPTIONS": return HttpResponse() if request.method != "POST": return HttpResponse(status=400) plan_id = int(plan_id) try: plan = Plans.objects.get(enabled=True, id=plan_id) except Plans.DoesNotExist: return HttpResponse(status=404) auth = VigilateAuthentication() try: auth_result = auth.authenticate(request) if not auth_result: return HttpResponse(ret % "Unauthenticated", status=403) request.user = auth_result[0] except AuthenticationFailed as e: return HttpResponse(ret % e, status=401) data = json.loads(request.body.decode("utf8")) if plan.price == 0: request.user.contrat = int(plan_id) request.user.save() update_contrat(request.user) return HttpResponse(status=200) import stripe stripe.api_key = "sk_test_bbV6OD8cVZ8WDDCBrrUo2ovn" customer_list = stripe.Customer.list() if not request.user.email in [x.id for x in customer_list["data"]]: customer = stripe.Customer.create( customer=request.user.email, source=data["token"] ) desc = "" amount = 0 charge = stripe.Charge.create( customer=request.user.email, amount=round(plan.price*100), currency='eur', description=plan.name ) if charge["status"] == "succeeded": request.user.plan = plan request.user.plan_purchase_date = timezone.now() request.user.save() update_contrat(request.user) print(charge) return HttpResponse()