Python SDK for ABA PayWay payment gateway (QR, Check, Close Transaction)
Project description
ABA Payway Python SDK
A clean, dependency-free Python SDK for the ABA PayWay payment gateway.
Python 3.10+ · No third-party dependencies · Stdlib only
Image Preview
Quick Start
1. Install
pip install aba-payway
2. Configure
from aba_sdk import PayWayClient, PayWayConfig, Environment
config = PayWayConfig(
merchant_id="your_merchant_id",
api_key="your_api_key",
env=Environment.sandbox, # OR Environment.production
)
client = PayWayClient(config)
3. Generate a QR Code
from aba_sdk.models import QRRequest, Currency, PaymentOption
from aba_sdk.utils import encode_items, encode_url
from aba_sdk.utils.timestamp import get_req_time
request = QRRequest(
tran_id=tran_id = f"ORDER-{get_req_time()}",
amount=8.00,
currency=Currency.USD, # Supported KHR, USD
payment_option=PaymentOption.ABAPAY_KHQR,
first_name="Khon",
last_name="Chanphearaa",
email="phearaa@example.com",
phone="012345678",
# Optional
items=encode_items([
{"name": "Coffee", "quantity": 2, "price": 2.50},
{"name": "Sandwich", "quantity": 1, "price": 3.00},
]),
callback_url=encode_url("https://yoursite.com/payway/callback"),
lifetime=6,
)
response = client.qr.generate_qr(request)
print(response.qr_string) # Raw KHQR string
print(response.abapay_deeplink) # Deep link for ABA Mobile
response.save_qr_image("qr.png") # Save Base64 PNG to disk
Error Handling
from aba_sdk import PayWayAPIError, PayWayRequestError
try:
response = client.qr.generate_qr(request)
except PayWayAPIError as e:
# API returned an error (wrong domain, invalid hash, etc.)
print(f"[{e.code}] {e.message} trace={e.trace_id}")
except PayWayRequestError as e:
# Network timeout or connection error
print(f"Network error: {e}")
Enums Reference
Currency
| Value | Constant |
|---|---|
USD |
Currency.USD |
KHR |
Currency.KHR |
PaymentOption
| Value | Constant | Notes |
|---|---|---|
abapay |
PaymentOption.ABAPAY |
|
khqr |
PaymentOption.KHQR |
|
abapay_khqr |
PaymentOption.ABAPAY_KHQR |
Most common |
wechat |
PaymentOption.WECHAT |
USD only |
alipay |
PaymentOption.ALIPAY |
USD only |
abapay_khqr_wechat_alipay |
PaymentOption.ALL |
USD only |
QRImageTemplate
TEMPLATE1, TEMPLATE1_COLOR, TEMPLATE2, TEMPLATE2_COLOR, TEMPLATE3, TEMPLATE3_COLOR
Extending the SDK
Each API group gets its own file in aba_sdk/api/ and its own models in aba_sdk/models/.
Then register the new client in PayWayClient:
# aba_sdk/client.py
from .api.checkout import CheckoutClient # new module
class PayWayClient:
def __init__(self, config):
self.qr = QRClient(config)
self.checkout = CheckoutClient(config) # add here
Scope Project Feature
- Generate QRCode
- Check Transaction
- Close Transaction
Example How to Usages
Folder /examples
Run Python File
Environments
| Environment | Base URL |
|---|---|
| Sandbox | https://checkout-sandbox.payway.com.kh |
| Production | https://checkout.payway.com.kh |
Note: Your IP/domain must be whitelisted by PayWay before production calls work. Contact
paywaysales@ababank.comfor production credentials.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aba_payway-0.1.1.tar.gz.
File metadata
- Download URL: aba_payway-0.1.1.tar.gz
- Upload date:
- Size: 13.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
889736fcf6e2af38ae2d28cd022b77b29194318f7e5be7c43a74ab33d4659703
|
|
| MD5 |
426e54700c971629cc65a89a2486d676
|
|
| BLAKE2b-256 |
7f14d9054b674600278c0131ea2a7c46d23989983f9f75b61730eaaff9822b45
|
File details
Details for the file aba_payway-0.1.1-py3-none-any.whl.
File metadata
- Download URL: aba_payway-0.1.1-py3-none-any.whl
- Upload date:
- Size: 19.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cdd97f439c41fdfdc7d29fda076a7a51d166c0ba804507475312a556e73430db
|
|
| MD5 |
64637d0e2d5425377f24e0489b79413b
|
|
| BLAKE2b-256 |
bc8a16bbf5e11a6c72b17b91fe12950900325703dbed44760a6e362eccc17565
|