Recibos de entrega

Puedes verificar que un mensaje que enviaste usando la API de SMS de Vonage llegó a tu cliente solicitando un recibo de entrega del transportista.

NOTA: No todas las redes y países admiten recibos de entrega. Puede consultar nuestra base de conocimientos para obtener más información sobre lo que podría recibir si su red no admite recibos de entrega. Para obtener información detallada sobre los recibos de entrega, consulte nuestra documentación.

Para acceder al recibo de entrega, debe:

NOTA: Después de enviar un mensaje puede haber un retraso antes de recibir el acuse de recibo.

Requisitos previos

Añada lo siguiente a build.gradle:

implementation 'com.vonage:server-sdk-kotlin:2.1.1'
implementation 'io.ktor:ktor-server-netty'
implementation 'io.ktor:ktor-serialization-jackson'

Escriba el código

Añada lo siguiente al método main del archivo ReceiveSmsDlr:

embeddedServer(Netty, port = 8000) {
    routing {
        route("/webhooks/delivery-receipt") {
            handle {
                if (call.request.queryParameters.isEmpty()) {
                    val json = call.receive<String>()
                    println(json)
                }
                else {
                    call.request.queryParameters.forEach { key, values ->
                        println("$key: ${values.first()}")
                    }
                }
                call.respond(HttpStatusCode.NoContent)
            }
        }
    }
}.start(wait = true)

Ver fuente completa

Ejecute su código

Podemos utilizar el plugin aplicación para Gradle para simplificar la ejecución de nuestra aplicación. Actualiza tu build.gradle con lo siguiente:

apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''

Ejecute el siguiente comando gradle para ejecutar su aplicación, sustituyendo com.vonage.quickstart.kt.sms por el paquete que contiene ReceiveSmsDlr:

gradle run -Pmain=com.vonage.quickstart.kt.sms.ReceiveSmsDlr

Configura el punto final de webhook en tu panel de Vonage

Para que Vonage sepa cómo acceder a tu webhook, debes configurarlo en tu Account de Vonage.

En los fragmentos de código, el webhook se encuentra en /webhooks/delivery-receipt. Si está utilizando Ngrok, el webhook que necesita configurar en su Página de configuración de API del panel de control de Vonage es de la forma https://demo.ngrok.io/webhooks/delivery-receipt. Sustituir demo con el subdominio proporcionado por Ngrok e introduzca su punto final en el campo denominado URL de Webhook para recibos de entrega:

Pruébalo

Enviar un mensaje a un número de móvil y, si la red lo admite, recibirá un acuse de recibo con el siguiente formato:

{
  "err-code": "0",
  "message-timestamp": "2020-10-25 12:10:29",
  "messageId": "0B00000127FDBC63",
  "msisdn": "447700900000",
  "network-code": "23410",
  "price": "0.03330000",
  "scts": "1810251310",
  "status": "delivered",
  "to": "Vonage"
}

NOTA: Después de enviar un mensaje puede haber un retraso antes de recibir el acuse de recibo.

Más información