payme-pkg 3.3.0__cp312-cp312-macosx_10_13_universal2.whl

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.
Files changed (37) hide show
  1. payme/__init__.py +1 -0
  2. payme/admin.cpython-312-darwin.so +0 -0
  3. payme/apps.cpython-312-darwin.so +0 -0
  4. payme/classes/__init__.py +0 -0
  5. payme/classes/cards.cpython-312-darwin.so +0 -0
  6. payme/classes/client.py +313 -0
  7. payme/classes/http.cpython-312-darwin.so +0 -0
  8. payme/classes/initializer.cpython-312-darwin.so +0 -0
  9. payme/classes/receipts.cpython-312-darwin.so +0 -0
  10. payme/const.cpython-312-darwin.so +0 -0
  11. payme/exceptions/__init__.py +5 -0
  12. payme/exceptions/general.cpython-312-darwin.so +0 -0
  13. payme/exceptions/webhook.cpython-312-darwin.so +0 -0
  14. payme/licensing.cpython-312-darwin.so +0 -0
  15. payme/migrations/0001_initial.py +60 -0
  16. payme/migrations/0002_paymetransactions_fiscal_data.py +18 -0
  17. payme/migrations/0003_alter_paymetransactions_fiscal_data.py +18 -0
  18. payme/migrations/0004_alter_paymetransactions_account_id.py +18 -0
  19. payme/migrations/0005_alter_paymetransactions_amount.py +19 -0
  20. payme/migrations/__init__.py +0 -0
  21. payme/models.cpython-312-darwin.so +0 -0
  22. payme/types/__init__.py +0 -0
  23. payme/types/request/__init__.py +0 -0
  24. payme/types/response/__init__.py +4 -0
  25. payme/types/response/cards.py +122 -0
  26. payme/types/response/receipts.py +242 -0
  27. payme/types/response/webhook.py +154 -0
  28. payme/urls.cpython-312-darwin.so +0 -0
  29. payme/util.cpython-312-darwin.so +0 -0
  30. payme/views/__init__.py +5 -0
  31. payme/views/base.cpython-312-darwin.so +0 -0
  32. payme/views/payme.py +31 -0
  33. payme_pkg-3.3.0.dist-info/METADATA +444 -0
  34. payme_pkg-3.3.0.dist-info/RECORD +37 -0
  35. payme_pkg-3.3.0.dist-info/WHEEL +5 -0
  36. payme_pkg-3.3.0.dist-info/licenses/LICENSE.txt +24 -0
  37. payme_pkg-3.3.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,444 @@
1
+ Metadata-Version: 2.4
2
+ Name: payme_pkg
3
+ Version: 3.3.0
4
+ Home-page: https://github.com/Muhammadali-Akbarov/payme-pkg
5
+ Author: Muhammadali Akbarov
6
+ Author-email: muhammadali17abc@gmail.com
7
+ License: MIT
8
+ Keywords: paymeuz paycomuz payme-merchant merchant-api subscribe-api payme-pkg payme-api
9
+ Description-Content-Type: text/markdown
10
+ License-File: LICENSE.txt
11
+ Requires-Dist: requests==2.*
12
+ Requires-Dist: dataclasses==0.*; python_version < "3.7"
13
+ Requires-Dist: djangorestframework==3.*
14
+ Dynamic: author
15
+ Dynamic: author-email
16
+ Dynamic: description
17
+ Dynamic: description-content-type
18
+ Dynamic: home-page
19
+ Dynamic: keywords
20
+ Dynamic: license
21
+ Dynamic: license-file
22
+ Dynamic: requires-dist
23
+
24
+ <h1 align="center">Payme Software Development Kit</h1>
25
+
26
+ <p align="center">
27
+ <a href="https://t.me/+lO97J78xBj45MzBi">
28
+ <img src="https://img.shields.io/badge/Support%20Group-blue?logo=telegram&logoColor=white" alt="Support Group on Telegram"/>
29
+ </a>
30
+ </p>
31
+
32
+ <p align="center">
33
+ <a href="#table-of-contents"><img src="https://img.shields.io/static/v1?message=Documentation&logo=gitbook&logoColor=ffffff&label=%20&labelColor=5c5c5c&color=3F89A1"></a>
34
+ <a href="https://t.me/+lO97J78xBj45MzBi"><img src="https://img.shields.io/badge/Support%2024/7-💬-FDA599?"/></a>
35
+ <a href="https://github.com/PayTechUz/payme-pkg/issues">
36
+ <img src="https://img.shields.io/github/issues/PayTechUz/payme-pkg" />
37
+ </a>
38
+ <a href="https://pepy.tech/project/payme-pkg">
39
+ <img src="https://static.pepy.tech/badge/payme-pkg" alt="PyPI - Downloads" />
40
+ </a>
41
+ </p>
42
+
43
+ <p align="center">Welcome to payme-pkg, the Payme SDK for Python.</p>
44
+
45
+ <p align="center">You can use it for test and production mode. Join our community and ask everything you need.</p>
46
+
47
+ <p align="center">
48
+ <a href="https://youtu.be/7q7-c72tHpc?si=Sr0EAmEawWAFRk1m" target="_blank">
49
+ <img src="https://img.shields.io/badge/Watch%20Demo-red?logo=youtube&logoColor=white&style=for-the-badge"
50
+ alt="Watch the YouTube Demo"
51
+ style="width: 150px; height: 30px; border-radius: 7px;" />
52
+ </a>
53
+ </p>
54
+
55
+
56
+ ## Installation
57
+
58
+ ```shell
59
+ pip install payme-pkg
60
+ ```
61
+
62
+ ## Table of Contents
63
+
64
+ - [Installation](#installation)
65
+ - [Django Integration](#django-integration)
66
+ - [Payme Client SDK](#payme-client-sdk)
67
+ - [Initialization](#initialization)
68
+ - [Cards API](#cards-api)
69
+ - [Create Card](#create-card)
70
+ - [Get Verify Code](#get-verify-code)
71
+ - [Verify Card](#verify-card)
72
+ - [Check Card](#check-card)
73
+ - [Remove Card](#remove-card)
74
+ - [Test Cards](#test-cards)
75
+ - [Receipts API](#receipts-api)
76
+ - [Create Receipt](#create-receipt)
77
+ - [Pay Receipt](#pay-receipt)
78
+ - [Send Receipt](#send-receipt)
79
+ - [Cancel Receipt](#cancel-receipt)
80
+ - [Check Receipt](#check-receipt)
81
+ - [Get Receipt](#get-receipt)
82
+ - [Get All Receipts](#get-all-receipts)
83
+ - [Set Fiscal Data](#set-fiscal-data)
84
+ - [Test Receipts](#test-receipts)
85
+ - [Payment Initialization](#payment-initialization)
86
+ - [Generate Pay Link](#generate-pay-link)
87
+ - [Generate Fallback Link](#generate-fallback-link)
88
+
89
+ ## Django Integration
90
+
91
+ Add `'payme'` in to your settings.py
92
+
93
+ ```python
94
+ INSTALLED_APPS = [
95
+ ...
96
+ 'payme',
97
+ ...
98
+ ]
99
+ ```
100
+
101
+ Add `'payme'` credentials inside to settings.py (if you have api key)
102
+
103
+ One time payment (Однаразовый платеж) configuration settings.py
104
+
105
+ Example project: https://github.com/PayTechUz/shop-backend
106
+ ```python
107
+
108
+ PAYTECH_API_KEY = "your-api-key" # contact with @muhammadali_me on Telegram for getting api key
109
+
110
+ PAYME_ID = "your-payme-id"
111
+ PAYME_KEY = "your-payme-key"
112
+ PAYME_ACCOUNT_FIELD = "order_id"
113
+ PAYME_AMOUNT_FIELD = "total_amount"
114
+ PAYME_ACCOUNT_MODEL = "orders.models.Orders"
115
+ PAYME_ONE_TIME_PAYMENT = True
116
+
117
+ PAYME_DISABLE_ADMIN = False # (optionally configuration if you want to disable change to True)
118
+
119
+ ```
120
+
121
+ Create a new View that about handling call backs
122
+ ```python
123
+ from payme.views import PaymeWebHookAPIView
124
+
125
+
126
+ class PaymeCallBackAPIView(PaymeWebHookAPIView):
127
+
128
+
129
+ def handle_successfully_payment(self, params, result, *args, **kwargs):
130
+ """
131
+ Handle the successful payment. You can override this method
132
+ """
133
+ print(f"Transaction successfully performed for this params: {params} and performed_result: {result}")
134
+
135
+ def handle_cancelled_payment(self, params, result, *args, **kwargs):
136
+ """
137
+ Handle the cancelled payment. You can override this method
138
+ """
139
+ print(f"Transaction cancelled for this params: {params} and cancelled_result: {result}")
140
+ ```
141
+
142
+ Add a `payme` path to core of urlpatterns:
143
+
144
+ ```python
145
+ from django.urls import path
146
+ from django.urls import include
147
+
148
+ from your_app.views import PaymeCallBackAPIView
149
+
150
+ urlpatterns = [
151
+ ...
152
+ path("payment/update/", PaymeCallBackAPIView.as_view()),
153
+ ...
154
+ ]
155
+ ```
156
+
157
+ Run migrations
158
+ ```shell
159
+ python manage.py migrate
160
+ ```
161
+ 🎉 Congratulations you have been integrated merchant api methods with django, keep reading docs. After successfull migrations check your admin panel and see results what happened.
162
+
163
+ ## Payme Client SDK
164
+
165
+ The Payme SDK provides a unified client interface for working with all Payme services.
166
+
167
+ ## Initialization
168
+
169
+ Initialize the Payme client with your credentials:
170
+
171
+ ```python
172
+ from payme import Payme
173
+
174
+ # Basic initialization (for Cards API and Payment Links)
175
+ payme = Payme(
176
+ payme_id="your-payme-id",
177
+ is_test_mode=True, # Optional: defaults to False
178
+ license_api_key="your-license-key" # Contact @muhammadali_me on Telegram
179
+ )
180
+
181
+ # Full initialization (for all features including Receipts API)
182
+ payme = Payme(
183
+ payme_id="your-payme-id",
184
+ payme_key="your-payme-key", # Required for Receipts API
185
+ is_test_mode=True,
186
+ license_api_key="your-license-key"
187
+ )
188
+ ```
189
+
190
+ ---
191
+
192
+ ## Cards API
193
+
194
+ Manage card tokenization and verification.
195
+
196
+ ### Create Card
197
+
198
+ Create a new card token.
199
+
200
+ ```python
201
+ response = payme.cards_create(
202
+ number="8600495473316478",
203
+ expire="0399", # MMYY format
204
+ save=True, # Optional: save card for future use
205
+ timeout=10 # Optional: request timeout in seconds
206
+ )
207
+
208
+ print(response.result.card.token) # Card token
209
+ print(response.result.card.number) # Masked card number
210
+ ```
211
+
212
+ ### Get Verify Code
213
+
214
+ Request a verification code for a card.
215
+
216
+ ```python
217
+ response = payme.cards_get_verify_code(
218
+ token="card-token",
219
+ timeout=10
220
+ )
221
+
222
+ print(response.result.sent) # True if code was sent
223
+ print(response.result.phone) # Phone number where code was sent
224
+ ```
225
+
226
+ ### Verify Card
227
+
228
+ Verify a card with the code received via SMS.
229
+
230
+ ```python
231
+ response = payme.cards_verify(
232
+ token="card-token",
233
+ code="666666", # Code from SMS
234
+ timeout=10
235
+ )
236
+
237
+ print(response.result.card.verify) # True if verified
238
+ ```
239
+
240
+ ### Check Card
241
+
242
+ Check the status of a card.
243
+
244
+ ```python
245
+ response = payme.cards_check(
246
+ token="card-token",
247
+ timeout=10
248
+ )
249
+
250
+ print(response.result.card.verify) # Verification status
251
+ ```
252
+
253
+ ### Remove Card
254
+
255
+ Remove a card token.
256
+
257
+ ```python
258
+ response = payme.cards_remove(
259
+ token="card-token",
260
+ timeout=10
261
+ )
262
+
263
+ print(response.result.success) # True if removed
264
+ ```
265
+
266
+ ### Test Cards
267
+
268
+ Run comprehensive tests for card operations.
269
+
270
+ ```python
271
+ payme.cards_test()
272
+ ```
273
+
274
+ ---
275
+
276
+ ## Receipts API
277
+
278
+ Manage payment receipts (requires `payme_key`).
279
+
280
+ ### Create Receipt
281
+
282
+ Create a new payment receipt.
283
+
284
+ ```python
285
+ response = payme.receipts_create(
286
+ account={"order_id": 12345},
287
+ amount=50000, # Amount in tiyins (50000 tiyins = 500 UZS)
288
+ description="Payment for order #12345", # Optional
289
+ detail={ # Optional
290
+ "items": [
291
+ {"name": "Product 1", "price": 25000, "quantity": 1},
292
+ {"name": "Product 2", "price": 25000, "quantity": 1}
293
+ ]
294
+ },
295
+ timeout=10
296
+ )
297
+
298
+ print(response.result.receipt._id) # Receipt ID
299
+ ```
300
+
301
+ ### Pay Receipt
302
+
303
+ Pay a receipt using a card token.
304
+
305
+ ```python
306
+ response = payme.receipts_pay(
307
+ receipts_id="receipt-id",
308
+ token="card-token",
309
+ timeout=10
310
+ )
311
+
312
+ print(response.result.receipt.state) # Payment state (4 = paid)
313
+ ```
314
+
315
+ ### Send Receipt
316
+
317
+ Send receipt details to a phone number.
318
+
319
+ ```python
320
+ response = payme.receipts_send(
321
+ receipts_id="receipt-id",
322
+ phone="998901234567",
323
+ timeout=10
324
+ )
325
+
326
+ print(response.result.success) # True if sent
327
+ ```
328
+
329
+ ### Cancel Receipt
330
+
331
+ Cancel a receipt.
332
+
333
+ ```python
334
+ response = payme.receipts_cancel(
335
+ receipts_id="receipt-id",
336
+ timeout=10
337
+ )
338
+
339
+ print(response.result.receipt.state) # State (50 = cancelled)
340
+ ```
341
+
342
+ ### Check Receipt
343
+
344
+ Check the status of a receipt.
345
+
346
+ ```python
347
+ response = payme.receipts_check(
348
+ receipts_id="receipt-id",
349
+ timeout=10
350
+ )
351
+
352
+ print(response.result.state) # Current state
353
+ ```
354
+
355
+ ### Get Receipt
356
+
357
+ Get detailed information about a specific receipt.
358
+
359
+ ```python
360
+ response = payme.receipts_get(
361
+ receipts_id="receipt-id",
362
+ timeout=10
363
+ )
364
+
365
+ print(response.result.receipt) # Receipt details
366
+ ```
367
+
368
+ ### Get All Receipts
369
+
370
+ Get all receipts within a time range.
371
+
372
+ ```python
373
+ response = payme.receipts_get_all(
374
+ count=10, # Number of receipts to retrieve
375
+ from_=1609459200000, # Start timestamp (milliseconds)
376
+ to=1640995200000, # End timestamp (milliseconds)
377
+ offset=0, # Pagination offset
378
+ timeout=10
379
+ )
380
+
381
+ for receipt in response.result:
382
+ print(receipt._id, receipt.amount)
383
+ ```
384
+
385
+ ### Set Fiscal Data
386
+
387
+ Set fiscal data for a receipt.
388
+
389
+ ```python
390
+ response = payme.receipts_set_fiscal_data(
391
+ receipt_id="receipt-id",
392
+ qr_code_url="https://ofd.uz/check?t=123&s=456&r=789&c=2024",
393
+ timeout=10
394
+ )
395
+
396
+ print(response.result.success) # True if set
397
+ ```
398
+
399
+ ### Test Receipts
400
+
401
+ Run comprehensive tests for receipt operations.
402
+
403
+ ```python
404
+ payme.receipts_test()
405
+ ```
406
+
407
+ ---
408
+
409
+ ## Payment Initialization
410
+
411
+ Generate payment links for customers.
412
+
413
+ ### Generate Pay Link
414
+
415
+ Generate a payment link for checkout.
416
+
417
+ ```python
418
+ pay_link = payme.generate_pay_link(
419
+ id=12345, # Account ID
420
+ amount=5000, # Amount in UZS (will be converted to tiyins)
421
+ return_url="https://example.com/success"
422
+ )
423
+
424
+ print(pay_link)
425
+ # Output: https://checkout.paycom.uz/bT1...
426
+ ```
427
+
428
+ ### Generate Fallback Link
429
+
430
+ Generate a fallback payment link with custom form fields.
431
+
432
+ ```python
433
+ fallback_link = payme.generate_fallback_link(
434
+ form_fields={ # Optional
435
+ "driver_id": 12345,
436
+ "amount": 1000
437
+ }
438
+ )
439
+
440
+ print(fallback_link)
441
+ # Output: https://payme.uz/fallback/merchant/?id=...&driver_id=12345&amount=1000
442
+ ```
443
+
444
+ **Note:** The fallback ID is different from the merchant ID. Contact the Payme team to get your fallback ID.
@@ -0,0 +1,37 @@
1
+ payme/__init__.py,sha256=dzLIyA9kQl0sO6z9nHkZDTjkfiI1BepdifKtJbjX2Cw,46
2
+ payme/admin.cpython-312-darwin.so,sha256=yaIXBW-TM6SELiT7rf4rPm7msanEmXlYtOM3fMvYPco,108920
3
+ payme/apps.cpython-312-darwin.so,sha256=6RXXplsaTcSEAl7RxO8Nw5IWnvnORgA7q-7A7TFBAqg,151352
4
+ payme/const.cpython-312-darwin.so,sha256=Srk7IqsxeYeK9CfuvS5dteq_UQvQ6wQWLj4uuxXydC0,107704
5
+ payme/licensing.cpython-312-darwin.so,sha256=JLl9iiQr07_uJ8HMkKEDvmGoDhid4Wbx4mVA7LfFr7o,169392
6
+ payme/models.cpython-312-darwin.so,sha256=sRWcQKqY2SeNj4amy1mH7_ZzH16vgTcLEMohTol0CBY,223552
7
+ payme/urls.cpython-312-darwin.so,sha256=7NjGpumEABiiQ1ESdxWnj3mWoqvq6PSQMGB12vQxc74,90968
8
+ payme/util.cpython-312-darwin.so,sha256=mUOwhV6CSQ-CWeL_oUWCRCdB4V6WkUISPadt9C3NgLw,151688
9
+ payme/classes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
+ payme/classes/cards.cpython-312-darwin.so,sha256=uVUJURDyxolC6uwJHxCqn6Y9dcWhpyam4dERnnChh1M,223944
11
+ payme/classes/client.py,sha256=v0wb4ZhokuhpfTxZ7bj-UBiPd2l1Cd8GxUs8Icb3oVc,10191
12
+ payme/classes/http.cpython-312-darwin.so,sha256=sKiAoYOOn29KgEQeE1mCQyCjxBR8Zt81HaKBs-dUEWM,186296
13
+ payme/classes/initializer.cpython-312-darwin.so,sha256=kLWuIhkApbHQL27v6_tkXF1kaf8Mo1sZYrNohqPJsCc,188816
14
+ payme/classes/receipts.cpython-312-darwin.so,sha256=HkP5y4StWf_ZvL5XUGMhRtwMK3oR-9dY5EOFB_PIocs,294624
15
+ payme/exceptions/__init__.py,sha256=HoBFnDA3eW_xWZiFlonJK4vhBDTsuik91tvgzXTy8KA,94
16
+ payme/exceptions/general.cpython-312-darwin.so,sha256=K4gdSOQQx76pkADglwEnG-rvbIbyjD97PXR6S7ksgX8,366832
17
+ payme/exceptions/webhook.cpython-312-darwin.so,sha256=xf8Aspf3W0ZYJTyo19A-wofDPOhX0pbswdAJHbS-tb8,186624
18
+ payme/migrations/0001_initial.py,sha256=jdtGB6bN-Za6N9XU8IuWsa5FbonGIRH5ro9xHwT7JmU,2128
19
+ payme/migrations/0002_paymetransactions_fiscal_data.py,sha256=z-gxPP3IgN-XNPx6DEZUQ4E1XZceVnnpvUTcSkcv70c,395
20
+ payme/migrations/0003_alter_paymetransactions_fiscal_data.py,sha256=Ish4Seup9pdEM0g4q4RQKrvUOWB2DXPN0RmIScKI2IQ,410
21
+ payme/migrations/0004_alter_paymetransactions_account_id.py,sha256=Kzihw4-HHBG43fZ2WU-qLLU-kxN-plfS3mLeIEZGKxA,417
22
+ payme/migrations/0005_alter_paymetransactions_amount.py,sha256=q1oXti3OVmRi0C7fyuD_BgDtH_XW1lMN_rXB72976S8,442
23
+ payme/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
+ payme/types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
+ payme/types/request/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
+ payme/types/response/__init__.py,sha256=GAj5pjZ9oIO67T6YMiPd1fhTIvGrPfTv96tykfeChQc,81
27
+ payme/types/response/cards.py,sha256=i1IS-oe9XGRFggiHvNZmEbbILUqAw3NE7Ca5FO4kATQ,2121
28
+ payme/types/response/receipts.py,sha256=aHsK5fk79xid00gbLl49VrimMn2iqI3gnfEuuJq592g,4517
29
+ payme/types/response/webhook.py,sha256=E8IVD683T7wra4OxUWq5T6y7HGpjwOVk8ak0tS0b-_o,3084
30
+ payme/views/__init__.py,sha256=qjCG2-ZhrOMEasCisTWAAqSNapiim9oMjPcGb1Ha5dw,92
31
+ payme/views/base.cpython-312-darwin.so,sha256=Yc1cRJKunzEdDZqZvPnUQH-hI-RiEs9e6mzUH2eiKXw,380904
32
+ payme/views/payme.py,sha256=hK1-AQgvxGn2GagwfRaDzrs0XTt6_Zft8EOxFmyvzYA,1241
33
+ payme_pkg-3.3.0.dist-info/licenses/LICENSE.txt,sha256=75dBVYmbzWUhwtaB1MSZfj-M-PGaMmeT9UVPli2-ZJ0,1086
34
+ payme_pkg-3.3.0.dist-info/METADATA,sha256=evjXCV04rBurIyM5rxJ6cdoN1LSAS8JdISRH_421E08,10351
35
+ payme_pkg-3.3.0.dist-info/WHEEL,sha256=_N1vyLgwJ10g4JxFsp-IfU42zGJgf-DUqwfdbV1YvEM,115
36
+ payme_pkg-3.3.0.dist-info/top_level.txt,sha256=8mN-hGAa38pWbhrKHFs9CZywPCdidhMuwPKwuFJa0qw,6
37
+ payme_pkg-3.3.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.9.0)
3
+ Root-Is-Purelib: false
4
+ Tag: cp312-cp312-macosx_10_13_universal2
5
+
@@ -0,0 +1,24 @@
1
+ MIT License
2
+ -----------
3
+
4
+ Copyright (c) 2023 Muhammadali Akbarov
5
+ Permission is hereby granted, free of charge, to any person
6
+ obtaining a copy of this software and associated documentation
7
+ files (the "Software"), to deal in the Software without
8
+ restriction, including without limitation the rights to use,
9
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the
11
+ Software is furnished to do so, subject to the following
12
+ conditions:
13
+
14
+ The above copyright notice and this permission notice shall be
15
+ included in all copies or substantial portions of the Software.
16
+
17
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1 @@
1
+ payme