トランザクション記録ポリシーを構成する

<ph type="x-smartling-placeholder"></ph> 現在、Apigee Edge のドキュメントが表示されています。
Apigee X のドキュメント
詳細

以下のセクションで説明するように、API プロダクト バンドル内の各 API プロダクトにトランザクション記録ポリシーを構成します。

はじめに

トランザクション記録ポリシー: 収益化でトランザクション パラメータを取得し、 カスタム属性を作成します。収益化では、収益化の処理を行う際にこの情報が必要です。 料金プランの適用などを行います

たとえば、収益分配率料金プランを設定した場合、 収益化された API プロダクトに関連する各トランザクションから得られた収益のうち、共有される収益の割合 リクエストを発行したアプリのデベロッパーと 確認する必要があります収益分配率は、純額または総額で 取引の価格、つまり総額または正味価格の割合 各取引の収益分配率が決まりますそのため 収益化には トランザクションの総額または正味価格を知ることができます(該当する場合)。総額または正味価格を取得する トランザクション記録ポリシーで行った設定から。

レート表を設定する場合 取引ごとにデベロッパーに請求するプランでは、 トランザクションで送信されたバイト数などのカスタム属性に基づいてデータが集計されます。 収益化では、カスタム属性とそのカスタム属性の場所を認識する必要があります。そのためには、 Transaction Recording ポリシーでカスタム属性を指定します。

Transaction Recording ポリシーで、トランザクション属性を指定するだけでなく、 トランザクションの成功基準を指定し、トランザクションが 。トランザクションの成功基準の設定例については、トランザクション記録でのトランザクション成功基準の設定例をご覧ください。 に関するポリシーに準拠する必要があります。API プロダクト(基本料金に基づく)のカスタム属性を指定することもできます。 。

トランザクション記録ポリシーの構成

以下の手順に沿って [Product Bundles] ページにアクセスします。

Edge

Edge UI を使用して API プロダクト バンドルを追加する場合は、トランザクション記録ポリシーを構成する必要があります。 次の操作を行います

  1. [Transaction Recording Policy] セクションで、構成する API プロダクトを選択します(プロダクト バンドルに複数の API プロダクトがある場合)。
  2. トランザクション属性を構成する
  3. カスタム属性を構成する
  4. リソースを一意の取引 ID にリンクします。
  5. 払い戻しの設定
  6. API プロダクト バンドルで定義された API プロダクトごとにこの手順を繰り返します。

Classic Edge(プライベート クラウド)

Classic Edge UI を使用してトランザクション記録ポリシーを構成するには:

  1. http://ms-ip:9000ms-ip の部分)にログインします。 Management Server ノードの IP アドレスまたは DNS 名。
  2. [公開 >[プロダクト] をクリックします。
  3. 該当する API の行で [+ Transaction Recording Policy] をクリックします。 説明します。[New Transaction Recording Policy] ウィンドウが表示されます。
  4. 次の手順で、Transaction Recording ポリシーを構成します。 <ph type="x-smartling-placeholder">
  5. [保存] をクリックします。

トランザクション属性の構成

[Transaction Attributes] セクションで、収益化トランザクションの成功を示す基準を指定します。

  1. [Transaction Success Criteria](トランザクションの成功基準)フィールドで、Status 属性の値に基づく式を指定します。 (次に説明する)を使用してトランザクションが成功したかどうかを判別します(請求用)。失敗した取引 (つまり、式の基準を満たさない)は記録されますが、料金プランは適用されません。次に例を示します。

    txProviderStatus == 'OK'

  2. Status 属性には、Terraform で構成された式で使用される値が含まれます。 トランザクションの成功基準項目。次のフィールドを定義して、Status 属性を構成します。
    フィールド 説明
    API リソース API プロダクトで定義されている URI パターン。収益化対象のトランザクションの識別に使用されます。
    回答の場所 属性が指定されているレスポンスの場所。有効な値は、フロー変数、ヘッダー、JSON 本文、XML 本文です。
    レスポンスの値。複数の値を指定するには、[+ x を追加] をクリックします(例: + フロー変数を追加)。
  3. オプションのトランザクション属性を構成するには、[Use Optional Attributes] 切り替えを有効にして構成します。 次の表に定義されているトランザクション属性のいずれか。
    属性 説明
    総額

    この属性は、収益分配モデルを使用する料金プランにのみ適用されます。 これらの料金プランでは、総額または正味価格のいずれかが必須です。必ず、 数値は文字列型として表現されます。トランザクションの合計料金。対象 収益分配プランを使用する場合は、総価格属性または正味価格のいずれかを記録する必要があります。 属性です。必要な属性は、収益分配率によって異なります。対象 たとえば ある商品の合計金額に基づく収益分配の 料金プランを設定できます あります。その場合、[グロス価格] フィールドは必須です。

    平均費用

    この属性は、収益分配モデルを使用する料金プランにのみ適用されます。 これらの料金プランでは、総額または正味価格のいずれかが必須です。必ず、 数値は文字列型として表現されます。トランザクションの正味料金。対象 収益分配プランを利用する場合は、[正味価格] フィールドまたは [総価格] のいずれかを記録する必要があります。 表示されます。必須のフィールドは、収益分配率によって異なります。たとえば トランザクションの正味価格に基づいて収益分配料金プランを設定できます。 その場合は、[ネット価格] フィールドが必要です。

    通貨

    この属性は、収益分配モデルを使用する料金プランに必要です。 トランザクションに適用される通貨の種類。

    エラーコード

    トランザクションに関連付けられたエラーコード。さらに、 失敗したトランザクションに関する情報です。

    アイテムの説明

    取引の説明。

    税金

    この属性は、収益分配モデルにのみ関連し、 税額は API 呼び出しで取得されます。数値が表現されていることを確認する String 型として渡されます。購入に対する税額。正味価格と税金 = 総額。

たとえば、次の値を設定すると、Monetization はメッセージ レスポンスからフロー変数の値を取得します。 response.reason.phrase という変数を使用します。値が OK で、かつ Monetization Limits Check ポリシー API プロキシ ProxyEndpoint リクエストにアタッチされている場合、Monetization ではこれをトランザクションとしてカウントします。

フィールド
トランザクションの成功基準 txProviderStatus == 'OK'
ステータス: API リソース **
ステータス: 回答のロケーション フロー変数
ステータス: フロー変数 response.reason.phrase

カスタム属性の構成

[Custom Attributes] で、カスタム属性に含めるカスタム属性を指定します。 トランザクション記録ポリシーが適用されます。たとえば、レート表プランを設定し、各プランごとにデベロッパーに請求する トランザクションの件数などのカスタム属性に基づいて、 トランザクションで送信されたバイト数。次に、そのカスタム属性を トランザクション記録ポリシーが適用されます。

これらの各属性がトランザクション ログに保存され、クエリが可能になります。また、 料金プランの作成時に表示されます(これにより、1 つ以上の属性を 。

トランザクション記録ポリシーで定義されたカスタム属性を収益に含めることができる 概要レポートについては、このモジュールの カスタム トランザクションを含む 収益概要レポートの属性をご覧ください。

カスタム属性を構成するには、[Use Custom Attributes] 切り替えボタンをオンにします。 最大 10 個のカスタム属性。Transaction Recording ポリシーに含めるカスタム属性ごとに、 次の情報を指定する必要があります。

フィールド 説明
カスタム属性名 カスタム属性を説明する名前を入力します。料金プランがカスタム属性に基づく場合、 この名前は、料金プランの詳細でユーザーに表示されます。 たとえば、カスタム属性で期間を取得する場合は、属性に期間の名前を指定する必要があります。 カスタム属性の実際の単位(時間、分、秒など)は、評価単位のフィールドで設定します カスタム属性料金プランを作成する場合 (カスタム属性の詳細を使用して料金プランを指定するをご覧ください)。
API リソース トランザクションでアクセスされる API リソースの URI サフィックス(ベースパスに続く URI フラグメント)を 1 つ以上選択します。 使用可能なリソースは、トランザクション属性の場合と同じです。
回答の場所 属性が指定されているレスポンス内の場所を選択します。有効な値は、フロー変数、ヘッダー、JSON 本文、XML 本文です。
カスタム属性の値を指定します。指定する各値は、対応するフィールド、パラメータ、 または content 要素を使用して、指定した場所にカスタム属性を提供します。複数の値を指定するには、[+ x を追加] をクリックします(例: + フロー変数を追加)。

たとえば、「Content Length」という名前のカスタム属性を設定し、レスポンスの場所として「Header」を選択した場合、 Content-Length の値が HTTP Content-Length フィールドにある場合は、値として Content-Length を指定します。

一部のトランザクションは単純なもので、1 つのリソースに対する API 呼び出しが含まれます。ただし、 トランザクションがより複雑になる場合がありますたとえば、アプリ内購入を行うトランザクションについて考えてみましょう。 プロダクトに次のような複数のリソース呼び出しが関係しています。

  • 前払いユーザーが商品の購入に十分なクレジットを持っていることを確認する予約 API の呼び出し。 購入の資金を割り当てる(「予約」)します。
  • 前払いユーザーのアカウントから資金を差し引く API の呼び出し。

トランザクション全体を処理するには、収益化で最初のリソース( 呼び出しと予約 API からのレスポンス)を 2 つ目のリソース( 。これを行うためには、 リソースを一意のトランザクション ID にリンクする

カスタム属性を設定するには、[Use Unique Transaction IDs](一意のトランザクション ID を使用する)を有効にしてリンクします。 表示されます。トランザクションごとに、リソース、レスポンスの場所、トランザクションごとに 対応する値に関連付けて、 あります。

たとえば、予約 API 呼び出しと課金 API 呼び出しが次のようにリンクされているとします。 Reserve API のレスポンス ヘッダーにある session_id という名前のフィールド 課金 API からの reference_id という名前のレスポンス ヘッダー。この場合、エントリを設定して、 ] セクションで、次のように [一意のトランザクション ID を持つリソースをリンクする] を指定します。

リソース レスポンスのロケーション
reserve/{id}**

ヘッダー

session_id
/charge/{id}**

ヘッダー

reference_id

払い戻しの設定

[Refunds] セクションで、次の属性を指定します。 払い戻しの処理に使用する収益化の方法です。

たとえば、ユーザーが 収益化された API を使用する モバイルアプリを作成できますトランザクションは、共有された 収益プラン。しかし、お客様が商品に満足しておらず、返品を希望しているとします。もし 商品の払い戻しを行う API の呼び出しを使用して払い戻しが行われる場合、収益化は 必要な収益の調整額が表示されます。これは、 取引記録ポリシーの払い戻しセクション。

払い戻しを構成するには、[Use Refund Attributes] 切り替えボタンを有効にし、払い戻しの詳細を定義します。

  1. 次のフィールドを定義して払い戻し基準を定義します。
    フィールド 説明
    回答の場所 払い戻し処理のリソース。API プロダクトが 選択できるのは、払い戻しを実行するリソースのみです。
    払い戻しの成功基準 次の値に基づく式: Status 属性(次に説明)を使用して、払い戻し処理が正常に完了したかどうかを判断します(請求の場合)。 あります。処理されなかった(つまり、 式)は記録されますが、料金プランは適用されません。次に例を示します。

    txProviderStatus == 'OK'

  2. 次のフィールドを定義して、Status 属性を構成します。
    フィールド 説明
    回答の場所 属性が指定されているレスポンスの場所。有効な値は、フロー変数、ヘッダー、JSON 本文、XML 本文です。
    レスポンスの値。複数の値を指定するには、[+ x を追加] をクリックします(例: + フロー変数を追加)。
  3. 次のフィールドを定義して、[Parent ID] 属性を構成します。
    フィールド 説明
    回答の場所 属性が指定されているレスポンスの場所。有効な値は、フロー変数、ヘッダー、JSON 本文、XML 本文です。
    払い戻しが処理されるトランザクションの ID。たとえば、ユーザーが商品を購入した後で払い戻しをリクエストした場合、 親取引 ID は、購入取引の ID です。複数の値を指定するには、[+ x を追加] をクリックします(例: + フロー変数を追加)。
  4. オプションの払い戻し属性を構成するには、[Use Optional Refund Attributes] 切り替えを有効にして構成します。 提供します。省略可能な refund 属性は、 トランザクション属性の構成

API を使用したトランザクション記録ポリシーの管理

以降のセクションでは、API を使用してトランザクション記録ポリシーを管理する方法について説明します。

API を使用したトランザクション記録ポリシーの作成

トランザクション記録ポリシーは、API プロダクトの属性として指定します。「 属性は以下を識別します。

  • トランザクション記録ポリシーが適用される商品リソースの URI サフィックス あります。接尾辞には、中かっこで囲まれたパターン変数が含まれます。パターン 変数が実行時に API サービスによって評価されます。たとえば、次の URI サフィックスは、 パターン変数 {id} が含まれている。
    /reserve/{id}**
    

    この場合、API Services はリソースの URI サフィックスを次のように評価します。 /reserve の後に、API で定義された ID で始まるサブディレクトリ 接続します。

  • 接続先のレスポンス内のリソース。1 つの API プロダクトは、 各リソースには、トランザクション記録ポリシーを送信元のレスポンスにアタッチできます。 表示されます。
  • トランザクション記録ポリシーによるコンテンツの抽出を可能にする抽出変数ポリシー レスポンス メッセージから取得するトランザクション パラメータを指定します。
で確認できます。

API プロダクトにトランザクション記録ポリシー属性を追加するには、PUT リクエストを発行します。 管理 API に送信し、 https://api.enterprise.apigee.com/v1/organizations/{org_name}/apiproducts/{apiproduct_Id} (Monetization API へのものではなく)

API を使用したトランザクションの成功基準の指定

トランザクションが成功したかどうかを判断するためのトランザクション成功基準を指定できます (充電用)。失敗したトランザクション(つまり、条件を満たしているトランザクション) は記録されますが、料金プランは適用されません。たとえば、 取引成功基準については、以下をご覧ください。 トランザクション記録ポリシーでのトランザクション成功基準の設定例

トランザクションの成功基準を API プロダクトの属性として指定します。手順 PUT リクエストを発行し、 https://api.enterprise.apigee.com/v1/organizations/{org_name}/apiproducts/{apiproduct_Id} (Monetization API へのものではありません)。

たとえば、次のリクエストでは、 txProviderStatussuccess(トランザクションの成功基準に関連する ハイライト表示されます)。

$ curl -H "Content-Type: application/json" -X PUT -d \ 
'{
        "apiResources": [
        "/reserve/{id}**"       
        ],
        "approvalType": "auto",
        "attributes": [                         
        {
                "name": "MINT_TRANSACTION_SUCCESS_CRITERIA",
                "value": "txProviderStatus == 'OK'"
        }
        ],
        "description": "Payment",
        "displayName": "Payment",
        "environments": [
        "dev"
        ],
        "name": "payment",
        "proxies": [],
        "scopes": [
        ""
        ]
}' \
"https://api.enterprise.apigee.com/v1/organizations/{org_name}/apiproducts/payment" \
-u email:password

API を使用したカスタム属性の指定

基本料金プランで課金される API プロダクトのカスタム属性を指定できます。対象 たとえば、取引ごとにデベロッパーに請求するレート表プランを設定すると、 送信されたバイト数などのカスタム属性に基づいてプランのレートを設定できます あります。料金プランを作成するときに、1 つ以上のカスタム属性を指定できます。 これに基づいてプランの料金を設定しますただし、料金プランの特定のプロダクトに対して プランのレートの基になる 1 つのカスタム属性。

カスタム属性は、API プロダクトの属性として指定します。そのために PUT を発行し、 Management API へのリクエストです。 https://api.enterprise.apigee.com/v1/organizations/{org_name}/apiproducts/{apiproduct_Id} (Monetization API へのものではありません)。

API プロダクトに追加するカスタム属性ごとに、名前と属性を指定する必要があります。 属性値で識別されます。名前は MINT_CUSTOM_ATTRIBUTE_{num} の形式にする必要があります。ここで、 {num} は整数です。

たとえば、次のリクエストでは 3 つのカスタム属性が指定されています。

$ curl -H "Content-Type: application/json" -X PUT -d \
'{
        "apiResources": [
        "/reserve/{id}**",
        "/charge/{id}**"
        ],
        "approvalType": "auto",
        "attributes": [
        {
                "name": "MINT_CUSTOM_ATTRIBUTE_1",
                "value": "test1"
        },
        {
                "name": "MINT_CUSTOM_ATTRIBUTE_2",
                "value": "test2"
        }
 
        ],
        "name": "payment",
        "proxies": [],
        "scopes": [
                ""
        ]
}' \
"https://api.enterprise.apigee.com/v1/organizations/{org_name}/apiproducts/payment" \
-u email:password

トランザクションでトランザクションの成功基準を設定する例 録音ポリシー

次の表に、以下の項目に基づいた、成功したトランザクションと失敗したトランザクションの例を示します。 トランザクションの成功基準式と返される txProviderStatus 値 API プロキシによって 暗号化されますtxProviderStatus は、収益化で使用される内部変数です。 トランザクションの成功を判定します

<ph type="x-smartling-placeholder">
成功基準の式 有効な式 API プロキシの txProviderStatus 値 評価結果
null true "200" false
"" false "200" false
" " false "200" false
"sdfsdfsdf" false "200" false
"txProviderStatus =='100'" true "200" false
"txProviderStatus =='200'" true "200" true
"true" true "200" true
"txProviderStatus=='OK' OR
txProviderStatus=='Not Found' OR
txProviderStatus=='Bad Request'"
true "OK" true
"txProviderStatus matches '(OK)|(Not Found)|(Bad Request)'" true "OK" true
"txProviderStatus matches '(OK)|(Not Found)|(Bad Request)'" true "Not Found" true
"txProviderStatus matches '(OK)|(Not Found)|(Bad Request)'" true "Bad Request" true
"(txProviderStatus?:'') matches '(?i)(OK)|(Not Found)|(Bad Request)'" true "Bad Request" true
"(txProviderStatus?:'') matches '(?i)(OK)|(Not Found)|(Bad Request)'" true null false
"txProviderStatus matches '(?i)(OK)|(Not Found)|(Bad Request)'" true "bad request" true
"txProviderStatus matches '(?i)(OK)|(Not Found)|(Bad Request)'" true "Redirect" false
"txProviderStatus matches '(?i)(OK)|(Not Found)|(Bad Request)'" true "heeeelllooo" false
"txProviderStatus matches '(?i)(OK)|(Not Found)|(Bad Request)'" true null false
"txProviderStatus == 100" true "200" ×