پایتون
کیف پول

سرویس کیف پول

سرویس کیف پول امکان مدیریت موجودی، تراکنش‌ها و بازپرداخت‌های کاربران را فراهم می‌کند. این سرویس مجموعه‌ای کامل از ابزارها برای انجام عملیات مالی ارائه می‌دهد — شامل دریافت موجودی کیف پول و تاریخچه تراکنش‌ها، ایجاد و مدیریت هزینه‌ها، پردازش بازپرداخت‌ها، و اجرای عملیات مرتبط با اعتبار.

فهرست مطالب

متد‌های کیف پول

متد‌ها

متدتوضیحاتپارامترها
get_balance()دریافت موجودی کاربرuser_id, filters
get_transactions()دریافت تاریخچه تراکنش‌هاuser_id, page, per_page
create_expense()ایجاد یک هزینهuser_id, request
create_expense_from_credit()ایجاد هزینه از اعتبار خاصuser_id, credit_id, request
get_expense()دریافت جزئیات هزینهuser_id, expense_id
delete_expense()حذف/بازگشت هزینهuser_id, expense_id, rollback_reason_id
get_expense_by_ref()دریافت هزینه براساس مرجعuser_id, reason_id, reference_id
delete_expense_by_ref()حذف هزینه براساس مرجعuser_id, reason_id, reference_id, rollback_reason_id
create_refund()پردازش بازپرداختrequest
can_rollback_refund()بررسی امکان بازگشت بازپرداختrefund_reason, refund_reference_id
rollback_refund()بازگشت بازپرداختrequest

مثال‌ها

###پیکربندی اولیه

from basalam_sdk import BasalamClient, PersonalToken
 
auth = ClientCredentials(
    client_id="your-client-id",
    client_secret="your-client-secret"
)
 
client = BasalamClient(auth=auth)

توجه داشته باشید که برای ریکوئست به APIهای سرویس کیف پول باید از احراز هویت اعتبارنامه کلاینت (Client Credentials) استفاده کنید.

دریافت موجودی

def get_balance_example():
    balance = client.get_balance(
        user_id=123,
        filters=[
            BalanceFilter(
                cash=True,
                settleable=True,
                vendor=False,
                customer=True
            )
        ]
    )
    
    return balance

دریافت تراکنش‌ها

def get_transactions_example():
    transactions = client.get_transactions(
        user_id=123,
        page=1,
        per_page=20
    )
    
    for transaction in transactions.data:
        print(f"Transaction: {transaction.time} - Amount: {transaction.amount}")
    
    return transactions

ایجاد هزینه

from basalam_sdk.wallet.models import SpendCreditRequest
 
def create_expense_example():
    expense = client.create_expense(
        user_id=123,
        request=SpendCreditRequest(
            reason_id=1,
            reference_id=456,
            amount=10000,
            description="Payment for order #456",
            types=[1, 2],
            settleable=True,
            references={
                "order_id": 456,
                "payment_method": 1
            }
        )
    )
    
    return expense

ایجاد هزینه از اعتبار خاص

from basalam_sdk.wallet.models import SpendSpecificCreditRequest
 
def create_expense_from_credit_example():
    expense = client.create_expense_from_credit(
        user_id=123,
        credit_id=789,
        request=SpendSpecificCreditRequest(
            reason_id=1,
            reference_id=456,
            amount=5000,
            description="Payment from specific credit",
            settleable=True,
            references={
                "order_id": 456,
                "credit_type": 1
            }
        )
    )
    
    return expense

دریافت هزینه

def get_expense_example():
    expense = client.get_expense(
        user_id=123,
        expense_id=456
    )
    
    return expense

حذف هزینه

def delete_expense_example():
    result = client.delete_expense(
        user_id=123,
        expense_id=456,
        rollback_reason_id=2
    )
    
    return result

دریافت هزینه براساس مرجع

def get_expense_by_ref_example():
    expense = client.get_expense_by_ref(
        user_id=123,
        reason_id=1,
        reference_id=456
    )
    
    if expense:
        print(f"Found expense: {expense.id}")
    return expense

حذف هزینه براساس مرجع

def delete_expense_by_ref_example():
    result = client.delete_expense_by_ref(
        user_id=123,
        reason_id=1,
        reference_id=456,
        rollback_reason_id=2
    )
    
    return result

ایجاد بازپرداخت

from basalam_sdk.wallet.models import RefundRequest
 
def create_refund_example():
    refund = client.create_refund(
        request=RefundRequest(
            original_reason=1,
            original_reference_id=456,
            reason=2,
            reference_id=789,
            amount=5000,
            description="Refund for cancelled order",
            references=[
                {
                    "reference_type_id": 1,
                    "reference_id": 456
                }
            ]
        )
    )
    
    return refund

بررسی امکان بازگشت بازپرداخت

def can_rollback_refund_example():
    can_rollback = client.can_rollback_refund(
        refund_reason=2,
        refund_reference_id=789
    )
    
    return can_rollback

بازگشت بازپرداخت

from basalam_sdk.wallet.models import RollbackRefundRequest
 
def rollback_refund_example():
    result = client.rollback_refund(
        request=RollbackRefundRequest(
            refund_reason=2,
            rollback_refund_reason=3,
            refund_reference_id=789,
            reference_id=456,
            description="Rollback refund due to error",
            references=[
                {
                    "reference_type_id": 1,
                    "reference_id": 456
                }
            ]
        )
    )
    
    return result