jccastillo0007 / eFacturaT

eFacturaT
0 stars 2 forks source link

PFTv2 - ofrecer la posibilidad de enviar una remisión por correo o por wa #2499

Open RigoFlores opened 5 days ago

RigoFlores commented 5 days ago

Hoy en día, si se genera una remisión, esta se debe enviar manualmente al cliente, por correo o por el medio que el usuario defina.

Sin embargo, podríamos agregar un campo de email y otro de WhatsApp, para enviar la remisión. En FTT hacer lo mismo por correo (ya implementado) o por WhatsApp.

En remisión si se captura el correo y/o el número de wa, entonces enviar por esos medios. Si no se captura ninguno, no se enviará la remisión.

En FTT igual, si se captura el correo y/o el número de wa, enviar por esos medios. Se debe capturar al menos 1.

RigoFlores commented 5 days ago

Uso de la API de WhatsApp Business (oficial) Esta es la forma más profesional y confiable, pero requiere registro y validación con Meta.

Requisitos básicos:

  1. Cuenta de WhatsApp Business:
  1. Acceso a la API de WhatsApp Business:

3. Token de acceso:

4. Servidor:

5. Librería HTTP en Java:

Usa bibliotecas como HttpClient o OkHttp para realizar solicitudes HTTPS al endpoint de la API.

Pasos de integración en Java:

Agrega una dependencia HTTP en tu proyecto (Maven/Gradle):

org.apache.httpcomponents.client5 httpclient5 5.2

Código ejemplo para enviar un mensaje:

import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.net.URI;

public class WhatsAppIntegration { public static void main(String[] args) throws Exception { String token = "YOUR_ACCESS_TOKEN"; String phoneNumberId = "YOUR_PHONE_NUMBER_ID"; String recipient = "RECIPIENT_PHONE_NUMBER"; String message = "Hola desde Java!";

    String body = """
        {
            "messaging_product": "whatsapp",
            "to": "%s",
            "type": "text",
            "text": { "body": "%s" }
        }
    """.formatted(recipient, message);

    HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("https://graph.facebook.com/v17.0/" + phoneNumberId + "/messages"))
        .header("Authorization", "Bearer " + token)
        .header("Content-Type", "application/json")
        .POST(HttpRequest.BodyPublishers.ofString(body))
        .build();

    HttpClient client = HttpClient.newHttpClient();
    HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
}

}