b5s / maxipago
Ferramenta para facilitar trabalhar com o modo PIX da Maxipago
Requires
- php: >=8.1
- ext-dom: *
- ext-simplexml: *
- guzzlehttp/guzzle: 7.*
- monolog/monolog: ^3.1
Requires (Dev)
- roave/security-advisories: dev-latest
README
PIX Maxipago
Para mais informações sobre o funcionamento da biblioteca, seus campos e valores, consultar https://www.maxipago.com/developers/pix/
Instanciar a classe maxipago\pix\Pix e indicar no construtor o storeId e a merchantKey, assim como o modo de execução. A versão da API deve ser modificada apenas em caso de necessidade, assim como o debugMode.
Por padrão, a biblioteca utiliza a API na versão 3.1.1.15.
new maxipago\pix\Pix(storeId: 'xxxx', merchantKey: 'yyyy');
Por padrão, a biblioteca opera no ambiente de homologação para evitar execuções acidentais durante o desenvolvimento, para alterar para o ambiente de produção, basta indicar no construtor da classe maxipago\pix\Pix ou chamar o método productionMode e marcar o mesmo como true:
new maxipago\pix\Pix(storeId: 'xxxx', merchantKey: 'yyyy', productionMode: true);
Ou
$pix = new maxipago\pix\Pix(storeId: 'xxxx', merchantKey: 'yyyy');
$pix->productionMode(true);
A biblioteca não realizara chamadas para nenhuma das API's da Maxipago quando estiver sendo executada em modo de debug.
Link de Pagamento: Para realizar uma requisição de geração de pix por link de pagamento, deve se utilizar o método paymentLink, que recebe como parâmetro uma instância da classe maxipago\pix\paymentLink\PaymentLink.
$paymentLink = new PaymentLink(
    consumerAuthentication: maxipago\pix\Enums\YesOrNoEnum::No,
    referenceNum: '2009171040',
    fraudCheck: maxipago\pix\Enums\YesOrNoEnum::No,
    billing: new \maxipago\pix\paymentLink\Billing(
        email: 'dev@maxipago.com',
        language: 'pt',
        firstName: 'Dev'
    ),
    transactionDetail: new \maxipago\pix\paymentLink\TransactionDetail(
        description: 'pagamento Smart TV',
        emailSubject: 'Favor efetuar o pagamento',
        expirationDate: '06/17/2022',
        amount: 2.00,
        acceptPix: maxipago\pix\Enums\YesOrNoEnum::Yes
    )
);
$pix = new maxipago\pix\Pix(storeId: 'xxxx', merchantKey: 'yyyy');
$pix->paymentLink($paymentLink);
Uma instância de maxipago\pix\dto\PaymentLink será retornada.
Pix Checkout: Para realizar um pagamento Pix no modelo Checkout, basta utilizar o método checkout, que recebe como parâmetro uma instância da classe maxipago\pix\checkout\Sale.
$sale = new Sale(
	processorId: '200',
	referenceNum: 'MXP_PIX_130120211126',
	fraudCheck: 'N', 
	payment: new maxipago\pix\checkout\Payment(totalPrice: 10005.00),
	costumerIdExt: '37568256634',
	billing: new maxipago\pix\checkout\Billing(
		name: 'maxipixPago',
		address: 'Avenida Paulista 123',
		address2: '1 Andar',
		district: 'Paraiso',
		city: 'Sao Paulo',
		state: 'SP',
		postalcode: '01311000',
		country: 'BR',
		phone: '36925873229',
		email: 'testepix@testepix.com',
		documents: [
			new maxipago\pix\checkout\Document(documentType: 'CPF', documentValue: '99907514047'),
		]
	),
	transactionDetail: new maxipago\pix\checkout\TransactionDetail(
		pixExpirationTime: 86400,
		purchaseDescription: 'Smart TV LG 65´ 8K IPS NanoCell, Conexão WiFi e Bluetooth',
		extraInfo: [
			new maxipago\pix\checkout\PurchaseInformation(name: 'TV8k', value: 10000.00),
			new maxipago\pix\checkout\PurchaseInformation(name: 'Garantia Estendida', value: 5.00),
		]
	)
);
$pix->checkout($sale);
Uma instância de maxipago\pix\dto\GeneratedPix será retornada.
Estorno: Para realizar uma operação de estorno, basta utilizar o método chargeback, que recebe como parâmetro uma instância da classe maxipago\pix\estorno\PixReturn.
$sale = new Sale(
	processorId: '200',
	referenceNum: 'MXP_PIX_130120211126',
	fraudCheck: 'N',
	payment: new Payment(totalPrice: 10005.00),
	costumerIdExt: '37568256634',
	billing: new Billing(
		name: 'maxipixPago',
		address: 'Avenida Paulista 123',
		address2: '1 Andar',
		district: 'Paraiso',
		city: 'Sao Paulo',
		state: 'SP',
		postalcode: '01311000',
		country: 'BR',
		phone: '36925873229',
		email: 'testepix@testepix.com',
		documents: [
			new Document(documentType: 'CPF', documentValue: '99907514047'),
		]
	),
	transactionDetail: new TransactionDetail(
		pixExpirationTime: 86400,
		purchaseDescription: 'Smart TV LG 65´ 8K IPS NanoCell, Conexão WiFi e Bluetooth',
		extraInfo: [
			new PurchaseInformation(name: 'TV8k', value: 10000.00),
			new PurchaseInformation(name: 'Garantia Estendida', value: 5.00),
		]
	)
);
$result = $pix->checkout($sale);
$chargeback = new PixReturn(
    orderId: $result->getOrderId(), 
    referenceNum: $result->getReferenceNum(), 
    chargeTotal: 10005.00
);
$pix->chargeback($chargeback);
Uma instância de maxipago\pix\dto\GeneratedPix será retornada.
Cancelamento de Pix (VOID):
Para realizar uma operação de cancelamento de Pix, basta utilizar o método voidPix, passando como parâmetro a transactionId do pix a ser cancelado.
$paymentLink = new PaymentLink(
    consumerAuthentication: maxipago\pix\Enums\YesOrNoEnum::No,
    referenceNum: '2009171040',
    fraudCheck: maxipago\pix\Enums\YesOrNoEnum::No,
    billing: new \maxipago\pix\paymentLink\Billing(
        email: 'dev@maxipago.com',
        language: 'pt',
        firstName: 'Dev'
    ),
    transactionDetail: new \maxipago\pix\paymentLink\TransactionDetail(
        description: 'pagamento Smart TV',
        emailSubject: 'Favor efetuar o pagamento',
        expirationDate: '06/17/2022',
        amount: 2.00,
        acceptPix: 'S'
    )
);
$pix = new maxipago\pix\Pix(storeId: 'xxxx', merchantKey: 'yyyy');
$result = $pix->paymentLink($paymentLink);
$pix->voidPix(transactionId: $result->getTransactionId());
Uma instância de maxipago\pix\dto\GeneratedPix será retornada.