Lieferscheine

Sie können verifizieren, dass eine Nachricht, die Sie über die Vonage SMS API gesendet haben, Ihren Kunden erreicht hat, indem Sie eine Lieferschein von der Fluggesellschaft.

HINWEIS: Nicht alle Netze und Länder unterstützen Lieferscheine. In unserer Wissensdatenbank finden Sie weitere Informationen darüber, was Sie erhalten könnte wenn Ihr Netz keine Lieferscheine unterstützt. Ausführliche Informationen zu Lieferscheinen finden Sie in unserem Dokumentation.

Um den Lieferschein abzurufen, müssen Sie Folgendes tun:

HINWEIS: Nachdem Sie eine Nachricht gesendet haben, kann es zu einer Verzögerung kommen, bis Sie die Empfangsbestätigung erhalten.

Voraussetzungen

Fügen Sie Folgendes zu build.gradle hinzu:

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

Schreiben Sie den Code

Fügen Sie der Methode main in der Datei ReceiveSmsDlr Folgendes hinzu:

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)

Vollständige Quelle anzeigen

Führen Sie Ihren Code aus

Wir können das Anmeldung Plugin für Gradle verwenden, um die Ausführung unserer Anwendung zu vereinfachen. Aktualisieren Sie Ihre build.gradle mit dem Folgenden:

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

Führen Sie den folgenden Befehl gradle aus, um Ihre Anwendung auszuführen, und ersetzen Sie dabei com.vonage.quickstart.kt.sms durch das Paket, das ReceiveSmsDlr enthält:

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

Voraussetzungen

Fügen Sie Folgendes zu build.gradle hinzu:

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

Schreiben Sie den Code

Fügen Sie der Methode main in der Datei ReceiveDlr Folgendes hinzu:

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 "";
});

Vollständige Quelle anzeigen

Führen Sie Ihren Code aus

Wir können das Anmeldung Plugin für Gradle verwenden, um die Ausführung unserer Anwendung zu vereinfachen. Aktualisieren Sie Ihre build.gradle mit dem Folgenden:

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

Führen Sie den folgenden Befehl gradle aus, um Ihre Anwendung auszuführen, und ersetzen Sie dabei com.vonage.quickstart.sms durch das Paket, das ReceiveDlr enthält:

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

Voraussetzungen

Install-Package Vonage

Erstellen Sie eine Datei mit dem Namen SmsController.cs und fügen Sie den folgenden Code hinzu:

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

Vollständige Quelle anzeigen

Schreiben Sie den Code

Fügen Sie Folgendes zu SmsController.cs hinzu:

}

[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);

Vollständige Quelle anzeigen

Voraussetzungen

composer require slim/slim:^3.8 vonage/client

Erstellen Sie eine Datei mit dem Namen index.php und fügen Sie den folgenden Code hinzu:

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

Vollständige Quelle anzeigen

Fügen Sie Folgendes zu index.php hinzu:

$app = new \Slim\App;

Vollständige Quelle anzeigen

Schreiben Sie den Code

Fügen Sie Folgendes zu index.php hinzu:

$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();

Vollständige Quelle anzeigen

Führen Sie Ihren Code aus

Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:

php -S localhost:3000 -t .

Voraussetzungen

pip install fastapi[standard]

Schreiben Sie den Code

Fügen Sie Folgendes zu delivery-receipts.py hinzu:

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)

Vollständige Quelle anzeigen

Führen Sie Ihren Code aus

Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:

fastapi dev sms/delivery-receipts.py

Voraussetzungen

gem install sinatra sinatra-contrib

Erstellen Sie eine Datei mit dem Namen delivery_receipt.rb und fügen Sie den folgenden Code hinzu:

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

Vollständige Quelle anzeigen

Schreiben Sie den Code

Fügen Sie Folgendes zu delivery_receipt.rb hinzu:

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

set :port, 3000

Vollständige Quelle anzeigen

Führen Sie Ihren Code aus

Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:

ruby delivery_receipt.rb

Konfigurieren Sie den Webhook-Endpunkt in Ihrem Vonage Dashboard

Damit Vonage weiß, wie Sie auf Ihren Webhook zugreifen können, müssen Sie ihn in Ihrem Vonage Account konfigurieren.

In den Codeschnipseln befindet sich der Webhook unter /webhooks/delivery-receipt. Wenn Sie Ngrok verwenden, müssen Sie den Webhook in Ihrem Vonage Dashboard API-Einstellungen Seite ist von der Form https://demo.ngrok.io/webhooks/delivery-receipt. Ersetzen Sie demo mit der von Ngrok bereitgestellten Subdomain und geben Sie Ihren Endpunkt in das Feld mit der Bezeichnung Webhook-URL für Lieferscheine:

Probieren Sie es aus

Eine Nachricht senden an eine Mobilfunknummer, und wenn das Netz dies unterstützt, erhalten Sie eine Empfangsbestätigung im folgenden Format:

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

HINWEIS: Nachdem Sie eine Nachricht gesendet haben, kann es zu einer Verzögerung kommen, bis Sie die Empfangsbestätigung erhalten.

Weitere Informationen