diff --git a/alkator/urls.py b/alkator/urls.py index 17414b5..75509a9 100644 --- a/alkator/urls.py +++ b/alkator/urls.py @@ -16,7 +16,7 @@ Including another URLconf """ from django.contrib import admin from django.urls import path -from alkatorapi.views import register, results, photos, payment_result +from alkatorapi.views import register, results, photos, payment_result, payment_state urlpatterns = [ path('admin/', admin.site.urls), @@ -24,4 +24,5 @@ urlpatterns = [ path('api/results', results), path('api/photos', photos), path('api/payment_result', payment_result), + path('api/payment_state', payment_state), ] diff --git a/alkatorapi/models.py b/alkatorapi/models.py index 054f41e..440c9c4 100644 --- a/alkatorapi/models.py +++ b/alkatorapi/models.py @@ -36,4 +36,4 @@ class User(models.Model): paid = models.BooleanField(default=False) def __str__(self): - return f"" + return f"" diff --git a/alkatorapi/views.py b/alkatorapi/views.py index d6536ae..5b4ab62 100644 --- a/alkatorapi/views.py +++ b/alkatorapi/views.py @@ -92,6 +92,14 @@ def payment_result(request): return HttpResponse(status=200) +def payment_state(request): + id = request.GET['refId'] + if User.objects.get(id=id).paid: + return HttpResponse('{"status":"success", "reason":"Úspěšná platba"}', content_type='application/json') + else: + return HttpResponse('{"status":"failed", "reason":"Zatím nemáme informace o provedené platbě. Zkuste reload nebo zkontrolujte email."}', content_type='application/json') + + def results(request): results = [] n = 1 diff --git a/frontend/src/scripts/index.js b/frontend/src/scripts/index.js index 7b7b6da..1679c9e 100644 --- a/frontend/src/scripts/index.js +++ b/frontend/src/scripts/index.js @@ -30,6 +30,11 @@ class Main extends Component { fetch(addr_prefix + "/api/photos").then(resp => resp.json()).then(json => { this.setState({photos: json}) }) + if(window.location.search){ + fetch(addr_prefix + "/api/payment_state" + window.location.search).then(resp => resp.json()).then(json =>{ + this.setState({status: json.status, text: json.reason}) + }) + } window.addEventListener("hashchange", (e) => {this.onHashChange(e)}) } closePhoto = () => { @@ -288,7 +293,7 @@ class Main extends Component { - +