Ver Fonte

fix: validação de telefone na integração com Asaas

ebagabee há 1 semana atrás
pai
commit
a0195e7f8b
2 ficheiros alterados com 8 adições e 1 exclusões
  1. 1 0
      .gitignore
  2. 7 1
      app/Services/Integrations/Asaas/AsaasCustomerService.php

+ 1 - 0
.gitignore

@@ -18,3 +18,4 @@ yarn-error.log
 /.fleet
 /.idea
 /.vscode
+dev_scripts/

+ 7 - 1
app/Services/Integrations/Asaas/AsaasCustomerService.php

@@ -38,13 +38,19 @@ public function ensureFranchiseeCustomer(Unit $unit): string
             'name' => $unit->social_reason ?? $unit->fantasy_name ?? 'Franquia',
             'cpfCnpj' => $cpfCnpj,
             'email' => $unit->email,
-            'mobilePhone' => preg_replace('/[^0-9]/', '', $unit->cell_number ?? $unit->phone_number ?? ''),
             'postalCode' => preg_replace('/[^0-9]/', '', $unit->postal_code),
             'address' => $unit->street,
             'addressNumber' => $unit->address_number ?? 'S/N',
             'province' => $unit->neighborhood,
         ];
 
+        // Só envia telefone se for um número que pareça válido (10 a 11 dígitos), 
+        // para não travar a API do Asaas com lixo do cadastro.
+        $mobilePhone = preg_replace('/[^0-9]/', '', $unit->cell_number ?? $unit->phone_number ?? '');
+        if (strlen($mobilePhone) >= 10 && strlen($mobilePhone) <= 11) {
+            $payload['mobilePhone'] = $mobilePhone;
+        }
+
         $response = $this->client->post('/customers', $payload);
 
         return $response['id'];