azulae / ceca-laravel
为 Laravel 8 定制的 ceca 包
1.0.2
2021-09-06 11:29 UTC
Requires
- php: ^7.2|^8.0
- laravel/framework: ^6.0|^7.0|^8.0
This package is auto-updated.
Last update: 2024-09-27 03:22:03 UTC
README
Laravel 6/7/8 包,支持通过 CECA 在线 tpv 进行支付和取消。
安装
通过 Composer
$ composer require azulae/ceca-laravel
使用
现在我们应在 'providers' 数组中加载我们的服务提供者(config/app.php)
如果你使用 Laravel 5.5 或更高版本,你不需要加载服务提供者
Azulae\Ceca\CecaServiceProvider::class
在 'aliases' 数组中创建一个别名(config/app.php)
如果你使用 Laravel 5.5 或更高版本,你不需要创建别名
'Ceca' => Azulae\Ceca\Facades\Ceca::class,
最后,我们发布我们的配置文件
php artisan vendor:publish --provider="Azulae\Ceca\CecaServiceProvider"
这将在 config 文件夹中创建一个名为 ceca.php 的文件,在这个文件中,我们需要配置我们的密钥、url ok 和 ko。
使用
启动支付请求
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Controllers\Controller; use Azulae\Ceca\Facades\Ceca; class CecaController extends Controller { // public function index() { try{ if(config('ceca.modo') == "desarrollo") { $CecaNumeroTerminal = config('ceca.terminal_desarrollo'); $CecaClaveEncriptacion = config('ceca.clave_encriptacion_desarrollo'); } else { $CecaNumeroTerminal = config('ceca.terminal'); $CecaClaveEncriptacion = config('ceca.clave_encriptacion'); } Ceca::setMerchantID(config('ceca.codigo_comercio')); Ceca::setEntorno(config('ceca.modo')); Ceca::setClaveEncriptacion($CecaClaveEncriptacion); Ceca::setTerminalID($CecaNumeroTerminal) Ceca::setAcquirerBIN(config('ceca.acquirer_bin')); Ceca::setUrlOk(config('ceca.url_ok')); Ceca::setUrlNok(config('ceca.url_ko')); Ceca::setNumOperacion($saleId); Ceca::setImporte(number_format($total,2)); Ceca::launchRedirection(); } catch(Exception $e){ echo $e->getMessage(); } } }
检查服务器的响应
<?php $input = $request->all(); if(config('ceca.modo') == "desarrollo") { $CecaNumeroTerminal = config('ceca.terminal_desarrollo'); $CecaClaveEncriptacion = config('ceca.clave_encriptacion_desarrollo'); } else { $CecaNumeroTerminal = config('ceca.terminal'); $CecaClaveEncriptacion = config('ceca.clave_encriptacion'); } // Firma = sha256( Clave_encriptacion+MerchantID+AcquirerBIN+TerminalID+Num_operacion+Importe+TipoMoneda+Exponente+Referencia ) $preFirma = $CecaClaveEncriptacion.config('ceca.codigo_comercio').config('ceca.acquirer_bin').$CecaNumeroTerminal. $input["Num_operacion"].$input["Importe"].$input["TipoMoneda"].$input["Exponente"].$input["Referencia"]; $firma = hash('sha256', $preFirma); $respuestaFirma = $input["Firma"]; // Si la firma calculada coincide con la recibida se procede a finalizar el pedido if($respuestaFirma == $firma) { // Pago correcto . . . } ?>
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG
安全
如果你发现任何安全相关的问题,请通过电子邮件发送给 :author_email 而不是使用问题跟踪器。
致谢
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件