مثال استفاده از كتابخانه payexa
استفاده از كتابخانه payexa از طريق نصب pip
دانلود ثبت شده
63
آخرین بروزرسانی
2026-09-25
حجم بسته
7.5 KB
منتشرکننده
مدیر ارشد سامانه
وضعیت نمایش
عمومی و فعال
در این صفحه بسته های آماده برای اتصال به سرویس پرداخت، افزونه های کمکی و مثال های اجرایی را مثل یک ریپازیتوری مرور می کنید: فایل ها را می بینید، README را می خوانید و کل بسته را با یک دانلود می گیرید.
CONTROLLED RELEASE
انتشار کنترل شده از پنل رسمی
هر بسته از مسیر مدیریتی رسمی پی اکسا منتشر می شود و قبل از دانلود، اطلاعات کلیدی آن به صورت شفاف نمایش داده می شود.
PRE-DOWNLOAD VISIBILITY
شفافیت محتوا پیش از دریافت
پیش نمایش README، مرور ساختار فایل و نمایش متادیتای بسته کمک می کند قبل از دانلود، ارزیابی دقیق تری از محتوا داشته باشید.
TRUST PROFILE
نمای رسمی تر برای انتخاب ابزار
صفحه بر پایه شفافیت انتشار، نمایش منبع README، تاریخ بروزرسانی و آمار دانلود چیده شده تا حس ارزیابی حرفه ای تری منتقل کند.
مرجع حقوقی و هویتی کنار دسترس
ساختار صفحه طوری چیده شده که اطلاعات انتشار، محتوای فایل ها و جزئیات هر بسته بدون شلوغی اضافه در دسترس باشند.
استفاده از كتابخانه payexa از طريق نصب pip
دانلود ثبت شده
63
آخرین بروزرسانی
2026-09-25
حجم بسته
7.5 KB
منتشرکننده
مدیر ارشد سامانه
وضعیت نمایش
عمومی و فعال
پوشه جاری را انتخاب کنید یا برای فایل های متنی پیش نمایش بگیرید.
| نام | نوع | اندازه |
|---|---|---|
| بازگشت به پوشه قبل | پوشه | - |
| index.html | قابل پیش نمایش | 3.9 KB |
| result.html | قابل پیش نمایش | 2.6 KB |
templates/result.html
<!doctype html>
<html lang="fa" dir="rtl">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ title }}</title>
<style>
body {
margin: 0;
min-height: 100vh;
font-family: Georgia, "Times New Roman", serif;
background: #f5efe6;
color: #1f1b17;
}
main {
width: min(840px, calc(100% - 24px));
margin: 36px auto;
}
.panel {
background: rgba(255, 251, 245, 0.96);
border: 1px solid rgba(31, 27, 23, 0.12);
border-radius: 24px;
padding: 28px;
}
.status {
display: inline-block;
padding: 8px 12px;
border-radius: 999px;
margin-bottom: 16px;
}
.status.ok {
background: rgba(15, 118, 110, 0.12);
color: #0f766e;
}
.status.error {
background: rgba(180, 35, 24, 0.08);
color: #b42318;
}
dl {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px 20px;
}
dt { color: #6e6256; }
dd { margin: 0; font-weight: 700; }
a {
display: inline-block;
margin-top: 24px;
padding: 12px 16px;
border-radius: 14px;
background: #0f766e;
color: #fff;
text-decoration: none;
}
@media (max-width: 760px) {
dl { grid-template-columns: 1fr; }
}
</style>
</head>
<body>
<main>
<section class="panel">
<div class="status {{ 'ok' if ok else 'error' }}">{{ 'موفق' if ok else 'ناموفق' }}</div>
<h1>{{ title }}</h1>
<p>{{ message }}</p>
{% if verification_status is defined %}
<p><strong>وضعیت verify:</strong> {{ verification_status }}</p>
{% endif %}
{% if balance is defined %}
<p><strong>موجودی فعلی:</strong> {{ balance }} {{ currency_label }}</p>
{% endif %}
{% if payment %}
<h2>جزئیات تراکنش</h2>
<dl>
<dt>authority</dt>
<dd>{{ payment.authority }}</dd>
<dt>order_id</dt>
<dd>{{ payment.order_id }}</dd>
<dt>amount</dt>
<dd>{{ payment.amount }}</dd>
<dt>amount_unique_token</dt>
<dd>{{ payment.amount_unique_token }}</dd>
<dt>status</dt>
<dd>{{ payment.status }}</dd>
</dl>
{% endif %}
<a href="{{ url_for('index') }}">بازگشت به صفحه اصلی</a>
</section>
</main>
</body>
</html>منبع: README.md
این پروژه یک دمو ساده Flask برای شارژ کیف پول با استفاده از پکیج payexa از PyPI است.
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
cp .env.example .env
مقادیر مهم در .env:
PAYEXA_BASE_URL=https://pay.pexn.irPAYEXA_API_KEY=YOUR_API_KEYPAYEXA_MERCHANT_ID=APP_BASE_URL=http://127.0.0.1:5000اگر DATABASE_PATH خالی باشد، پروژه از instance/wallet.sqlite3 استفاده می کند.
source .venv/bin/activate
python app.py
بعد از اجرا اپ روی آدرس زیر در دسترس است:
http://127.0.0.1:5000
PayexaClient درخواست پرداخت می سازد.parse_callback و سپس verify_payment را اجرا می کند..venv/bin/python -c "from payexa import PayexaClient; print(PayexaClient)"
.venv/bin/python -c "from app import app; client = app.test_client(); print(client.get('/').status_code)"
برای callback واقعی، مقدار APP_BASE_URL باید از بیرون قابل دسترسی باشد. اگر روی localhost اجرا می کنید، فقط بخش local flow را راحت تست می کنید.
من دستیار پی اکسا هستم، شما را در تمام مسیر راهنمایی میکنم و اگر به من نیازی ندارید با ۲ بار کلیک خاموش میشوم.