Récépissés de livraison

Vous pouvez vérifier qu'un message que vous avez envoyé à l'aide de l'API SMS de Vonage est parvenu à votre client en demandant un récépissé de livraison du transporteur.

NOTE : Tous les réseaux et tous les pays ne prennent pas en charge les accusés de réception. Vous pouvez consulter notre base de connaissances pour obtenir de plus amples informations sur ce que vous pouvez faire. pourrait recevoir si votre réseau ne prend pas en charge les accusés de réception. Pour plus d'informations sur les accusés de réception, voir notre la documentation.

Pour accéder au récépissé de livraison, vous devez :

NOTE : Après avoir envoyé un message, il peut s'écouler un certain temps avant que vous ne receviez l'accusé de réception.

Conditions préalables

Ajouter ce qui suit à build.gradle:

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

Rédiger le code

Ajouter ce qui suit à la méthode main du fichier 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)

Voir la source complète

Exécutez votre code

Nous pouvons utiliser le plugin application pour Gradle afin de simplifier l'exécution de notre application. Mettez à jour votre build.gradle avec ce qui suit :

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

Lancez la commande suivante gradle pour exécuter votre application, en remplaçant com.vonage.quickstart.kt.sms par le paquet contenant ReceiveSmsDlr:

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

Conditions préalables

Ajouter ce qui suit à build.gradle:

implementation 'com.vonage:server-sdk:9.3.1'
implementation 'com.sparkjava:spark-core:2.9.4'

Rédiger le code

Ajouter ce qui suit à la méthode main du fichier ReceiveDlr:

port(3000);

get("/webhooks/delivery-receipt", (req, res) -> {
    for (String param : req.queryParams()) {
        System.out.printf("%s: %s\n", param, req.queryParams(param));
    }
    res.status(204);
    return "";
});

post("/webhooks/delivery-receipt", (req, res) -> {
    // The body will be form-encoded or a JSON object:
    if (req.contentType().startsWith("application/x-www-form-urlencoded")) {
        for (String param : req.queryParams()) {
            System.out.printf("%s: %s\n", param, req.queryParams(param));
        }
    } else {
        System.out.println(req.body());
    }

    res.status(204);
    return "";
});

Voir la source complète

Exécutez votre code

Nous pouvons utiliser le plugin application pour Gradle afin de simplifier l'exécution de notre application. Mettez à jour votre build.gradle avec ce qui suit :

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

Lancez la commande suivante gradle pour exécuter votre application, en remplaçant com.vonage.quickstart.sms par le paquet contenant ReceiveDlr:

gradle run -Pmain=com.vonage.quickstart.sms.ReceiveDlr

Conditions préalables

Install-Package Vonage

Créez un fichier nommé SmsController.cs et ajoutez le code suivant :

{
    [HttpGet("webhooks/inbound-sms")]        

Voir la source complète

Rédiger le code

Ajouter ce qui suit à SmsController.cs:

}

[HttpGet("webhooks/verify-sms")]
public IActionResult VerifySms()
{
    var vonageApiSignatureSecret = Environment.GetEnvironmentVariable("VONAGE_API_SIGNATURE_SECRET") ?? "VONAGE_API_SIGNATURE_SECRET";
    var sms = WebhookParser.ParseQuery<InboundSms>(Request.Query);

Voir la source complète

Conditions préalables

composer require slim/slim:^3.8 vonage/client

Créez un fichier nommé index.php et ajoutez le code suivant :

use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

Voir la source complète

Ajouter ce qui suit à index.php:

$app = new \Slim\App;

Voir la source complète

Rédiger le code

Ajouter ce qui suit à index.php:

$handler = function (Request $request, Response $response) {
    $receipt = \Vonage\SMS\Webhook\Factory::createFromRequest($request);

    error_log(print_r($receipt, true));

    return $response->withStatus(204);
};

$app->map(['GET', 'POST'], '/webhooks/delivery-receipt', $handler);

$app->run();

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

php -S localhost:3000 -t .

Conditions préalables

pip install fastapi[standard]

Rédiger le code

Ajouter ce qui suit à delivery-receipts.py:

from pprint import pprint

from fastapi import FastAPI, Request

app = FastAPI()


@app.post('/webhooks/delivery-receipt')
async def get_delivery_receipt(request: Request):
    data = await request.json()
    pprint(data)

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

fastapi dev sms/delivery-receipts.py

Conditions préalables

gem install sinatra sinatra-contrib

Créez un fichier nommé delivery_receipt.rb et ajoutez le code suivant :

require 'sinatra'
require 'sinatra/multi_route'
require 'json'

helpers do
  def parsed_body
     json? ? JSON.parse(request.body.read) : {}
  end

  def json?
    request.content_type == 'application/json'
  end
end

Voir la source complète

Rédiger le code

Ajouter ce qui suit à delivery_receipt.rb:

route :get, :post, '/webhooks/delivery-receipt' do
  puts params.merge(parsed_body)
  status 204
end

set :port, 3000

Voir la source complète

Exécutez votre code

Enregistrez ce fichier sur votre machine et exécutez-le :

ruby delivery_receipt.rb

Configurez le point de terminaison du webhook dans votre tableau de bord Vonage.

Pour que Vonage sache comment accéder à votre webhook, vous devez le configurer dans votre Account Vonage.

Dans les extraits de code, le webhook est situé à l'adresse suivante /webhooks/delivery-receipt. Si vous utilisez Ngrok, le webhook que vous devez configurer dans votre Page des paramètres de l'API du tableau de bord de Vonage est de la forme https://demo.ngrok.io/webhooks/delivery-receipt. Remplacer demo avec le sous-domaine fourni par Ngrok et entrez votre point de terminaison dans le champ intitulé URL du Webhook pour les accusés de réception:

Essayez-le

Envoyer un message à un numéro de téléphone portable et, si le réseau le prend en charge, vous recevrez un accusé de réception au format suivant :

{
  "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"
}

NOTE : Après avoir envoyé un message, il peut s'écouler un certain temps avant que vous ne receviez l'accusé de réception.

Plus d'informations