Metadata-Version: 2.4
Name: mongolian-payment-bonum
Version: 1.0.0
Summary: Bonum PSP payment gateway SDK for Python
License-Expression: MIT
License-File: LICENSE
Requires-Python: >=3.8
Requires-Dist: httpx>=0.24.0
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.21; extra == 'dev'
Requires-Dist: pytest>=7.0; extra == 'dev'
Description-Content-Type: text/markdown

# mongolian-payment-bonum

Bonum PSP payment gateway SDK for Python. Supports both synchronous and asynchronous usage.

## Installation

```bash
pip install mongolian-payment-bonum
```

## Usage

### Synchronous

```python
from mongolian_payment_bonum import BonumClient, BonumConfig, ProcessPaymentInput

client = BonumClient(BonumConfig(
    endpoint="https://psp.bonum.mn",
    merchant_key="your-merchant-key",
))

# Process a payment (Apple Pay / card token)
result = client.process_payment(ProcessPaymentInput(
    token="payment-token-from-authorization",
    order_id="ORDER-001",
))

print(result.success)      # True/False
print(result.status_code)  # e.g. "000"
print(result.order_id)     # "ORDER-001"
print(result.desc)         # Description

# Process a Google Pay payment
from mongolian_payment_bonum import ProcessGooglePayInput

gpay_result = client.process_google_pay(ProcessGooglePayInput(
    token="encrypted-gpay-token",
    order_id="ORDER-002",
    amount=50000,
    currency_code="MNT",
))

# Validate merchant for Apple Pay
from mongolian_payment_bonum import MerchantValidateInput

session = client.validate_merchant(MerchantValidateInput(
    validation_url="https://apple-pay-gateway.apple.com/paymentservices/startSession",
))

# Check payment log
logs = client.get_payment_log("ORDER-001")
for entry in logs:
    print(entry.merchant_order_id, entry.amount, entry.success, entry.created_at)
```

### Asynchronous

```python
import asyncio
from mongolian_payment_bonum import AsyncBonumClient, BonumConfig, ProcessPaymentInput

async def main():
    async with AsyncBonumClient(BonumConfig(
        endpoint="https://psp.bonum.mn",
        merchant_key="your-merchant-key",
    )) as client:
        result = await client.process_payment(ProcessPaymentInput(
            token="payment-token",
            order_id="ORDER-001",
        ))
        print(result.success)

        logs = await client.get_payment_log("ORDER-001")
        print(logs)

asyncio.run(main())
```

### Configuration from Environment Variables

```python
from mongolian_payment_bonum import BonumClient, load_config_from_env

client = BonumClient(load_config_from_env())
```

Required environment variables:

| Variable              | Description                    |
|-----------------------|--------------------------------|
| `BONUM_ENDPOINT`      | Bonum PSP API base URL         |
| `BONUM_MERCHANT_KEY`  | Merchant key from Bonum PSP    |

## License

MIT
