guysolamour/laravel-cinetpay
Composer 安装命令:
composer require guysolamour/laravel-cinetpay
包简介
A laravel wrapper for cinetpay
README 文档
README
Ce package est un wrapper autour du pour effectuer des paiements en ligne. Vous pouvez visiter leur site internet pour en savoir plus sur leurs différents services.
Installation
Install via composer
composer require guysolamour/laravel-cinetpay
Prerequisites
- PHP >= 8
- Laravel >= 8
Publish package assets
php artisan vendor:publish --provider="Guysolamour\Cinetpay\ServiceProvider"
Usage
Etape 1
Ajoutez les clés api dans le fichier .env
CINETPAY_API_KEY="your api key" CINETPAY_SITE_ID="your site id" # Ces différentes routes seront automatiquement créés pour vous CINETPAY_NOTIFY_URL="/cinetpay/notify" CINETPAY_RETURN_URL="/cinetpay/return" CINETPAY_CANCEL_URL="/cinetpay/cancel"
Etape 2 : Création des routes de redirection
Vous devrez mettre le controller responsable de gérer ces routes dans le fichier de configuration config/cinetpay.php
'controller' => \App\Http\Controllers\PaymentController::class,
Exemple de controller
namespace App\Http\Controllers; use Illuminate\Http\Request; use Guysolamour\Cinetpay\Cinetpay; use Guysolamour\Cinetpay\Http\Controllers\PaymentController as CinetpayPaymentController; class PaymentController extends CinetpayPaymentController { public function cancel(Request $request) { // redirect the user where you want // return redirect('/'); // or redirect()->home(); } public function return(Request $request, Cinetpay $cinetpay) { // $cinetpay->getTransactionBuyer(); // $cinetpay->getTransactionDate()->toDateString(); // $cinetpay->getTransactionCurrency(); // $cinetpay->getTransactionPaymentMethod(); // $cinetpay->getTransactionPaymentId(); // $cinetpay->getTransactionPhoneNumber(); // $cinetpay->getTransactionPhonePrefix(); // $cinetpay->getTransactionLanguage(); // $cinetpay->isValidPayment(); if ($cinetpay->isValidPayment()) { // success } else { // fail } // redirect the user where you want // return redirect('/'); // or redirect()->home(); } public function notify(Request $request, Cinetpay $cinetpay) { // $cinetpay->getTransactionBuyer(); // $cinetpay->getTransactionDate()->toDateString(); // $cinetpay->getTransactionCurrency(); // $cinetpay->getTransactionPaymentMethod(); // $cinetpay->getTransactionPaymentId(); // $cinetpay->getTransactionPhoneNumber(); // $cinetpay->getTransactionPhonePrefix(); // $cinetpay->getTransactionLanguage(); // $cinetpay->isValidPayment(); if ($cinetpay->isValidPayment()){ // success }else { // fail } // redirect the user where you want // return redirect('/'); // or redirect()->home(); } }
Vous pouvez manuellemet créer les routes de redirection depuis votre fichier de route web.php
Route::get('/cinetpay/cancel', [PaymentController::class, 'cancel'])->name('cinetpay.cancel'); Route::post('/cinetpay/notify', [PaymentController::class, 'notify'])->name('cinetpay.notify'); Route::post('/cinetpay/return', [PaymentController::class, 'return'])->name('cinetpay.return')
ou uliser cette méthode , toujours depuis le fichier web.php
/* * Cette fonction enregistra les routes pour vous */ \Guysolamour\Cinetpay\Facades\Utils::routes();
Etape 3
Afficher le bouton de paiement sur une page.
Depuis le controller, créez une instance de la classe \Guysolamour\Cinetpay\Cinetpay en le personnalisant avec l'aide des différentes méthodes existantes sur la classe.
Lorsque la fonction init est appellée, elle récupera les cles apis et les routes de redirection dans le fichier .env et construira l'instance de la classe pour vous avec toutes ces valeurs.
$cinetpay = \Guysolamour\Cinetpay\Cinetpay::init();
Ajoutez l'identifiant de la transaction, cette valeur devra etre stocke dans votre application afin d'identififier et vérfier le statut de chaque paiement. Cette valeur est obligatoire et il existe plusieurs facons de le générer
$cinetpay = \Guysolamour\Cinetpay\Cinetpay::init() ->setTransactionId($transactionId) // must be unique ;
Il existe une méthode statique au sein de la classe qui génère des identifiants de transaction.
$transactionId= \Guysolamour\Cinetpay\Cinetpay::generateTransId(); // cette valeur devra etre stocke dans votre application afin d'identififier et vérfier le statut de chaque paiement $cinetpay = \Guysolamour\Cinetpay\Cinetpay::init() ->setTransactionId($transactionId) // must be unique ;
Ajoutez l'identifiant de l'acheteur pour faire la liaison entre le l'acheteur et le paiement. L'identifiant doit etre unique à chaque acheteur.
$transactionId= \Guysolamour\Cinetpay\Cinetpay::generateTransId(); // cette valeur devra etre stocke dans votre application afin d'identififier et vérfier le statut de chaque paiement $user = \App\Models\User::first(); $cinetpay = \Guysolamour\Cinetpay\Cinetpay::init() ->setTransactionId($transactionId) // must be unique ->setBuyerIdentifiant($user->email ) # or $user->id ;
Cette partie n'est pas obligatoire mais vous pouvez ajouter le numéro qui sera utilisé pour pre remplir le formulaire du paiment.
$transactionId= \Guysolamour\Cinetpay\Cinetpay::generateTransId(); // cette valeur devra etre stocke dans votre application afin d'identififier et vérfier le statut de chaque paiement $user = \App\Models\User::first(); $cinetpay = \Guysolamour\Cinetpay\Cinetpay::init() ->setTransactionId($transactionId) // must be unique ->setBuyerIdentifiant($user->email ) # or $user->id ->setPhonePrefixe('225') // for ivory coast ->setCelPhoneNum('0102030405') ;
Ajouter la désignation ou nom ou description du produit à acheter
$transactionId= \Guysolamour\Cinetpay\Cinetpay::generateTransId(); // cette valeur devra etre stocke dans votre application afin d'identififier et vérfier le statut de chaque paiement $user = \App\Models\User::first(); $cinetpay = \Guysolamour\Cinetpay\Cinetpay::init() ->setTransactionId($transactionId) // must be unique ->setBuyerIdentifiant($user->email ) # or $user->id ->setPhonePrefix('225') // for ivory coast ->setCelPhoneNum('0102030405') ->setDesignation('Mackbook pro 2021 m1') ;
Ajouter le montant total de la transaction, c'est ce montant qui sera facturé au client.
$transactionId= \Guysolamour\Cinetpay\Cinetpay::generateTransId(); // cette valeur devra etre stocke dans votre application afin d'identififier et vérfier le statut de chaque paiement $user = \App\Models\User::first(); $cinetpay = \Guysolamour\Cinetpay\Cinetpay::init() ->setTransactionId($transactionId) // must be unique ->setBuyerIdentifiant($user->email ) # or $user->id ->setPhonePrefix('225') // for ivory coast ->setCelPhoneNum('0102030405') ->setDesignation('Mackbook pro 2021 m1') ->setAmount('950000') ;
Enfin passez la variabe à la vue qui sera chargé d'afficher le bouton de paiement.
return view('shop.checkout', ['cinetpay' => $cinetpay]);
$user = \App\Models\User::first(); $cinetpay = \Guysolamour\Cinetpay\Cinetpay::init() ->setTransactionId($transactionId) // must be unique ->setBuyerIdentifiant($user->email ) # or $user->id ->setPhonePrefix('225') // for ivory coast ->setCelPhoneNum('0102030405') ->setDesignation('Mackbook pro 2021 m1') ->setAmount('950000') ;
Etape 4: Personnalisation du bouton
Dans le fichier
{!! $cinetpay !!}
Pour changer le label du bouton
{!! $cinetpay->show('buy quickly with mobile money') !!}
Pour changer l'apparence du boutn (css), il faudra retirer les styles par défaut
# config/cinetpay.php return [ 'button' => [ 'use_default_style' => false, ] ];
Ajouter des classes css au bouton
# config/cinetpay.php return [ 'button' => [ 'class' => 'btn btn-primary ben-block', ] ];
Ajoutez un identifiant au bouton
# config/cinetpay.php return [ 'button' => [ 'id' => 'paybutton', ] ];
Ajouter directement du css inline
# config/cinetpay.php return [ 'button' => [ 'style' => 'color: white; font-weight: bold', ] ];
Ajoutez des attributs html au bouton
# config/cinetpay.php return [ 'button' => [ 'attributes' => [ 'data-button' => 'pay' ], ] ];
ou changer carrement le html du bouton
# config/cinetpay.php return [ 'button' => [ # :label pour le label du bouton # :id pour l'id du bouton # :class pour les classes du bouton 'html' => "<button class='btn btn-success' :id> <img src='https://aswebagency.com/img/logo.png'></button>", ] ];
Security
If you discover any security related issues, please email instead of using the issue tracker.
Credits
This package is bootstrapped with the help of melihovv/laravel-package-generator.
guysolamour/laravel-cinetpay 适用场景与选型建议
guysolamour/laravel-cinetpay 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 21.35k 次下载、GitHub Stars 达 4, 最近一次更新时间为 2021 年 11 月 30 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「payment」 「laravel」 「cinetpay」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 guysolamour/laravel-cinetpay 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 guysolamour/laravel-cinetpay 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 guysolamour/laravel-cinetpay 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
easily integrate cinetpay's gateway on your php web site.
Alfabank REST API integration
CinetPay laravel package
A Laravel package for integrating CinetPay
Laravel package for Accurate Online API integration.
TrinkPOS Sanal POS (Virtual POS) API client for PHP
统计信息
- 总下载量: 21.35k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 4
- 点击次数: 14
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2021-11-30