領収書

Vonage SMS APIを使用して送信したメッセージが顧客に届いたかどうかを確認するには、以下のリクエストを行ってください。 納品書 キャリアから

注: すべてのネットワークや国が配送受領書をサポートしているわけではありません。詳しくはナレッジベースをご覧ください。 を受けるかもしれない。 ネットワークが領収書をサポートしていない場合。領収書の詳細については ドキュメンテーション.

領収書にアクセスするには、以下の手順が必要です:

注: メッセージを送信した後、配信レシートを受け取るまでに時間がかかる場合があります。

前提条件

build.gradle に以下を追加する:

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

コードを書く

ReceiveSmsDlr ファイルのmain メソッドに以下を追加する:

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)

全文を見る

コードを実行する

Gradle用のアプリケーション プラグインを使うことで、アプリケーションの実行を簡単にすることができます。build.gradle を以下のように更新する:

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

以下のgradle コマンドを実行し、com.vonage.quickstart.kt.sms をReceiveSmsDlr を含むパッケージに置き換えてアプリケーションを実行する:

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

前提条件

build.gradle に以下を追加する:

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

コードを書く

ReceiveDlr ファイルのmain メソッドに以下を追加する:

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

全文を見る

コードを実行する

Gradle用のアプリケーション プラグインを使うことで、アプリケーションの実行を簡単にすることができます。build.gradle を以下のように更新する:

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

以下のgradle コマンドを実行し、com.vonage.quickstart.sms をReceiveDlr を含むパッケージに置き換えてアプリケーションを実行する:

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

前提条件

Install-Package Vonage

SmsController.cs という名前のファイルを作成し、以下のコードを追加する:

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

全文を見る

コードを書く

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

全文を見る

前提条件

composer require slim/slim:^3.8 vonage/client

index.php という名前のファイルを作成し、以下のコードを追加する:

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

全文を見る

index.php に以下を追加する:

$app = new \Slim\App;

全文を見る

コードを書く

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

全文を見る

コードを実行する

このファイルをあなたのマシンに保存し、実行する:

php -S localhost:3000 -t .

前提条件

pip install fastapi[standard]

コードを書く

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)

全文を見る

コードを実行する

このファイルをあなたのマシンに保存し、実行する:

fastapi dev sms/delivery-receipts.py

前提条件

gem install sinatra sinatra-contrib

delivery_receipt.rb という名前のファイルを作成し、以下のコードを追加する:

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

全文を見る

コードを書く

delivery_receipt.rb に以下を追加する:

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

set :port, 3000

全文を見る

コードを実行する

このファイルをあなたのマシンに保存し、実行する:

ruby delivery_receipt.rb

Vonage DashboardでWebhookエンドポイントを設定します。

VonageがWebhookにアクセスする方法を知るには、Vonageアカウントで設定する必要があります。

コード・スニペットでは、ウェブフックは次の場所にあります。 /webhooks/delivery-receipt.Ngrok を使用している場合、Webhook を設定する必要があります。 Vonage Dashboard API 設定ページ という形式である。 https://demo.ngrok.io/webhooks/delivery-receipt.交換 demo というフィールドにエンドポイントを入力します。 配信レシートのWebhook URL:

試してみる

メッセージを送る を携帯電話番号に送信すると、ネットワークがサポートしている場合は、以下の形式で配信レシートを受け取ることができます:

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

注: メッセージを送信した後、配信レシートを受け取るまでに時間がかかる場合があります。

詳細情報