Criando
Sintaxe
use DevAjMeireles\PagHiper\Facades\PagHiper;
$pix = PagHiper::pix()->create(/* ... */)
Criando PIX
Para uma melhor organização, a forma de interagir com a criação de PIX é enviando para o método create
quatro (4) instâncias de classes de objeto:
use DevAjMeireles\PagHiper\Facades\PagHiper;
use DevAjMeireles\PagHiper\DTO\Objects\Basic; // 👈
use DevAjMeireles\PagHiper\DTO\Objects\Item; // 👈
use DevAjMeireles\PagHiper\DTO\Objects\Payer; // 👈
$pix = PagHiper::pix()
->create(
Basic::make() // 👈
->set('order_id', 1433)
->set('notification_url', route('paghiper.notification'))
->set('discount_cents', 0),
Payer::make() // 👈
->set('name', 'Joao Inácio da Silva')
->set('email', 'joao.inacio@gmail.com')
->set('cpf_cnpj', '99279725041')
->set('phone', '11985850505'),
Item::make() // 👈
->set('item_id', 12)
->set('description', 'Kit de Malas de Viagem')
->set('quantity', 1)
->set('price_cents', 25000));
Observações
- O método
set
irá procurar pela propriedade e só definirá o seu valor caso encontre a propriedade na classe que está sendo construída pelo métodomake
. - O nome das propriedades deve seguir exatamente a convenção de nome das propriedades de boleto bancário da PagHiper
Usando Modelador do Laravel
Opcionalmente, você pode usar um modelador do Laravel como Payer
do boleto:
use App\Models\User; // 👈
use DevAjMeireles\PagHiper\DTO\Objects\Basic;
use DevAjMeireles\PagHiper\DTO\Objects\Item;
use DevAjMeireles\PagHiper\Facades\PagHiper;
$pix = PagHiper::pix()
->create(
Basic::make()
->set('order_id', 1433)
->set('notification_url', route('paghiper.notification'))
->set('discount_cents', 0),
User::first(), // 👈
Item::make()
->set('item_id', 12)
->set('description', 'Kit de Malas de Viagem')
->set('quantity', 1)
->set('price_cents', 25000));
Para utilizar a abordagem, acima seu modelador deve implementar a interface PagHiperModelAbstraction
, a qual exigirá que os seguintes métodos sejam criados na classe do modelador:
namespace App\Models;
use DevAjMeireles\PagHiper\Contracts\PagHiperModelAbstraction; // 👈
use Illuminate\Database\Eloquent\Model;
class User extends Model implements PagHiperModelAbstraction // 👈
{
// ...
public function pagHiperName(): string
{
return 'Joao Inácio da Silva';
}
public function pagHiperEmail(): string
{
return 'joao.inacio@gmail.com';
}
public function pagHiperCpfCnpj(): string
{
return '99279725041';
}
public function pagHiperPhone(): string
{
return '11985850505';
}
public function pagHiperAddress(): array
{
// pix não utiliza endereço, retorne um array vazio
return [];
}
};
Multiplos Itens
Você também pode enviar um array de itens:
use DevAjMeireles\PagHiper\Facades\PagHiper;
use DevAjMeireles\PagHiper\DTO\Objects\Basic;
use DevAjMeireles\PagHiper\DTO\Objects\Item;
use DevAjMeireles\PagHiper\DTO\Objects\Payer;
$pix = PagHiper::pix()
->create(
Basic::make()
->set('order_id', 1433)
->set('notification_url', route('paghiper.notification'))
->set('discount_cents', 0),
Payer::make()
->set('name', 'Joao Inácio da Silva')
->set('email', 'joao.inacio@gmail.com')
->set('cpf_cnpj', '99279725041')
->set('phone', '11985850505'),
[
Item::make()->set('item_id', 12)->set('description', 'Kit de Malas de Viagem')->set('quantity', 1)->set('price_cents', 25000),
Item::make()->set('item_id', 12)->set('description', 'Protetor de Malas (100x100)')->set('quantity', 3)->set('price_cents', 3550),
]
);
Casts
Você pode usar casts disponíveis para transformar a resposta.