alhelwany/laravel-ecash
Composer 安装命令:
composer require alhelwany/laravel-ecash
包简介
Laravel Payment Gateway for Ecash (Syria)
README 文档
README
Simplify the integration of Ecash payments into your Laravel applications. This package offers a streamlined setup and intuitive API to process payments quickly and securely.
Installation
You can install the package via composer:
composer require alhelwany/laravel-ecash
You can publish and run the migrations with:
php artisan vendor:publish --tag="laravel-ecash-migrations"
php artisan migrate
You can publish the config file with:
php artisan vendor:publish --tag="laravel-ecash-config"
This is the contents of the published config file:
return [ 'gatewayUrl' => env('ECASH_GATEWAY_URL', 'https://checkout.ecash-pay.co'), 'terminalKey' => env('ECASH_TERMINAL_KEY', null), 'merchantId' => env('ECASH_MERCHANT_ID', null), 'merchantSecret' => env('ECASH_MERCHANT_SECRET', null), ];
Getting Started
- Setup your environment variables
- Publish and run the migrations
- To start the payment process, use the checkout method to create a payment model & generate the payment URL
- Once the payment is complete, and the gateway redirects the user to the redirect URL, the payment status changes from PENDING to PROCESSING
- Once the gateway calls the callback URL, the payment status Changes from PROCESSING to either FAILED or PAID
- On each payment status change, a PaymentStatusUpdated event is fired, you may configure a listener to update the status of your order
Enums
Enums are in the namespace "Alhelwany\LaravelEcash\Enums"
enum Lang: string { case AR = 'AR'; case EN = 'EN'; }
enum Currency: string { case SYP = 'SYP'; // The only available currency by the gateway so far }
enum CheckoutType: string { case QR = 'QR'; case CARD = 'Card'; }
enum PaymentStatus: string { case PENDING = 'pending'; case PROCESSING = 'processing'; case PAID = 'paid'; case FAILED = 'failed'; }
Exceptions
InvalidAmountException
Thrown when the checkout function is called with negative or 0 amount.
InvalidConfigurationException
Thrown when trying to use the package before setting up the .env variables
Events
PaymentStatusUpdated
namespace Alhelwany\LaravelEcash\Events; use Illuminate\Broadcasting\InteractsWithSockets; use Illuminate\Foundation\Events\Dispatchable; use Illuminate\Queue\SerializesModels; use Alhelwany\LaravelEcash\Models\EcashPayment; class PaymentStatusUpdated { use Dispatchable, InteractsWithSockets, SerializesModels; public function __construct(private EcashPayment $paymentModel) { } public function getPaymentModel(): EcashPayment { return $this->paymentModel; } }
Important Note
The EcashPayment Model uses id of type UUID as a primary key
Example Usage
Checkout
use App\Http\Controllers\Controller; use Alhelwany\LaravelEcash\Facades\LaravelEcashClient; use Alhelwany\LaravelEcash\DataObjects\PaymentDataObject; use Alhelwany\LaravelEcash\Models\EcashPayment; use Alhelwany\LaravelEcash\Enums\CheckoutType; use Alhelwany\LaravelEcash\Enums\Lang; use Alhelwany\LaravelEcash\Enums\Currency; class ExampleController extends Controller { public function checkout($request) { $paymentDataObject = new PaymentDataObject(CheckoutType::CARD, 100.10); $paymentDataObject->setRedirectUrl(route('payment-successful')); //optional $paymentDataObject->setLang(Lang::EN); //optional $paymentDataObject->setCurrency(Currency::SYP); //optional $model = LaravelEcashClient::checkout($paymentDataObject); // You may attach the EcashPayment model to your order return redirect($model['checkout_url']); } }
Testing
composer test
Credits
License
The MIT License (MIT). Please see License File for more information.
alhelwany/laravel-ecash 适用场景与选型建议
alhelwany/laravel-ecash 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 24 次下载、GitHub Stars 达 1, 最近一次更新时间为 2024 年 04 月 21 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「laravel」 「Mhd Ghaith Alhelwany」 「laravel-ecash」 「Ecash Syria」 「Alhelwany」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 alhelwany/laravel-ecash 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 alhelwany/laravel-ecash 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 alhelwany/laravel-ecash 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Alfabank REST API integration
Laravel package for Accurate Online API integration.
Shared RCX Laravel DataTables UI and configuration helpers.
Boot a Laravel project on any machine with one command: app:serve installs missing tools (PHP, Node, Composer, Herd, Docker), creates .env, sets up the database, runs migrations, builds assets, starts a queue worker and serves via Herd, Sail or artisan serve; app:down cleanly stops everything it sta
Branded, diagnostic error pages (500, 403, 404, 419, 503) for Filament — native Filament UI, dark mode and translations out of the box.
Turn any PDF into a Pingen-ready A4 letter (generated address cover page + A4 normalisation + safe margins) and send it through the Pingen print & mail API. Laravel-first.
统计信息
- 总下载量: 24
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 11
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-04-21