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:
- Erstellen eines Webhook-Endpunkts anhand eines der folgenden Code-Beispiele
- Konfigurieren Sie den Webhook-Endpunkt in Ihrem Vonage Dashboard
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)Führen Sie Ihren Code aus
Wir können das Applikation 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:
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 "";
});Führen Sie Ihren Code aus
Wir können das Applikation 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:
Voraussetzungen
Install-Package VonageErstellen Sie eine Datei mit dem Namen SmsController.cs und fügen Sie den folgenden Code hinzu:
{
[HttpGet("webhooks/inbound-sms")] 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);Voraussetzungen
composer require slim/slim:^3.8 vonage/clientErstellen 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;Fügen Sie Folgendes zu index.php hinzu:
$app = new \Slim\App;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();Führen Sie Ihren Code aus
Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:
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)Führen Sie Ihren Code aus
Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:
Voraussetzungen
gem install sinatra sinatra-contribErstellen Sie eine Datei mit dem Namen delivery_receipt.rb und fügen Sie den folgenden Code hinzu:
Führen Sie Ihren Code aus
Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:
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.