Paypey is a Laravel package designed to simplify integration with various Iranian payment gateways. It offers a clean and flexible API to handle payment requests, verifications, and callbacks seamlessly.
- Supports multiple Iranian payment gateways (e.g., Zarinpal, Mellat, Saman).
- Simple and intuitive API for initiating and verifying transactions.
- Configurable gateway selection.
- Robust error handling.
- Compatible with Laravel 8.x, 9.x, and 10.x.
- PHP >= 8.0
- Laravel >= 8.0
- Composer
- Install via Composer:
composer require gcorpllc/paypey
- Publish the configuration file:
php artisan vendor:publish --provider="gcorpllc\Paypey\PaypeyServiceProvider"
This creates a config/paypey.php file.
Edit the config/paypey.php file to set the ports. Example:
'default_gateway' => env('PAYPEY_DEFAULT_GATEWAY', 'zarinpal'),
'callbackUrl' => env('CALLBACK_URL', '/callback'),
'sandbox' => env('PAYPEY_SANDBOX', true),
'gateways' => [
'zarinpal' => [
'sandbox' => env('ZARINPAL_SANDBOX', false),// can be normal, sandbox, zaringate
'merchantId' => env('ZARINPAL_MERCHANT_ID', 'zarinpal'),
'description' => 'payment using zarinpal',
'currency' => env('CURRENCY', 'T'), //Can be R, T (Rial, Toman)
],
],Add to your .env file:
PAYPEY_DEFAULT_GATEWAY="zarinpal"
CALLBACK_URL="your-merchant-id"
PAYPEY_SANDBOX=trueuse Gcorpllc\Paypey\Facades\Paypey;
$payment = Paypey::driver('zarinpal')
->amount(10000) // Amount in IRR
->callbackUrl(route('payment.callback'))
->purchase();
if ($payment->isSuccessful()) {
return redirect($payment->getPaymentUrl());
} else {
return response()->json(['error' => $payment->getErrorMessage()]);
}use Gcorpllc\Paypey\Facades\Paypey;
$result = Paypey::driver('zarinpal')->verify();
if ($result->isSuccessful()) {
$transactionId = $result->getTransactionId();
return response()->json(['message' => 'Payment verified!', 'transaction_id' => $transactionId]);
} else {
return response()->json(['error' => $result->getErrorMessage()]);
}- Zarinpal: Sandbox and production modes.
- Mellat: Secure transactions with terminal ID.
- More gateways to be added soon.
Access error messages via:
$errorMessage = $payment->getErrorMessage();Clone the repository and run:
composer install
./vendor/bin/phpunitLicensed under the MIT License.
For issues, open a ticket on GitHub or email support@your-vendor.com.
Paypey یک پکیج لاراول است که برای سادهسازی اتصال به درگاههای پرداخت ایرانی طراحی شده است. این پکیج یک API تمیز و انعطافپذیر برای مدیریت درخواستهای پرداخت، تأیید تراکنشها و callbackها ارائه میدهد.
- پشتیبانی از درگاههای پرداخت ایرانی (مانند زرینپال، ملت، سامان).
- API ساده و کاربرپسند برای شروع و تأیید تراکنشها.
- امکان انتخاب درگاه پیشفرض.
- مدیریت خطاها بهصورت جامع.
- سازگار با لاراول نسخههای 8.x، 9.x و 10.x.
- PHP نسخه >= 8.0
- لاراول نسخه >= 8.0
- Composer
- پکیج را از طریق Composer نصب کنید:
composer require gcorpllc/paypey
- فایل پیکربندی را منتشر کنید:
این دستور فایل
php artisan vendor:publish --provider="Gcorpllc\Paypey\PaypeyServiceProvider"config/paypey.phpرا ایجاد میکند.
فایل config/paypey.php را برای تنظیم درگاهها ویرایش کنید. نمونه:
'default_gateway' => env('PAYPEY_DEFAULT_GATEWAY', 'zarinpal'),
'callbackUrl' => env('CALLBACK_URL', '/callback'),
'sandbox' => env('PAYPEY_SANDBOX', true),
'gateways' => [
'zarinpal' => [
'sandbox' => env('ZARINPAL_SANDBOX', false),// can be normal, sandbox, zaringate
'merchantId' => env('ZARINPAL_MERCHANT_ID', 'zarinpal'),
'description' => 'payment using zarinpal',
'currency' => env('CURRENCY', 'T'), //Can be R, T (Rial, Toman)
],
],در فایل .env موارد زیر را اضافه کنید:
PAYPEY_DEFAULT_GATEWAY="zarinpal"
CALLBACK_URL="your-merchant-id"
PAYPEY_SANDBOX=trueuse Gcorpllc\Paypey\Facades\Paypey;
$payment = Paypey::driver('zarinpal')
->amount(10000) // Amount in IRR
->callbackUrl(route('payment.callback'))
->purchase();
if ($payment->isSuccessful()) {
return redirect($payment->getPaymentUrl());
} else {
return response()->json(['error' => $payment->getErrorMessage()]);
}use YourVendor\Paypey\Facades\Paypey;
$result = Paypey::driver('zarinpal')->verify();
if ($result->isSuccessful()) {
$transactionId = $result->getTransactionId();
return response()->json(['message' => 'پرداخت با موفقیت تأیید شد!', 'transaction_id' => $transactionId]);
} else {
return response()->json(['error' => $result->getErrorMessage()]);
}برای اجرای تستها، مخزن را کلون کرده و دستورات زیر را اجرا کنید:
composer install
./vendor/bin/phpunitاین پکیج تحت لایسنس MIT منتشر شده است.
برای مشکلات یا سؤالات، یک تیکت در GitHub باز کنید یا به support@your-vendor.com ایمیل بزنید.
- ساختار: README به دو بخش انگلیسی و فارسی تقسیم شده است تا برای کاربران بینالمللی و ایرانی قابل استفاده باشد.
- جایگزینی: نام
your-vendorباید با نام واقعی وندور شما جایگزین شود. همچنین، لینکهای GitHub و اطلاعات تماس باید بهروزرسانی شوند. - شخصیسازی: میتوانید درگاههای خاص یا قابلیتهای اضافی پکیج خود را در بخشهای مربوطه اضافه کنید.
- استاندارد: این فایل از استانداردهای رایج README (مانند badges، ساختار واضح و مثالهای کد) پیروی میکند.
اگر نیاز به تغییرات خاصی (مانند افزودن بخشهای جدید یا تغییر لحن) دارید، لطفاً اطلاع دهید!