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

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

در یک نگاه

در این سند توضیح می‌دهیم که چگونه با SDK زربان وام را بازپرداخت می‌کنید. این SDK رابطی ساده در اختیارتان می‌گذارد تا بازپرداخت را پیش‌نمایش کنید، اجرا کنید و وضعیتش را دنبال کنید.

پیش‌نیازها

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

نصب

pip install zarban

احراز هویت

این SDK دو نوع احراز هویت می‌خواهد:

  1. توکن دسترسی API
  2. هدر کاربر فرزند؛ اختیاری است و به کاربردتان بستگی دارد
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 برای مدیریت خطا استفاده می‌کند. خطاهای رایج این‌هاست:

  • 400: درخواست نامعتبر
  • 401: عدم احراز هویت
  • 500: خطای داخلی سرور

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

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)

نکات مهم

  1. همیشه پیش از اجرا، بازپرداخت را پیش‌نمایش کنید
  2. برای همه فراخوانی‌های API خطاها را درست مدیریت کنید
  3. پس از اجرا، وضعیت بازپرداخت را دنبال کنید
  4. هدر X-Child-User را پس از استفاده حذف کنید
  5. اطلاعات حساس مانند توکن دسترسی را در متغیرهای محیطی نگه دارید
  6. برای دنبال کردن وضعیت، زمان انتظار را درست تنظیم کنید

محدودیت‌ها

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

پشتیبانی

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

بیشتر بخوانید