payme-pkg 3.0.13b0__tar.gz → 3.0.14__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of payme-pkg might be problematic. Click here for more details.

Files changed (34) hide show
  1. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/PKG-INFO +24 -2
  2. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/README.md +23 -1
  3. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/classes/initializer.py +12 -0
  4. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/exceptions/general.py +13 -46
  5. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/types/response/receipts.py +0 -1
  6. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme_pkg.egg-info/PKG-INFO +24 -2
  7. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/setup.py +1 -1
  8. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/LICENSE.txt +0 -0
  9. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/__init__.py +0 -0
  10. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/admin.py +0 -0
  11. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/apps.py +0 -0
  12. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/classes/__init__.py +0 -0
  13. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/classes/cards.py +0 -0
  14. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/classes/client.py +0 -0
  15. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/classes/http.py +0 -0
  16. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/classes/receipts.py +0 -0
  17. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/const.py +0 -0
  18. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/exceptions/__init__.py +0 -0
  19. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/exceptions/webhook.py +0 -0
  20. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/migrations/__init__.py +0 -0
  21. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/models.py +0 -0
  22. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/types/__init__.py +0 -0
  23. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/types/request/__init__.py +0 -0
  24. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/types/response/__init__.py +0 -0
  25. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/types/response/cards.py +0 -0
  26. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/types/response/webhook.py +0 -0
  27. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/urls.py +0 -0
  28. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/util.py +0 -0
  29. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/views.py +0 -0
  30. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme_pkg.egg-info/SOURCES.txt +0 -0
  31. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme_pkg.egg-info/dependency_links.txt +0 -0
  32. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme_pkg.egg-info/requires.txt +0 -0
  33. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme_pkg.egg-info/top_level.txt +0 -0
  34. {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: payme-pkg
3
- Version: 3.0.13b0
3
+ Version: 3.0.14
4
4
  Home-page: https://github.com/Muhammadali-Akbarov/payme-pkg
5
5
  Author: Muhammadali Akbarov
6
6
  Author-email: muhammadali17abc@gmail.com
@@ -36,7 +36,7 @@ Requires-Dist: djangorestframework==3.*
36
36
  </a>
37
37
 
38
38
  <p align="center">
39
- <a href="https://youtu.be/xxiIggu_RNk?si=Idpg8omFvFDCYtcm" target="_blank">Watch the YouTube Demo</a>
39
+ <a href="https://youtu.be/7q7-c72tHpc?si=Sr0EAmEawWAFRk1m" target="_blank">Watch the YouTube Demo</a>
40
40
  </p>
41
41
 
42
42
  ## Installation
@@ -147,3 +147,25 @@ print(pay_link)
147
147
  ```
148
148
  https://checkout.paycom.uz/bT15b3VyLXBheW1lLWlkO2FjLmlkPTEyMzQ1NjthPTUwMDAwMDtjPWh0dHBzOi8vZXhhbXBsZS5jb20=
149
149
  ```
150
+
151
+
152
+ ## Generate Fallback Link
153
+
154
+
155
+ Example to generate fallback link:
156
+
157
+ - Input
158
+
159
+ ```python
160
+ from payme import Payme
161
+
162
+ payme = Payme(payme_id="your-payme-id")
163
+ fallback_link = payme.initializer.generate_fallback_link()
164
+ print(fallback_link)
165
+ ```
166
+
167
+ - Output
168
+
169
+ ```
170
+ https://payme.uz/fallback/merchant/?id=59f9ca12dsadaa1717
171
+ ```
@@ -22,7 +22,7 @@
22
22
  </a>
23
23
 
24
24
  <p align="center">
25
- <a href="https://youtu.be/xxiIggu_RNk?si=Idpg8omFvFDCYtcm" target="_blank">Watch the YouTube Demo</a>
25
+ <a href="https://youtu.be/7q7-c72tHpc?si=Sr0EAmEawWAFRk1m" target="_blank">Watch the YouTube Demo</a>
26
26
  </p>
27
27
 
28
28
  ## Installation
@@ -133,3 +133,25 @@ print(pay_link)
133
133
  ```
134
134
  https://checkout.paycom.uz/bT15b3VyLXBheW1lLWlkO2FjLmlkPTEyMzQ1NjthPTUwMDAwMDtjPWh0dHBzOi8vZXhhbXBsZS5jb20=
135
135
  ```
136
+
137
+
138
+ ## Generate Fallback Link
139
+
140
+
141
+ Example to generate fallback link:
142
+
143
+ - Input
144
+
145
+ ```python
146
+ from payme import Payme
147
+
148
+ payme = Payme(payme_id="your-payme-id")
149
+ fallback_link = payme.initializer.generate_fallback_link()
150
+ print(fallback_link)
151
+ ```
152
+
153
+ - Output
154
+
155
+ ```
156
+ https://payme.uz/fallback/merchant/?id=59f9ca12dsadaa1717
157
+ ```
@@ -55,3 +55,15 @@ class Initializer:
55
55
  )
56
56
  params = base64.b64encode(params.encode("utf-8")).decode("utf-8")
57
57
  return f"https://checkout.paycom.uz/{params}"
58
+
59
+ def generate_fallback_link(self):
60
+ """
61
+ Generate a fallback URL for the Payme checkout.
62
+
63
+ Returns
64
+ -------
65
+ str
66
+ A fallback URL formatted as a URL, ready to be used in the payment
67
+ process.
68
+ """
69
+ return f"https://payme.uz/fallback/merchant/?id={self.payme_id}"
@@ -2,51 +2,16 @@ import logging
2
2
 
3
3
 
4
4
  class BaseError(Exception):
5
- """
6
- Base class for all errors in the payment system.
7
-
8
- Attributes:
9
- code (str or int): Error code identifying the type of error.
10
- message (str): A human-readable error message.
11
- data (dict, optional): Additional context or metadata for the error.
12
- """
5
+ """Base class for all errors in the payment system."""
13
6
  logger = logging.getLogger(__name__)
14
7
 
15
- def __init__(self, code=None, message=None, data=None, *args, **kwargs):
16
- """
17
- Initialize the BaseError instance.
18
-
19
- Args:
20
- code (str or int, optional): Error code identifying the error type.
21
- message (str, optional): Human-readable error description.
22
- data (dict, optional): Additional context or metadata.
23
- *args: Additional positional arguments for exception context.
24
- **kwargs: Additional keyword arguments for exception context.
25
- """
26
- # Use default values if none provided
27
- code = code or "UNKNOWN_ERROR"
28
- message = message or "An unspecified error occurred."
29
-
8
+ def __init__(self, code, message, data=None):
30
9
  super().__init__(message)
31
-
32
10
  self.code = code
33
11
  self.data = data
34
- self.args = args
35
- self.kwargs = kwargs
36
-
37
- # Structured logging for better insights
38
- self.logger.error(
39
- f"[{self.__class__.__name__}] Code: {code}, Message: {message}, "
40
- f"Data: {data}, Args: {args}, Kwargs: {kwargs}",
41
- exc_info=True
42
- )
43
12
 
44
- def __repr__(self):
45
- """Provide a developer-friendly string representation."""
46
- return (
47
- f"<{self.__class__.__name__} code={self.code!r} message={self.message!r} "
48
- f"data={self.data!r}>"
49
- )
13
+ # pylint: disable=W1203
14
+ self.logger.error(f"Error {code}: {message}. Data: {data}")
50
15
 
51
16
 
52
17
  class CardError(BaseError):
@@ -181,6 +146,14 @@ class InsufficientFundsError(CardError):
181
146
  super().__init__(-31303, self.message, data)
182
147
 
183
148
 
149
+ class InsufficientFundsErrorV2(CardError):
150
+ """Insufficient funds on the card."""
151
+ message = "Insufficient funds on the card."
152
+
153
+ def __init__(self, data=None):
154
+ super().__init__(-31630, self.message, data)
155
+
156
+
184
157
  class InvalidCardNumberError(CardError):
185
158
  """Invalid card number provided."""
186
159
  message = "Invalid card number."
@@ -278,12 +251,6 @@ class UnknownPartnerError(BaseException):
278
251
  super().__init__(message, data)
279
252
 
280
253
 
281
- class UnknownError(BaseException):
282
- """An unknown error occurred."""
283
- def __init__(self, message="An unknown error occurred.", data=None):
284
- super().__init__(message, data)
285
-
286
-
287
254
  errors_map = {
288
255
  -32300: TransportError,
289
256
  -32700: ParseError,
@@ -295,6 +262,7 @@ errors_map = {
295
262
  -31301: SmsNotConnectedError,
296
263
  -31302: BalanceError,
297
264
  -31303: InsufficientFundsError,
265
+ -31630: InsufficientFundsErrorV2,
298
266
  -31300: InvalidCardNumberError,
299
267
  -31002: ProcessingServerError,
300
268
  -31110: OtpSendError,
@@ -304,5 +272,4 @@ errors_map = {
304
272
  -31602: ReceiptsNotFoundError,
305
273
  -32500: InvalidTokenFormat,
306
274
  -31601: UnknownPartnerError,
307
- "UNKNOWN_ERROR": UnknownError
308
275
  }
@@ -123,7 +123,6 @@ class Receipt(Common):
123
123
  type: int
124
124
  external: bool
125
125
  operation: int
126
- category: any = None
127
126
  error: any = None
128
127
  description: str = None
129
128
  detail: Detail = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: payme-pkg
3
- Version: 3.0.13b0
3
+ Version: 3.0.14
4
4
  Home-page: https://github.com/Muhammadali-Akbarov/payme-pkg
5
5
  Author: Muhammadali Akbarov
6
6
  Author-email: muhammadali17abc@gmail.com
@@ -36,7 +36,7 @@ Requires-Dist: djangorestframework==3.*
36
36
  </a>
37
37
 
38
38
  <p align="center">
39
- <a href="https://youtu.be/xxiIggu_RNk?si=Idpg8omFvFDCYtcm" target="_blank">Watch the YouTube Demo</a>
39
+ <a href="https://youtu.be/7q7-c72tHpc?si=Sr0EAmEawWAFRk1m" target="_blank">Watch the YouTube Demo</a>
40
40
  </p>
41
41
 
42
42
  ## Installation
@@ -147,3 +147,25 @@ print(pay_link)
147
147
  ```
148
148
  https://checkout.paycom.uz/bT15b3VyLXBheW1lLWlkO2FjLmlkPTEyMzQ1NjthPTUwMDAwMDtjPWh0dHBzOi8vZXhhbXBsZS5jb20=
149
149
  ```
150
+
151
+
152
+ ## Generate Fallback Link
153
+
154
+
155
+ Example to generate fallback link:
156
+
157
+ - Input
158
+
159
+ ```python
160
+ from payme import Payme
161
+
162
+ payme = Payme(payme_id="your-payme-id")
163
+ fallback_link = payme.initializer.generate_fallback_link()
164
+ print(fallback_link)
165
+ ```
166
+
167
+ - Output
168
+
169
+ ```
170
+ https://payme.uz/fallback/merchant/?id=59f9ca12dsadaa1717
171
+ ```
@@ -7,7 +7,7 @@ long_description = (here / "README.md").read_text(encoding="utf-8")
7
7
 
8
8
  setup(
9
9
  name='payme-pkg',
10
- version='3.0.13b',
10
+ version='3.0.14',
11
11
  license='MIT',
12
12
  author="Muhammadali Akbarov",
13
13
  author_email='muhammadali17abc@gmail.com',
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes