پرش به مطلب اصلی

بازپرداخت وام

نمای کلی

این سند نحوه استفاده از SDK زربان برای بازپرداخت وام‌ها را توضیح می‌دهد. این SDK قابلیت‌هایی برای پیش‌نمایش بازپرداخت‌ها، اجرای بازپرداخت‌ها و نظارت بر وضعیت آنها از طریق یک رابط ساده ارائه می‌دهد.

پیش‌نیازها

  • SDK زربان (zarban.wallet)
  • توکن دسترسی معتبر
  • اعتبارنامه کاربر فرزند (در صورت نیاز)

نصب

pip install zarban

احراز هویت

SDK به دو نوع احراز هویت نیاز دارد:

۱. توکن دسترسی API
۲. هدر کاربر فرزند (اختیاری، بسته به مورد استفاده)

cfg = wallet.Configuration(host="https://testwapi.zarban.io")
cfg.access_token = "your_access_token_here"
api_client = wallet.ApiClient(cfg)
api_client.default_headers['X-Child-User'] = "your_child_username"

توابع اصلی

بازپرداخت وام

repay_loan(loans_api, loan_id, intent="Repay")

عملیات بازپرداخت وام، شامل پیش‌نمایش و بازپرداخت واقعی را مدیریت می‌کند.

پارامترها:

  • api_instance: نمونه wallet.LoansApi
  • loan_id: str - شناسه یکتای وام
  • intent: str - "Preview" یا "Repay"

خروجی:

  • شیء پاسخ API حاوی جزئیات بازپرداخت در صورت موفقیت
  • None در صورت شکست عملیات

مثال:

# Preview repayment
preview_response = repay_loan(loans_api, "loan123", intent="Preview")

# Execute repayment
repayment_response = repay_loan(loans_api, "loan123", intent="Repay")

بررسی وضعیت وام

get_loan_status(loan_details, loan_id)

اطلاعات دقیق درباره وام را بازیابی و نمایش می‌دهد.

پارامترها:

  • loan_details: شیء وام حاوی اطلاعات وام
  • loan_id: str - شناسه یکتای وام

خروجی: شیء جزئیات وام شامل:

  • وضعیت وام
  • شناسه کاربر
  • قیمت تسویه
  • مقدار وثیقه
  • نسبت وثیقه‌گذاری
  • نسبت وام به ارزش
  • مقدار بدهی
  • طرح وام

مثال:

loan_details = loans_api.get_loan_details(loan_id)
status = get_loan_status(loan_details, loan_id)

نقاط پایانی API

POST /loans/repay

پیش‌نمایش یا اجرای بازپرداخت وام.

بدنه درخواست:

{
"intent": "Preview", // یا "Repay"
"loan_id": "loan123"
}

پاسخ (200 OK):

{
"id": "vault123",
"userId": 12345,
"liquidationPrice": {
"USD": "1500.00",
"ETH": "0.75"
},
"collateral": {
"ETH": "1.0",
"USD": "2000.00"
},
"collateralizationRatio": "1.5",
"loanToValue": "0.66",
"debt": {
"DAI": "1000.00",
"USD": "1000.00"
}
// سایر فیلدها
}

GET /loans/{id}

بازیابی جزئیات وام.

پارامترهای مسیر:

  • id: شناسه وام

پاسخ (200 OK): جزئیات وام شامل وضعیت، وثیقه، بدهی و سایر اطلاعات مرتبط را برمی‌گرداند.

مدیریت خطا

SDK از ApiException برای مدیریت خطا استفاده می‌کند. خطاهای رایج شامل:

  • ۴۰۰: درخواست نامعتبر
  • ۴۰۱: عدم احراز هویت
  • ۵۰۰: خطای داخلی سرور

مثال مدیریت خطا:

try:
loans_response = loans_api.repay_loan(repay_request)
except wallet.ApiException as e:
print(f"Exception when calling LoansApi->repay_loan: %s" % e)

مثال کامل استفاده

def main():
# Setup
ACCESS_TOKEN = "your_access_token_here"

# Setup API client
cfg = wallet.Configuration(host="https://testwapi.zarban.io")
cfg.access_token = ACCESS_TOKEN
api_client = wallet.ApiClient(cfg)
loans_api = wallet.LoansApi(api_client)

# Set child user header
api_client.default_headers['X-Child-User'] = "your_child_username"

# Preview repayment
preview_response = repay_loan(loans_api, "loan123", intent="Preview")

if preview_response:
print("Repayment preview details:")
print(f"Collateral to be returned: {preview_response.collateral}")
print(f"Debt to be repaid: {preview_response.debt}")

# Execute repayment if preview successful
repayment_response = repay_loan(loans_api, "loan123")

if repayment_response:
# Monitor repayment status
while True:
loan_details = loans_api.get_loan_details("loan123")
if loan_details.state.LocaleEn == "Loan settled":
print("Loan repayment successful!")
break
time.sleep(10)

# Clean up
api_client.default_headers.pop('X-Child-User', None)

نکات مهم

۱. همیشه قبل از اجرا، بازپرداخت را پیش‌نمایش کنید
۲. مدیریت خطای مناسب را برای تمام فراخوانی‌های API پیاده‌سازی کنید
۳. پس از اجرا، وضعیت بازپرداخت را نظارت کنید
۴. پس از استفاده، هدر X-Child-User را حذف کنید
۵. اطلاعات حساس (مانند توکن‌های دسترسی) را در متغیرهای محیطی ذخیره کنید
۶. مدیریت مناسب زمان انتظار را برای نظارت بر وضعیت پیاده‌سازی کنید

محدودیت‌ها

  • پیش‌نمایش بازپرداخت قبل از بازپرداخت واقعی توصیه می‌شود
  • نظارت بر وضعیت ممکن است به چندین فراخوانی API نیاز داشته باشد
  • توکن‌های دسترسی API باید امن نگهداری شوند و نباید در کد ثابت شوند

پشتیبانی

برای پشتیبانی بیشتر یا گزارش اشکالات، لطفاً با تیم پشتیبانی زربان تماس بگیرید.

همچنین ببینید