diff --git a/examples/asaas/invoices.php b/examples/asaas/invoices.php index 6d2dd18..7d04f5e 100644 --- a/examples/asaas/invoices.php +++ b/examples/asaas/invoices.php @@ -18,8 +18,9 @@ 'dueDate' => date('Y-m-d', strtotime('+1 day')), ]; -$data = PHPay::asaas(TOKEN_ASAAS_SANDBOX) +$qrcode = PHPay::asaas(TOKEN_ASAAS_SANDBOX) ->client($client) - ->invoice($invoice); + ->invoice($invoice, false) + ->qrCodePix(); -print_r($data); +print_r($qrcode); diff --git a/src/.env b/src/.env index e0eef7e..0c41c02 100644 --- a/src/.env +++ b/src/.env @@ -11,5 +11,6 @@ ASAAS_CLIENT_NOTIFICATIONS=/customers/{id}/notifications # ASAAS PAYMENTS ENDPOINTS ASSAS_PAYMENTS=/payments ASAAS_PAYMENT=/payments/{id} +ASAAS_PAYMENT_QRCODE=/payments/{id}/pixQrCode ASAAS_PAYMENT_INFO=/payments/{id}/billingInfo ASAAS_PAYMENT_VIEW_INFO=/payments/{id}/viewingInfo \ No newline at end of file diff --git a/src/Gateways/Asaas/AsaasGateway.php b/src/Gateways/Asaas/AsaasGateway.php index 021a37f..953505c 100644 --- a/src/Gateways/Asaas/AsaasGateway.php +++ b/src/Gateways/Asaas/AsaasGateway.php @@ -76,13 +76,13 @@ public function invoice( ): Invoice|self { $invoiceInstance = new Invoice($invoice, $this); - if ($createOnly && empty($invoice)) { + if (!empty($invoice)) { $this->invoice = $invoiceInstance->create()->invoice; - - $this; } - return $invoiceInstance; + return $createOnly ? + $this : + $invoiceInstance; } /** diff --git a/src/Gateways/Asaas/Resources/Interfaces/InvoiceInterface.php b/src/Gateways/Asaas/Resources/Interfaces/InvoiceInterface.php index d032cac..4a09089 100644 --- a/src/Gateways/Asaas/Resources/Interfaces/InvoiceInterface.php +++ b/src/Gateways/Asaas/Resources/Interfaces/InvoiceInterface.php @@ -6,5 +6,11 @@ interface InvoiceInterface { + // public function all(): self; + // public function get(): array; + // public function with(array $filters): self; + // public function find(string $invoiceId): array; public function create(): self|AsaasExceptions; + // public function delete(): bool; + public function qrCodePix(): array; } diff --git a/src/Gateways/Asaas/Resources/Invoice.php b/src/Gateways/Asaas/Resources/Invoice.php index ca7a484..898eb2a 100644 --- a/src/Gateways/Asaas/Resources/Invoice.php +++ b/src/Gateways/Asaas/Resources/Invoice.php @@ -10,15 +10,20 @@ final class Invoice extends Resource implements InvoiceInterface { + /** + * @var array + */ + public array $client; + /** * @var array */ public array $invoice; /** - * @var array - */ - public array $client; + * @var array + */ + public array $qrcode; /** * @var array @@ -50,17 +55,31 @@ public function __construct(array $invoice, Gateway $gateway) */ public function create(): self|AsaasExceptions { + $this->invoice['customer'] = $this->gateway->client['id']; + AsaasInvoiceRequest::validate( $this->client, $this->invoice ); - $this->invoice['customer'] = $this->client['id']; - $this->invoice = Http::asaas() ->post(env('ASSAS_PAYMENTS'), $this->invoice) ->json(); return $this; } + + /** + * get qr code from invoice + * + * @return array + */ + public function qrCodePix(): array + { + $this->qrcode = Http::asaas() + ->get(str_replace('{id}', $this->invoice['id'], env('ASAAS_PAYMENT_QRCODE'))) + ->json(); + + return $this->qrcode; + } }