paytechuz 0.2.4__tar.gz → 0.2.5__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 paytechuz might be problematic. Click here for more details.
- {paytechuz-0.2.4/src/paytechuz.egg-info → paytechuz-0.2.5}/PKG-INFO +15 -2
- {paytechuz-0.2.4 → paytechuz-0.2.5}/README.md +14 -1
- {paytechuz-0.2.4 → paytechuz-0.2.5}/pyproject.toml +1 -1
- {paytechuz-0.2.4 → paytechuz-0.2.5}/setup.py +1 -1
- {paytechuz-0.2.4/src/paytechuz → paytechuz-0.2.5/src}/core/base.py +2 -2
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/gateways/click/client.py +6 -5
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/gateways/payme/client.py +1 -1
- {paytechuz-0.2.4 → paytechuz-0.2.5/src/paytechuz.egg-info}/PKG-INFO +15 -2
- {paytechuz-0.2.4 → paytechuz-0.2.5}/MANIFEST.in +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/setup.cfg +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/__init__.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/core/__init__.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/core/constants.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/core/exceptions.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/core/http.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/core/payme/errors.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/core/utils.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/gateways/__init__.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/gateways/click/__init__.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/gateways/click/merchant.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/gateways/click/webhook.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/gateways/payme/__init__.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/gateways/payme/cards.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/gateways/payme/receipts.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/gateways/payme/webhook.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/integrations/__init__.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/integrations/django/__init__.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/integrations/django/admin.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/integrations/django/apps.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/integrations/django/migrations/0001_initial.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/integrations/django/migrations/__init__.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/integrations/django/models.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/integrations/django/signals.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/integrations/django/views.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/integrations/django/webhooks.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/integrations/fastapi/__init__.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/integrations/fastapi/models.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/integrations/fastapi/routes.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/integrations/fastapi/schemas.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/__init__.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/core/__init__.py +0 -0
- {paytechuz-0.2.4/src → paytechuz-0.2.5/src/paytechuz}/core/base.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/core/constants.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/core/exceptions.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/core/http.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/core/payme/errors.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/core/utils.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/gateways/__init__.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/gateways/click/__init__.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/gateways/click/client.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/gateways/click/merchant.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/gateways/click/webhook.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/gateways/payme/__init__.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/gateways/payme/cards.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/gateways/payme/client.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/gateways/payme/receipts.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/gateways/payme/webhook.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/integrations/__init__.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/integrations/django/__init__.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/integrations/django/admin.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/integrations/django/apps.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/integrations/django/migrations/0001_initial.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/integrations/django/migrations/__init__.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/integrations/django/models.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/integrations/django/signals.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/integrations/django/views.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/integrations/django/webhooks.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/integrations/fastapi/__init__.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/integrations/fastapi/models.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/integrations/fastapi/routes.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/integrations/fastapi/schemas.py +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz.egg-info/SOURCES.txt +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz.egg-info/dependency_links.txt +0 -0
- {paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: paytechuz
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.5
|
|
4
4
|
Summary: Unified Python package for Uzbekistan payment gateways
|
|
5
5
|
Home-page: https://github.com/Muhammadali-Akbarov/paytechuz
|
|
6
6
|
Author: Muhammadali Akbarov
|
|
@@ -66,8 +66,8 @@ payme_link = payme.create_payment(
|
|
|
66
66
|
)
|
|
67
67
|
|
|
68
68
|
click_link = click.create_payment(
|
|
69
|
+
id="order_123",
|
|
69
70
|
amount=150000, # amount in UZS
|
|
70
|
-
account_id="order_123",
|
|
71
71
|
description="Test payment",
|
|
72
72
|
return_url="https://example.com/return"
|
|
73
73
|
)
|
|
@@ -117,6 +117,19 @@ class PaymeWebhookView(BasePaymeWebhookView):
|
|
|
117
117
|
order.save()
|
|
118
118
|
```
|
|
119
119
|
|
|
120
|
+
3. Add webhook URLs to `urls.py`:
|
|
121
|
+
|
|
122
|
+
```python
|
|
123
|
+
# urls.py
|
|
124
|
+
from django.urls import path
|
|
125
|
+
from .views import PaymeWebhookView
|
|
126
|
+
|
|
127
|
+
urlpatterns = [
|
|
128
|
+
# ...
|
|
129
|
+
path('payments/webhook/payme/', PaymeWebhookView.as_view(), name='payme_webhook'),
|
|
130
|
+
]
|
|
131
|
+
```
|
|
132
|
+
|
|
120
133
|
### FastAPI Integration
|
|
121
134
|
|
|
122
135
|
1. Create webhook handler:
|
|
@@ -51,8 +51,8 @@ payme_link = payme.create_payment(
|
|
|
51
51
|
)
|
|
52
52
|
|
|
53
53
|
click_link = click.create_payment(
|
|
54
|
+
id="order_123",
|
|
54
55
|
amount=150000, # amount in UZS
|
|
55
|
-
account_id="order_123",
|
|
56
56
|
description="Test payment",
|
|
57
57
|
return_url="https://example.com/return"
|
|
58
58
|
)
|
|
@@ -102,6 +102,19 @@ class PaymeWebhookView(BasePaymeWebhookView):
|
|
|
102
102
|
order.save()
|
|
103
103
|
```
|
|
104
104
|
|
|
105
|
+
3. Add webhook URLs to `urls.py`:
|
|
106
|
+
|
|
107
|
+
```python
|
|
108
|
+
# urls.py
|
|
109
|
+
from django.urls import path
|
|
110
|
+
from .views import PaymeWebhookView
|
|
111
|
+
|
|
112
|
+
urlpatterns = [
|
|
113
|
+
# ...
|
|
114
|
+
path('payments/webhook/payme/', PaymeWebhookView.as_view(), name='payme_webhook'),
|
|
115
|
+
]
|
|
116
|
+
```
|
|
117
|
+
|
|
105
118
|
### FastAPI Integration
|
|
106
119
|
|
|
107
120
|
1. Create webhook handler:
|
|
@@ -26,16 +26,16 @@ class BasePaymentGateway(ABC):
|
|
|
26
26
|
@abstractmethod
|
|
27
27
|
def create_payment(
|
|
28
28
|
self,
|
|
29
|
+
id: Union[int, str],
|
|
29
30
|
amount: Union[int, float, str],
|
|
30
|
-
account_id: Union[int, str],
|
|
31
31
|
**kwargs
|
|
32
32
|
) -> Dict[str, Any]:
|
|
33
33
|
"""
|
|
34
34
|
Create a payment.
|
|
35
35
|
|
|
36
36
|
Args:
|
|
37
|
+
id: The account ID or order ID
|
|
37
38
|
amount: The payment amount
|
|
38
|
-
account_id: The account ID or order ID
|
|
39
39
|
**kwargs: Additional parameters specific to the payment gateway
|
|
40
40
|
|
|
41
41
|
Returns:
|
|
@@ -12,6 +12,7 @@ from paytechuz.gateways.click.merchant import ClickMerchantApi
|
|
|
12
12
|
|
|
13
13
|
logger = logging.getLogger(__name__)
|
|
14
14
|
|
|
15
|
+
|
|
15
16
|
class ClickGateway(BasePaymentGateway):
|
|
16
17
|
"""
|
|
17
18
|
Click payment gateway implementation.
|
|
@@ -61,16 +62,16 @@ class ClickGateway(BasePaymentGateway):
|
|
|
61
62
|
@handle_exceptions
|
|
62
63
|
def create_payment(
|
|
63
64
|
self,
|
|
65
|
+
id: Union[int, str],
|
|
64
66
|
amount: Union[int, float, str],
|
|
65
|
-
account_id: Union[int, str],
|
|
66
67
|
**kwargs
|
|
67
68
|
) -> Dict[str, Any]:
|
|
68
69
|
"""
|
|
69
70
|
Create a payment using Click.
|
|
70
71
|
|
|
71
72
|
Args:
|
|
73
|
+
id: The account ID or order ID
|
|
72
74
|
amount: The payment amount in som
|
|
73
|
-
account_id: The account ID or order ID
|
|
74
75
|
**kwargs: Additional parameters for the payment
|
|
75
76
|
- description: Payment description
|
|
76
77
|
- return_url: URL to return after payment
|
|
@@ -99,7 +100,7 @@ class ClickGateway(BasePaymentGateway):
|
|
|
99
100
|
payment_url += f"?service_id={self.service_id}"
|
|
100
101
|
payment_url += f"&merchant_id={self.merchant_id}"
|
|
101
102
|
payment_url += f"&amount={amount}"
|
|
102
|
-
payment_url += f"&transaction_param={
|
|
103
|
+
payment_url += f"&transaction_param={id}"
|
|
103
104
|
|
|
104
105
|
if return_url:
|
|
105
106
|
payment_url += f"&return_url={return_url}"
|
|
@@ -111,13 +112,13 @@ class ClickGateway(BasePaymentGateway):
|
|
|
111
112
|
payment_url += f"&merchant_user_id={description}"
|
|
112
113
|
|
|
113
114
|
# Generate a unique transaction ID
|
|
114
|
-
transaction_id = f"click_{
|
|
115
|
+
transaction_id = f"click_{id}_{int(amount_tiyin)}"
|
|
115
116
|
|
|
116
117
|
return {
|
|
117
118
|
'transaction_id': transaction_id,
|
|
118
119
|
'payment_url': payment_url,
|
|
119
120
|
'amount': amount,
|
|
120
|
-
'account_id':
|
|
121
|
+
'account_id': id,
|
|
121
122
|
'status': 'created',
|
|
122
123
|
'service_id': self.service_id,
|
|
123
124
|
'merchant_id': self.merchant_id
|
|
@@ -149,8 +149,8 @@ class PaymeGateway(BasePaymentGateway):
|
|
|
149
149
|
Create a payment using Payme.
|
|
150
150
|
|
|
151
151
|
Args:
|
|
152
|
+
id: Account or order ID
|
|
152
153
|
amount: Payment amount in som
|
|
153
|
-
account_id: Account or order ID
|
|
154
154
|
return_url: Return URL after payment (default: "")
|
|
155
155
|
account_field_name: Field name for account ID (default: "order_id")
|
|
156
156
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: paytechuz
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.5
|
|
4
4
|
Summary: Unified Python package for Uzbekistan payment gateways
|
|
5
5
|
Home-page: https://github.com/Muhammadali-Akbarov/paytechuz
|
|
6
6
|
Author: Muhammadali Akbarov
|
|
@@ -66,8 +66,8 @@ payme_link = payme.create_payment(
|
|
|
66
66
|
)
|
|
67
67
|
|
|
68
68
|
click_link = click.create_payment(
|
|
69
|
+
id="order_123",
|
|
69
70
|
amount=150000, # amount in UZS
|
|
70
|
-
account_id="order_123",
|
|
71
71
|
description="Test payment",
|
|
72
72
|
return_url="https://example.com/return"
|
|
73
73
|
)
|
|
@@ -117,6 +117,19 @@ class PaymeWebhookView(BasePaymeWebhookView):
|
|
|
117
117
|
order.save()
|
|
118
118
|
```
|
|
119
119
|
|
|
120
|
+
3. Add webhook URLs to `urls.py`:
|
|
121
|
+
|
|
122
|
+
```python
|
|
123
|
+
# urls.py
|
|
124
|
+
from django.urls import path
|
|
125
|
+
from .views import PaymeWebhookView
|
|
126
|
+
|
|
127
|
+
urlpatterns = [
|
|
128
|
+
# ...
|
|
129
|
+
path('payments/webhook/payme/', PaymeWebhookView.as_view(), name='payme_webhook'),
|
|
130
|
+
]
|
|
131
|
+
```
|
|
132
|
+
|
|
120
133
|
### FastAPI Integration
|
|
121
134
|
|
|
122
135
|
1. Create webhook handler:
|
|
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
|
|
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
|
{paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/integrations/django/migrations/0001_initial.py
RENAMED
|
File without changes
|
{paytechuz-0.2.4 → paytechuz-0.2.5}/src/paytechuz/integrations/django/migrations/__init__.py
RENAMED
|
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
|