Skip to content
Vinicius Silva edited this page Oct 10, 2022 · 3 revisions

A forma que o pacote implementa os serviços de acesso a API do PagTesouro e é aqui que você pode trocar os serviços do pacote por serviços customizados da sua aplicação desde que implemente as respectivas interfaces.

    'binds' => [
        'pagtesouro' => Vsilva472\PagTesouro\Services\PagTesouro::class,
        Vsilva472\PagTesouro\Contracts\Payment::class => Vsilva472\PagTesouro\Services\Payment::class,
        Vsilva472\PagTesouro\Contracts\Status::class  => Vsilva472\PagTesouro\Services\Status::class,
    ],

    'http_client' => Vsilva472\PagTesouro\Services\HttpClient::class,

Em todas as binds a implementação do serviço pode ser trocada desde que a interface seja mantida

Vamos supor que você queira usar uma implementação customizada para o serviço de pagamento Vsilva472\PagTesouro\Services\Payment::class

Trocar de:

 Vsilva472\PagTesouro\Contracts\Payment::class => Vsilva472\PagTesouro\Services\Payment::class,

Para:

 Vsilva472\PagTesouro\Contracts\Payment::class => App\Services\PagamentoCustomizado::class,

A implementação da classe PagamentoCustomizado seria algo como:

<?php
namespace App\Services;

use Vsilva472\PagTesouro\Contracts\Payment;

class PagamentoCustomizado implements Payment 
{
    public function createPaymentIntent(array $data)
    {
        //(...)
    }
}