سرویس کیف پول
سرویس کیف پول امکان مدیریت موجودی، تراکنشها و بازپرداختهای کاربران را فراهم میکند. این سرویس مجموعهای کامل از ابزارها برای انجام عملیات مالی ارائه میدهد — شامل دریافت موجودی کیف پول و تاریخچه تراکنشها، ایجاد و مدیریت هزینهها، پردازش بازپرداختها، و اجرای عملیات مرتبط با اعتبار.
فهرست مطالب
متدهای کیف پول
متدها
متد | توضیحات | پارامترها |
---|---|---|
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