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.
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/PKG-INFO +24 -2
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/README.md +23 -1
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/classes/initializer.py +12 -0
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/exceptions/general.py +13 -46
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/types/response/receipts.py +0 -1
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme_pkg.egg-info/PKG-INFO +24 -2
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/setup.py +1 -1
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/LICENSE.txt +0 -0
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/__init__.py +0 -0
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/admin.py +0 -0
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/apps.py +0 -0
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/classes/__init__.py +0 -0
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/classes/cards.py +0 -0
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/classes/client.py +0 -0
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/classes/http.py +0 -0
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/classes/receipts.py +0 -0
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/const.py +0 -0
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/exceptions/__init__.py +0 -0
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/exceptions/webhook.py +0 -0
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/migrations/__init__.py +0 -0
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/models.py +0 -0
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/types/__init__.py +0 -0
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/types/request/__init__.py +0 -0
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/types/response/__init__.py +0 -0
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/types/response/cards.py +0 -0
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/types/response/webhook.py +0 -0
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/urls.py +0 -0
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/util.py +0 -0
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme/views.py +0 -0
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme_pkg.egg-info/SOURCES.txt +0 -0
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme_pkg.egg-info/dependency_links.txt +0 -0
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme_pkg.egg-info/requires.txt +0 -0
- {payme_pkg-3.0.13b0 → payme_pkg-3.0.14}/payme_pkg.egg-info/top_level.txt +0 -0
- {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.
|
|
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/
|
|
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/
|
|
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
|
|
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
|
-
|
|
45
|
-
"
|
|
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
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: payme-pkg
|
|
3
|
-
Version: 3.0.
|
|
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/
|
|
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
|
+
```
|
|
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
|
|
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
|
|
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
|