設定交易錄製政策

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

按照以下各節所述,在 API 產品組合中為每個 API 產品設定交易記錄政策。

簡介

制定交易記錄政策,讓營利機制擷取交易參數, 自訂屬性營利程序需要取得這項資訊才能執行營利處理 例如套用費率方案

舉例來說,如果您設定收益分潤費率方案 與您營利 API 產品有關的每筆交易所產生的收益 提供給發布要求的應用程式開發人員。收益分潤是以淨值或總值計算 交易價格 (由您指定),也就是交易總額或淨價的百分比 才算出收益分潤。因此,營利需求 瞭解交易的總價或淨價 (如適用)。以總價或淨價計算 和交易記錄政策中的設定。

如要設定價目表 也就是針對每筆交易向開發人員收費,您可以設定方案的費率 根據自訂屬性 (例如交易傳輸的位元組數) 為基礎 營利服務必須知道自訂屬性的定義和位置。您必須 在交易記錄政策中指定自訂屬性。

除了在交易記錄政策中指定交易屬性外,您還可以 指定交易成功條件,以判斷交易成功的時間點 ( 充電)。如需設定交易成功條件的範例,請參閱在交易記錄中設定交易成功條件的範例 政策。您也可以為 API 產品指定自訂屬性 (設定基本費率) 方案費用)。

設定交易記錄政策

按照下方說明前往「產品組合」頁面。

Edge

使用 Edge UI 新增 API 產品套裝組合時,您必須設定交易記錄政策 執行下列步驟:

  1. 在「交易記錄政策」部分中選取要設定的 API 產品 (如果產品套裝組合中有多個 API 產品)。
  2. 設定交易屬性
  3. 設定自訂屬性
  4. 連結資源與不重複的交易 ID
  5. 設定退款
  6. 針對 API 產品組合中定義的每個 API 產品,重複執行以上步驟。

傳統版 Edge (Private Cloud)

如要使用傳統版 Edge UI 設定交易記錄政策:

  1. 登入「http://ms-ip:9000」(ms-ip 為以下應用程式) Management Server 節點的 IP 位址或 DNS 名稱。
  2. 選取「發布」>「發布」產品。
  3. 在適用 API 的資料列中按一下「+ 交易記錄政策」。 產品。畫面上會顯示「New Transaction Recording Policy」視窗。
  4. 如要設定交易記錄政策,請按照下列步驟操作:
  5. 按一下 [儲存]

設定交易屬性

在「交易屬性」部分中,指定用來表示成功營利交易的條件。

  1. 在「交易成功條件」欄位中,根據狀態屬性值指定運算式 (如下所述) 用來判斷交易是否成功 (用於收費)。交易失敗 (也就是說,他們不符合運算式中的條件),但不會套用費率方案。例如:

    txProviderStatus == 'OK'

  2. Status 屬性包含 「交易成功條件」欄位。定義下列欄位以設定 Status 屬性:
    欄位 說明
    API 資源 API 產品中定義的 URI 模式,會用來識別營利交易。
    回應位置 已指定屬性的回應位置。有效值包括:流程變數、標頭、JSON 內文和 XML 內文。
    回應的值。如要指定多個值,請按一下「+ 新增流程變數」 (例如「+ 新增流程變數」)。
  3. 如要設定選用的交易屬性,請啟用「Use Optional Attributes」切換鈕,進行設定 下表中定義的任一交易屬性。
    屬性 說明
    毛價

    這項屬性僅適用於採用收益分潤模式的費率方案。 您必須為這些費率方案提供總價或淨價格。請確認 數值會以字串類型表示。交易的總金額。適用對象 收益分潤方案,你必須記錄「毛價」屬性或「淨價格」 屬性。下列何者為必填屬性,視收益分潤而定)。適用對象 舉例來說,您可以依據下列項目的總價設定收益分潤費率方案: 交易。在這種情況下,「總價」為必填欄位。

    淨價

    這項屬性僅適用於採用收益分潤模式的費率方案。 您必須為這些費率方案提供總價或淨價格。請確認 數值,以字串類型表示。交易的淨價。適用對象 收益分潤方案,你必須記錄「淨價格」欄位或「總價」 ] 欄位。以下哪個欄位為根據收益分潤而定的欄位。例如: 您可以根據交易淨價來設定收益分潤費率方案。 在這種情況下,「淨價」欄位為必填欄位。

    幣別

    如果費率方案採用收益分潤模式,就必須提供這項屬性。 交易適用的貨幣類型。

    錯誤代碼

    與交易相關的錯誤代碼。它能進一步提供 交易失敗相關資訊

    商品描述

    交易的說明。

    稅金

    這項屬性僅適用於收益分潤模式, 從 API 呼叫中擷取的稅額。務必以數值表示 做為字串類型交易的稅額。淨價加上稅金 = 總價。

舉例來說,設定下列值後,營利服務會從訊息回應中的訊息回應取得流程變數值 名為 response.reason.phrase 的變數。如果值沒有問題,且 營利限制檢查政策為 已附加至 API Proxy ProxyEndpoint 要求,營利則會計為交易。

欄位
交易成功條件 txProviderStatus == 'OK'
狀態:API 資源 **
狀態:回應位置 流程變數
狀態:流程變數 response.reason.phrase

設定自訂屬性

在「自訂屬性」部分中,找出要加到「自訂屬性」欄位的自訂屬性 交易記錄政策。舉例來說,如果您設定價目表方案,系統就會針對每項方案向開發人員收費 交易時,您可以根據自訂屬性 (例如項目數量) 設定方案費率 交易中傳輸的位元組數接著,您需要將該自訂屬性加入 交易記錄政策。

這些屬性都會儲存在交易記錄中,供您查詢。這些版本 。這樣一來,你就能在 也就是製定企劃書費率的依據)。

你可以在收益中加入交易記錄政策中定義的自訂屬性 摘要報表 包含自訂交易 屬性

如要設定自訂屬性,請啟用「使用自訂屬性」切換鈕,並定義 最多 10 個自訂屬性對於納入交易記錄政策中的各項自訂屬性, 您必須指定下列資訊

欄位 說明
自訂屬性名稱 輸入說明自訂屬性的名稱。如果費率方案是以自訂屬性為依據, 這個名稱會顯示在費率方案詳細資料中。 舉例來說,如果自訂屬性擷取時間長度,您就應該為屬性的時間長度命名。 自訂屬性的實際單位 (例如小時、分鐘或秒) 是在評分單位欄位中設定 如果建立自訂屬性費率方案 (請參閱使用自訂屬性詳細資料指定費率方案)。
API 資源 針對透過交易存取的 API 資源,選取一或多個 URI 後置字串 (也就是基本路徑後面的 URI 片段)。 可用的資源與交易屬性相同。
回應位置 在回應中選取屬性的指定位置。有效值包括:流程變數、標頭、JSON 內文和 XML 內文。
指定自訂屬性的值。您指定的每個值都對應一個欄位、參數 或在您指定的位置提供自訂屬性的內容元素。如要指定多個值,請按一下「+ 新增流程變數」 (例如「+ 新增流程變數」)。

舉例來說,如果您設定名為「內容長度」的自訂屬性,並選取「標頭」做為回應位置, 如果「HTTP Content-Length」欄位有提供 Content Length 值,請指定 Content-Length 做為值。

某些交易相當簡單,涉及對一項資源的 API 呼叫。不過, 交易可能更複雜舉例來說,假設某筆交易在購買應用程式內 手遊應用程式中,涉及多次資源呼叫:

  • 呼叫保留 API,確保預付方案使用者有足夠的額度可購買 產品及分配 (「保留」) 購買費用。
  • 呼叫 Charge API,從預付使用者帳戶扣除款項。

要處理整筆交易,營利需要連結第一項資源 ( 呼叫和回應) 與第二個資源 (對 以及透過 Charge API 付款)。計算方法是使用您在 連結資源與唯一交易 ID 部分。

如要設定自訂屬性,請啟用「使用專屬交易 ID」切換鈕和連結 交易量您需要為每筆交易指定資源、回應位置及屬性值 與另一個應用程式的對應值連結 交易

舉例來說,假設保留額 API 呼叫和收費 API 呼叫連結如下: 位於 Reserve API 的回應標頭中,名為 session_id 的欄位會對應至 Charge 中名為 reference_id 的回應標頭。在這個範例中,您可以將項目 ,如下所示:

資源 回應位置
reserve/{id}**

標頭

session_id
/charge/{id}**

標頭

reference_id

設定退款

在「退款」部分指定了 營利功能

舉例來說,假設使用者透過 或行動應用程式中使用營利 API交易是根據股份 收益方案。不過,假設使用者對產品不滿意,希望退貨,如果 產品退款時,系統會對您的 API 發出退款的呼叫,營利 進行必要的營利調整這項作業會根據您在 交易記錄政策的「退款」部分。

如要設定退款,請啟用「使用退款屬性」切換鈕,並定義退款詳細資料:

  1. 請定義下列欄位,定義退款條件:
    欄位 說明
    回應位置 退款交易的資源。如果 API 產品提供 多項資源,可以只選取執行退款的資源。
    退款成功標準 運算式依據的值 狀態屬性 (說明如下),用於判斷退款交易何時成功 (用於收費)。 用途)。退款失敗的交易 (也就是說,交易不符合 運算式),但費率方案不適用。例如:

    txProviderStatus == 'OK'

  2. 定義下列欄位以設定 Status 屬性:
    欄位 說明
    回應位置 已指定屬性的回應位置。有效值包括:流程變數、標頭、JSON 內文和 XML 內文。
    回應的值。如要指定多個值,請按一下「+ 新增流程變數」 (例如「+ 新增流程變數」)。
  3. 定義下列欄位,以設定「Parent ID」屬性:
    欄位 說明
    回應位置 已指定屬性的回應位置。有效值包括:流程變數、標頭、JSON 內文和 XML 內文。
    處理退款的交易 ID。舉例來說,如果使用者購買產品後申請退款, 父項交易 ID 是購買交易的 ID。如要指定多個值,請按一下「+ 新增流程變數」 (例如「+ 新增流程變數」)。
  4. 如要設定選填的退款屬性,請啟用「使用選用的退款屬性」切換鈕,進行設定 屬性選填的退款屬性與選填的交易屬性相同,如 設定交易屬性

使用 API 管理交易記錄政策

以下各節說明如何使用 API 管理交易記錄政策。

使用 API 建立交易記錄政策

您可以指定交易記錄政策做為 API 產品的屬性。如果 屬性可識別:

  • 交易記錄政策所依據的產品資源 URI 後置字串 。後置字串包含一個以大括號括住的模式變數,模式 都會由 API 服務在執行階段評估。例如以下 URI 後置字串 包含模式變數 {id}
    /reserve/{id}**
    

    在此情況下,API 服務會評估資源的 URI 後置字串。 /reserve,後面是任何開頭為 API 定義 ID 的子目錄 。

  • 附加在回應中的資源。API 產品可以有多個 資源和每項資源都能在回應中附加交易記錄政策 該資源
  • 能讓交易記錄政策擷取內容的擷取變數政策 您是否要擷取該交易參數的回應訊息。
,瞭解如何調查及移除這項存取權。

您可以發出 PUT 要求,將交易記錄政策屬性新增至 API 產品 Management API https://api.enterprise.apigee.com/v1/organizations/{org_name}/apiproducts/{apiproduct_Id} 而非營利 API

使用 API 指定交易成功條件

您可以指定交易成功條件,以判斷交易是否成功 (供充電使用)。交易失敗 (即符合條件) ),但不會套用至費率方案。設定範例 交易成功條件,請參閱 在交易記錄政策中設定交易成功條件的範例

您可以指定交易成功條件做為 API 產品的屬性。操作方法如下: 對 Management API 發出 PUT 要求 https://api.enterprise.apigee.com/v1/organizations/{org_name}/apiproducts/{apiproduct_Id} 而非營利 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 產品指定自訂屬性。適用對象 例如,如果您制定價目表方案,並向開發人員收取每筆交易的費用,您就必須 可根據自訂屬性 (例如傳輸的位元組數) 設定方案費率 實際交易方式建立費率方案時,您可以指定一或多項自訂屬性 請根據企劃書的費率來制定費率但適用費率方案中的任何特定產品只能 一個自訂屬性來做為方案費率的基礎。

您可以指定自訂屬性做為 API 產品的屬性。如要這麼做,請發出 PUT 要求 要求 Management API https://api.enterprise.apigee.com/v1/organizations/{org_name}/apiproducts/{apiproduct_Id} 而非營利 API

凡是您加到 API 產品的自訂屬性,都需要指定名稱和 屬性值。名稱格式必須為 MINT_CUSTOM_ATTRIBUTE_{num},其中 {num} 為整數。

例如,下列要求指定三個自訂屬性。

$ 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 Proxy 存取txProviderStatus 是營利用的內部變數 來判斷交易成功。

成功條件運算式 運算式有效嗎? 來自 API Proxy 的 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" false