|
|
@@ -52,6 +52,19 @@ class PagarmeAnticipationService
|
|
|
|
|
|
$limits ??= $this->fetchAnticipationLimits($recipientId, $paymentDate);
|
|
|
|
|
|
+ if ($limits && $limits->maximum->amount <= 0) {
|
|
|
+ Log::channel('pagarme')->warning('Antecipacao ignorada: recebedor sem valor disponivel para antecipar.', [
|
|
|
+ 'payment_id' => $payment->id,
|
|
|
+ 'provider_id' => $payment->provider_id,
|
|
|
+ 'recipient_id' => $recipientId,
|
|
|
+ 'requested_amount' => $requestedAmount,
|
|
|
+ 'minimum_amount' => $limits->minimum->amount,
|
|
|
+ 'maximum_amount' => $limits->maximum->amount,
|
|
|
+ ]);
|
|
|
+
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
if ($limits && $limits->minimum->amount > 0 && $requestedAmount < $limits->minimum->amount) {
|
|
|
Log::channel('pagarme')->warning('Antecipacao ignorada: valor abaixo do minimo do recebedor.', [
|
|
|
'payment_id' => $payment->id,
|
|
|
@@ -65,6 +78,19 @@ class PagarmeAnticipationService
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
+ if ($limits && $limits->maximum->amount > 0 && $requestedAmount > $limits->maximum->amount) {
|
|
|
+ Log::channel('pagarme')->warning('Antecipacao ignorada: valor acima do maximo disponivel do recebedor.', [
|
|
|
+ 'payment_id' => $payment->id,
|
|
|
+ 'provider_id' => $payment->provider_id,
|
|
|
+ 'recipient_id' => $recipientId,
|
|
|
+ 'requested_amount' => $requestedAmount,
|
|
|
+ 'minimum_amount' => $limits->minimum->amount,
|
|
|
+ 'maximum_amount' => $limits->maximum->amount,
|
|
|
+ ]);
|
|
|
+
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
try {
|
|
|
$response = BulkAnticipationResponseData::fromArray($this->pagarmeRequest(
|
|
|
method: 'POST',
|
|
|
@@ -136,8 +162,16 @@ class PagarmeAnticipationService
|
|
|
->throw();
|
|
|
|
|
|
$body = $response->json() ?? [];
|
|
|
+ $limits = BulkAnticipationLimitsResponseData::fromArray($body);
|
|
|
+
|
|
|
+ Log::channel('pagarme')->info('Limites de antecipacao consultados no Pagar.me.', [
|
|
|
+ 'recipient_id' => $recipientId,
|
|
|
+ 'payment_date' => $paymentDate,
|
|
|
+ 'minimum_amount' => $limits->minimum->amount,
|
|
|
+ 'maximum_amount' => $limits->maximum->amount,
|
|
|
+ ]);
|
|
|
|
|
|
- return BulkAnticipationLimitsResponseData::fromArray($body);
|
|
|
+ return $limits;
|
|
|
} catch (Throwable $e) {
|
|
|
Log::channel('pagarme')->warning('Falha ao consultar limites de antecipacao.', [
|
|
|
'recipient_id' => $recipientId,
|