azulae/ceca-laravel

为 Laravel 8 定制的 ceca 包

This package is auto-updated.

Last update: 2024-09-27 03:22:03 UTC


README

Latest Version on Packagist Software License Total Downloads

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)。有关更多信息,请参阅 许可证文件