X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/72fe2a679f27d81c92c65cf005ebf13fae7c7e34..0882d9a8ec29b8f6c80359a9eca7e5034dc2eb24:/src/club/payu/models.py

diff --git a/src/club/payu/models.py b/src/club/payu/models.py
index 6ed329da8..10dd60aaf 100644
--- a/src/club/payu/models.py
+++ b/src/club/payu/models.py
@@ -36,7 +36,10 @@ class Order(models.Model):
         ('COMPLETED', _('Completed')),
         ('CANCELED', _('Canceled')),
         ('REJECTED', _('Rejected')),
+
+        ('ERR-INVALID_TOKEN', _('Invalid token')),
     ])
+    created_at = models.DateTimeField(null=True, blank=True, auto_now_add=True)
     completed_at = models.DateTimeField(null=True, blank=True)
 
     class Meta:
@@ -127,11 +130,17 @@ class Order(models.Model):
             # else?
 
         if 'orderId' not in response:
-            raise ValueError("Expecting dict with `orderId` key, got: %s" % response)
-        self.order_id = response['orderId']
-        self.save()
+            code = response.get('status', {}).get('codeLiteral', '')
+            if code:
+                self.status = 'ERR-' + str(code)
+                self.save()
+                self.status_updated()
+            else:
+                raise ValueError("Expecting dict with `orderId` key, got: %s" % response)
+        else:
+            self.order_id = response['orderId']
+            self.save()
 
-        
         return response.get('redirectUri', self.schedule.get_thanks_url())