enessvg/laravel-paynet
Composer 安装命令:
composer require enessvg/laravel-paynet
包简介
Paynet Payment Gateway Laravel SDK
README 文档
README
Paynet Payment Gateway icin Laravel SDK. PHP 8.2+ ve Laravel 10/11/12 ile uyumludur.
Kurulum
composer require enessvg/laravel-paynet php artisan vendor:publish --tag=paynet-config
.env:
PAYNET_SECRET_KEY=your_secret_key_here PAYNET_PUBLIC_KEY=your_public_key_here PAYNET_IS_LIVE=false PAYNET_TIMEOUT=30 PAYNET_VERIFY_SSL=true PAYNET_TDS_RETURN_URL=https://your-domain.com/payment/callback
Response Kullanimi
Tum client methodlari SDK response objesi dondurur. Laravel HTTP response gerekiyorsa raw() ile erisebilirsiniz.
$result->successful(); // Tahsilat/operasyon basarili mi? $result->failed(); // Basarisiz mi? $result->apiSuccessful(); // Paynet code 0 veya 100 mu? $result->errorMessage(); // Banka/Paynet hata mesaji $result->get('xact_id'); // Ham response alanina erisim $result->toArray(); // Ham body array $result->raw(); // Illuminate\Http\Client\Response|null
Odeme benzeri response'larda successful() sadece is_succeed=true ve Paynet sonuc kodu 0 veya 100 ise true doner. Yani HTTP 200 veya code=0 tek basina tahsilat basarisi sayilmaz.
Direkt Odeme
use Paynet\DTOs\PaymentParams; use Paynet\Facades\Paynet; use Paynet\Support\PaynetTools; $result = Paynet::payment(new PaymentParams( amount: PaynetTools::formatWithDecimalSeparator(123.45), referenceNo: PaynetTools::generateReferenceNo('ORD-'), domain: 'www.acme.com', pan: '5400617004770430', month: '12', year: '2030', cvc: '123', cardHolder: 'John Doe', )); if ($result->successful()) { $transactionId = $result->xactId; } if ($result->failed()) { $message = $result->errorMessage(); }
Sakli kart ile odeme:
$result = Paynet::payment(new PaymentParams( amount: '123,45', referenceNo: 'ORD-1001', domain: 'www.acme.com', cardHash: 'saved-card-token', ));
3D Odeme
use Paynet\DTOs\TdsChargeParams; use Paynet\DTOs\TdsInitialParams; use Paynet\Facades\Paynet; $initial = Paynet::tdsInitial(new TdsInitialParams( amount: '123,45', referenceNo: 'ORD-1002', returnUrl: route('payment.callback'), domain: 'www.acme.com', pan: '5400617004770430', month: '12', year: '2030', cvc: '123', cardHolder: 'John Doe', )); if ($initial->successful()) { return redirect($initial->postUrl); } // Callback icinde Paynet'in post ettigi/session'da saklanan degerlerle: $charge = Paynet::tdsCharge(new TdsChargeParams( sessionId: request('session_id'), tokenId: request('token_id'), )); if ($charge->successful()) { $transactionId = $charge->xactId; }
Odeme Dogrulama
Odeme cevabini aldiktan sonra tek helper ile Paynet sorgusu uzerinden dogrulayabilirsiniz.
$verification = Paynet::verifyPayment( referenceNo: 'ORD-1001', expectedAmount: '123,45', expectedCurrency: 'TRY', expectedReferenceNo: 'ORD-1001', ); if ($verification->successful()) { $transaction = $verification->transaction; }
Oran/Taksit
use Paynet\DTOs\RatioParams; use Paynet\Facades\Paynet; $ratios = Paynet::getRatios(new RatioParams( amount: '100000', bin: '540061', addCommissionToAmount: true, agentId: '1001', cardType: 'cc', )); foreach ($ratios->banks as $bank) { foreach ($bank->ratios as $ratio) { echo "{$bank->bankName}: {$ratio->instalment} taksit\n"; } }
Public oran, oran tipi ve oran tanimlari:
use Paynet\DTOs\RatioCodeParams; use Paynet\DTOs\RatioDefinitionParams; use Paynet\DTOs\RatioTypeParams; Paynet::getPublicRatios(new RatioParams(bin: '540061')); Paynet::setRatioType(new RatioTypeParams(description: 'API oran')); Paynet::deleteRatioType(new RatioCodeParams(ratioCode: 'RATIO1')); Paynet::defineRatio(new RatioDefinitionParams( ratioCode: 'RATIO1', cardType: 'cc', banks: [ [ 'bank_id' => 'DENZ', 'instalments' => [ ['instalment' => 0, 'ratio' => 0.1], ], ], ], ));
Kart Saklama
use Paynet\DTOs\CardDescUpdateParams; use Paynet\DTOs\CardListParams; use Paynet\DTOs\DeleteCardParams; use Paynet\DTOs\SaveCardParams; use Paynet\DTOs\SavedCardOtpCheckParams; use Paynet\DTOs\SavedCardOtpParams; use Paynet\Facades\Paynet; $save = Paynet::saveCard(new SaveCardParams( cardDesc: 'Kisisel Kartim', cardHolder: 'John Doe', cardNumber: '4355080000000000', expireMonth: '12', expireYear: '2030', cvv: '123', userUniqueId: 'user-123', )); $cardOwnerId = $save->cardOwnerId; $cards = Paynet::listCards(new CardListParams( cardOwnerId: $cardOwnerId, )); $cardHash = $cards->cards[0]->cardHash; Paynet::updateCardDescription(new CardDescUpdateParams( cardOwnerId: $cardOwnerId, cardHash: $cardHash, cardDesc: 'Yeni Kart Aciklamasi', )); Paynet::deleteCard(new DeleteCardParams( cardOwnerId: $cardOwnerId, cardHash: $cardHash, )); $otp = Paynet::sendCardOtp(new SavedCardOtpParams( userGsm: '5551234567', otpSessionId: 'otp-session-id', )); Paynet::checkOtpForSavedCard(new SavedCardOtpCheckParams( userGsm: '5551234567', otpSessionId: 'otp-session-id', otpCode: 'ART2', ));
Iade ve Iptal
use Paynet\DTOs\ReversalListParams; use Paynet\DTOs\ReversedRequestParams; use Paynet\DTOs\TransactionIdParams; use Paynet\Facades\Paynet; Paynet::requestReversal(new ReversedRequestParams( xactId: 'xk_...', amount: '1000', )); Paynet::listReversals(new ReversalListParams( datab: '2026-01-01', datbi: '2026-01-02', )); Paynet::cancelPreAuthorization(new TransactionIdParams(xactId: 'xk_...')); Paynet::cancelCapture(new TransactionIdParams(xactId: 'xk_...'));
Yardimci Fonksiyonlar
use Paynet\Support\PaynetTools; PaynetTools::formatWithDecimalSeparator(123.45); // "123,45" PaynetTools::formatWithoutDecimalSeparator(123.45); // "12345" PaynetTools::validateCardNumber('5400617004770430'); PaynetTools::validateExpiryDate('12', '2030'); PaynetTools::validateCvc('123'); PaynetTools::maskCardNumber('5400617004770430'); // "540061******0430" PaynetTools::getCardBin('5400617004770430'); // "540061" PaynetTools::generateReferenceNo('ORD-');
Test Kartlari
Paynet test kartlari icin: https://doc.paynet.com.tr/genel-bilgiler/test-kartlari
Lisans
MIT
enessvg/laravel-paynet 适用场景与选型建议
enessvg/laravel-paynet 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 41 次下载、GitHub Stars 达 2, 最近一次更新时间为 2026 年 02 月 17 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「payment」 「gateway」 「laravel」 「pos」 「credit-card」 「paynet」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 enessvg/laravel-paynet 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 enessvg/laravel-paynet 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 enessvg/laravel-paynet 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
repository php library
Payyo Gateway for the Omnipay payment processing library
Client library to send SMS using Comilio SMS Gateway API (https://www.comilio.it)
Alfabank REST API integration
GovPayNet driver for the Omnipay payment processing library
BlueSnap driver for the Omnipay payment processing library
统计信息
- 总下载量: 41
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 23
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-02-17