Định cấu hình gói giá bằng các thuộc tính tuỳ chỉnh

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về Apigee X.
thông tin

Giới thiệu

Trong một số trường hợp, bạn có thể cần bộ đếm giao dịch dựa trên biến hoặc giá trị tuỳ chỉnh. Ví dụ: bạn có thể cần phải:

  • Tính phí cho nhà phát triển một số tiền biến đổi dựa trên giá trị được cung cấp trong thông báo của lệnh gọi API. Ví dụ: bạn có thể tính phí nhà phát triển ứng dụng dựa trên số byte được truyền trong yêu cầu API.
  • Gói nhiều lệnh gọi API thành một giao dịch.

Khi sử dụng gói giá có thuộc tính tuỳ chỉnh, bạn có thể xác định một giá trị trong thông báo của lệnh gọi API đóng vai trò là bộ đếm và dùng để tính số lượng giao dịch và phí.

Các gói giá sau đây có thuộc tính tuỳ chỉnh được hỗ trợ:

  • Bảng giá có thuộc tính tuỳ chỉnh
  • Thông báo có thể điều chỉnh bằng thuộc tính tuỳ chỉnh

Bạn có thể đặt tối đa 10 thuộc tính tuỳ chỉnh cho mỗi gói giá.

Tìm hiểu về cách tính toán thuộc tính tuỳ chỉnh

Cách giá trị thuộc tính tuỳ chỉnh được tính vào số giao dịch và khoản phí của gói cước phụ thuộc vào mô hình tính phí, như tóm tắt trong bảng sau.

Mô hình sạc Cách tính thuộc tính tuỳ chỉnh
Mức phí cố định và theo nhóm theo số lượng

custom attribute number * rate = charge to developer

Đối với Mức giá cố định, số thuộc tính tuỳ chỉnh sẽ trở thành số giao dịch được nhân với mức giá. Đối với phương thức Phân theo số lượng, số giao dịch trong một dải sẽ tăng lên theo số thuộc tính tuỳ chỉnh và nhà phát triển sẽ bị tính phí cho số giao dịch đó. Ví dụ: Nếu giá trị thuộc tính tuỳ chỉnh trong thông báo là 10, thì nhà phát triển sẽ bị tính phí cho 10 giao dịch và 10 giao dịch sẽ được thêm vào số lượng băng hiện tại. Nếu nhà phát triển chỉ còn 6 giao dịch trong băng thông hiện tại, thì 6 sẽ được nhân với mức phí cho băng thông đó. 4 giá trị còn lại sẽ chuyển sang dải tần tiếp theo và được nhân với tốc độ của dải tần đó.

Trong gói âm lượng theo dải, nếu dải âm lượng gần đây nhất có giới hạn (không phải là "không giới hạn") và một giao dịch vượt quá hạn mức đó, thì có 2 trường hợp sẽ xảy ra:

Bundle

Vì gói được tính phí theo nhóm chứ không phải theo giao dịch, nên hệ thống sẽ thực hiện phép tính sau:

custom attribute number = amount added to bundle count

Ví dụ: nếu số thuộc tính tuỳ chỉnh trong thông báo là 10, thì 10 sẽ được thêm vào số giao dịch được sử dụng trong gói. Nếu nhà phát triển chỉ còn 6 giao dịch trong gói hiện tại, thì gói đó sẽ được lấp đầy và số lượng gói tiếp theo sẽ tăng thêm 4. Mức giá của gói tiếp theo (nếu có) sẽ được tính.

Nếu gói cuối cùng có giới hạn (không phải "không giới hạn") và một giao dịch vượt quá giới hạn đó, thì hai điều sẽ xảy ra:

Thông báo có thể điều chỉnh

Đối với thông báo có thể điều chỉnh, hệ thống sẽ thực hiện phép tính sau:

custom attribute number = amount added to transaction count

Ví dụ: nếu số thuộc tính tuỳ chỉnh trong thông báo là 10, thì 10 sẽ được thêm vào tổng số giao dịch.

Nơi gói giá nhận được giá trị thuộc tính tuỳ chỉnh

Chính sách ghi lại giao dịch (trên gói sản phẩm API) cho biết hoạt động kiếm tiền cần tìm giá trị thuộc tính tuỳ chỉnh ở đâu trong thông báo. Bạn xác định thuộc tính tuỳ chỉnh trong mục Thuộc tính tuỳ chỉnh của chính sách ghi lại giao dịch cho gói sản phẩm API.

Sau đó, bạn có thể chọn thuộc tính tuỳ chỉnh đó trong gói giá sau khi tạo gói sản phẩm API chứa chính sách ghi lại giao dịch với thuộc tính tuỳ chỉnh được xác định.

Dưới đây là quy trình cấp cao:

  1. Xác định các thuộc tính tuỳ chỉnh khi thêm sản phẩm API.
  2. Tạo gói sản phẩm API chứa sản phẩm.
    Trong chính sách ghi lại giao dịch cho gói sản phẩm API, hãy thêm các thuộc tính tuỳ chỉnh sẽ được dùng để xác định các gói giá.
  3. Tạo gói giá thuộc loại thẻ giá hoặc thông báo có thể điều chỉnh cho gói sản phẩm API và chỉ định tham số phân loại tuỳ chỉnh.

Hình sau đây cho thấy mối quan hệ giữa thuộc tính tuỳ chỉnh được xác định trong chính sách ghi lại giao dịch và cấu hình gói bảng giá. Thông báo có thể điều chỉnh và có mối quan hệ với gói giá thuộc tính tuỳ chỉnh cũng tương tự, mặc dù không thể áp dụng giá trị dải số lượng âm lượng.

Cách tạo giá trị thuộc tính tuỳ chỉnh trong thông báo

Chính sách ghi lại giao dịch có thể tìm giá trị thuộc tính tuỳ chỉnh ở một số vị trí, chẳng hạn như tiêu đề phản hồi, nội dung phản hồi hoặc các biến luồng được xác định trước trong phản hồi. (Yêu cầu này không được hỗ trợ vì giao dịch chưa chính thức cho đến khi bạn nhận được phản hồi thành công.) Sau đây là ví dụ minh hoạ cách thêm tiêu đề phản hồi có giá trị số vào thông báo. Trong cả hai trường hợp, chúng ta sẽ sử dụng Chính sách chỉ định thông báo cùng với các biến.

Thêm kích thước tải trọng yêu cầu vào tiêu đề phản hồi

Trong mỗi yêu cầu gửi tin nhắn, có một biến client.received.content.length chứa số byte trong tải trọng yêu cầu. Bằng cách đính kèm chính sách Chỉ định thông báo vào phản hồi Điểm cuối proxy, chúng ta có thể tạo một tiêu đề phản hồi có tên là messageSize chứa giá trị độ dài:

<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Message-1">
    <DisplayName>Assign Message 1</DisplayName>
    <Set>
        <Headers>
          <Header name="messageSize">{client.received.content.length}</Header> 
        </Headers>  
    </Set>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
    <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

Thêm giá trị thuộc tính tuỳ chỉnh của ứng dụng vào tiêu đề

Tương tự như vậy, chúng ta có thể tạo một tiêu đề có giá trị của một thuộc tính tuỳ chỉnh trên một ứng dụng. Ví dụ: nếu bạn thêm một thuộc tính tuỳ chỉnh có tên là apprating trên mỗi ứng dụng của nhà phát triển như sau:

Khi sử dụng chính sách Xác minh khoá API (bắt buộc để kiếm tiền), giá trị này sẽ được lưu trữ trong một biến có tên là verifyapikey.{policy_name}.apprating. Bằng cách sử dụng chính sách Gán thông báo đính kèm vào phản hồi Điểm cuối proxy, bạn có thể tạo một tiêu đề có tên apprating chứa giá trị apprating của ứng dụng:

<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Message-1">
    <DisplayName>Assign Message 1</DisplayName>
    <Set>
        <Headers>
          <Header name="apprating">{verifyapikey.Verify-API-Key-1.apprating}</Header> 
        </Headers>  
    </Set>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
    <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

Thiết lập gói giá

Khác với cách thiết lập thuộc tính tuỳ chỉnh như mô tả ở trên, gói giá được thiết lập giống như cách bạn thường làm (đối với gói giá không có thuộc tính tuỳ chỉnh), nhưng phải tuân thủ các yêu cầu sau đây.

Định cấu hình gói bảng giá bằng thuộc tính tuỳ chỉnh thông qua giao diện người dùng

Định cấu hình các gói theo bảng giá bằng các thuộc tính tuỳ chỉnh thông qua Giao diện người dùng Edge hoặc Giao diện người dùng Edge cũ, như mô tả trong các phần sau.

Edge

Cách định cấu hình gói bảng giá có thuộc tính tuỳ chỉnh bằng giao diện người dùng Edge:

  1. Xác định các thuộc tính tuỳ chỉnh khi thêm sản phẩm API.
  2. Tạo gói sản phẩm API chứa sản phẩm. Xem phần Tạo gói sản phẩm API.
    Trong chính sách ghi lại giao dịch của gói sản phẩm API, hãy thêm các thuộc tính tuỳ chỉnh sẽ dùng để xác định gói giá. Để biết thông tin chi tiết, hãy xem nội dung giới thiệu trong chủ đề này cũng như Tạo chính sách ghi lại giao dịch.
  3. Tạo gói giá cho gói sản phẩm API và chỉ định thông số phân loại tuỳ chỉnh.

Để biết thêm thông tin, hãy xem bài viết Định cấu hình thông tin chi tiết về gói giá trên thẻ giá bằng giao diện người dùng.

Edge phiên bản cũ (Đám mây riêng)

Hãy làm theo các bước sau để tạo Bảng giá có kế hoạch Thuộc tính tuỳ chỉnh bằng Giao diện người dùng Edge cũ:

  1. Trong chính sách ghi lại giao dịch của một sản phẩm API, hãy thêm các thuộc tính tuỳ chỉnh sẽ được dùng để xác định gói giá. Để biết thông tin chi tiết, hãy xem phần giới thiệu trong chủ đề này, cũng như bài viết Tạo chính sách ghi lại giao dịch. Hãy làm như vậy cho từng sản phẩm API mà bạn muốn đưa vào gói API.
  2. Sau khi các sản phẩm API và chính sách ghi giao dịch được định cấu hình chính xác theo cách bạn muốn, hãy tạo một gói API chứa sản phẩm đó. Xem phần Tạo gói API.
  3. Tạo gói giá cho gói API, chọn loại gói giá là Thẻ giá có thuộc tính tuỳ chỉnh.
  4. Nhấp vào đường liên kết Bảng giá. Thao tác này sẽ mở ra cửa sổ Bảng giá.

  5. Chọn một thuộc tính tuỳ chỉnh trong trình đơn thả xuống Thuộc tính tuỳ chỉnh. Trình đơn này liệt kê các thuộc tính tuỳ chỉnh được tạo cho sản phẩm trong chính sách ghi lại giao dịch. Nhà phát triển sẽ bị tính phí dựa trên giá trị của thuộc tính tuỳ chỉnh đã chọn trong mỗi giao dịch.
    (Giá trị thuộc tính * tỷ lệ = khoản phí cho nhà phát triển)
  6. Bạn có thể thiết lập gói miễn phí như mô tả trong phần Chỉ định thông tin chi tiết về gói trong bảng giá.
  7. Thiết lập mô hình tính phí như mô tả trong phần Chỉ định thông tin chi tiết về gói giá. Tuy nhiên, xin lưu ý rằng đối với loại gói giá Thẻ giá có thuộc tính tuỳ chỉnh, mô hình tính phí sẽ dựa trên thuộc tính tuỳ chỉnh mà bạn chọn. Ví dụ: nếu bạn chọn Tỷ lệ cố định làm mô hình tính phí, thì nhà phát triển sẽ bị tính phí theo tỷ lệ cố định dựa trên thuộc tính tuỳ chỉnh, chẳng hạn như số byte được truyền trong mỗi giao dịch (không phải tỷ lệ cố định cho mỗi giao dịch). Xem phần Tính toán để biết thêm thông tin.
  8. Nhấp vào Lưu bản nháp.
    Chỉ phát hành kế hoạch khi bạn hoàn toàn chắc chắn rằng đó là kế hoạch cuối cùng. Hãy xem phần Xuất bản kế hoạch giá để biết thông tin về cách đặt Ngày xuất bản và xuất bản kế hoạch.

Để biết thêm thông tin, hãy xem bài viết Xác định thông tin chi tiết về gói giá phòng bằng giao diện người dùng.

Định cấu hình kế hoạch thông báo có thể điều chỉnh bằng các thuộc tính tuỳ chỉnh thông qua giao diện người dùng

Định cấu hình kế hoạch thông báo có thể điều chỉnh bằng các thuộc tính tuỳ chỉnh, như mô tả dưới đây.

Edge

Cách định cấu hình gói giá bằng các thuộc tính tuỳ chỉnh bằng giao diện người dùng Edge:

  1. Xác định các thuộc tính tuỳ chỉnh khi thêm sản phẩm API.
  2. Tạo gói sản phẩm API chứa sản phẩm. Xem phần Tạo gói sản phẩm API.
    Trong chính sách ghi lại giao dịch của gói sản phẩm API, hãy thêm các thuộc tính tuỳ chỉnh sẽ dùng để xác định gói giá. Để biết thông tin chi tiết, hãy xem nội dung giới thiệu trong chủ đề này cũng như Tạo chính sách ghi lại giao dịch.
  3. Tạo gói giá cho gói sản phẩm API và chỉ định thông số phân loại tuỳ chỉnh.

Để biết thêm thông tin, hãy xem phần Định cấu hình kế hoạch thông báo có thể điều chỉnh bằng giao diện người dùng.

Edge phiên bản cũ (Đám mây riêng)

Cách định cấu hình gói bảng giá có thuộc tính tuỳ chỉnh bằng giao diện người dùng Edge cũ:

  1. Trong chính sách ghi lại giao dịch của một sản phẩm API, hãy thêm các thuộc tính tuỳ chỉnh sẽ được dùng để xác định gói giá. Để biết thông tin chi tiết, hãy xem phần giới thiệu trong chủ đề này, cũng như bài viết Tạo chính sách ghi lại giao dịch. Hãy làm như vậy cho từng sản phẩm API mà bạn muốn đưa vào gói API.
  2. Sau khi bạn định cấu hình chính xác các sản phẩm API và chính sách ghi lại giao dịch theo cách bạn muốn, hãy tạo một gói API chứa sản phẩm đó. Xem phần Tạo gói API.
  3. Tạo gói giá cho gói API, chọn loại gói giá là Thông báo có thể điều chỉnh bằng thuộc tính tuỳ chỉnh.
  4. Nhấp vào đường liên kết Chi tiết. Thao tác này sẽ mở cửa sổ Thông báo có thể điều chỉnh.

  5. Chọn một thuộc tính tuỳ chỉnh trong trình đơn thả xuống Thuộc tính tuỳ chỉnh. Trình đơn này liệt kê các thuộc tính tuỳ chỉnh được tạo cho sản phẩm trong chính sách ghi lại giao dịch. Tổng số giao dịch của nhà phát triển được tính dựa trên giá trị của thuộc tính tuỳ chỉnh đã chọn trong mỗi giao dịch.
  6. Đặt Aggregation Basis (Cơ sở tổng hợp) thành khoảng thời gian mà số lượng giao dịch được tổng hợp. Chọn một số từ 1 đến 24 tháng. Giá trị này mặc định là 1 tháng.
  7. Nhấp vào Áp dụng và đóng.
  8. Nhấp vào Lưu bản nháp.
    Chỉ xuất bản kế hoạch khi bạn chắc chắn đó là kế hoạch cuối cùng. Hãy xem phần Xuất bản kế hoạch giá để biết thông tin về cách đặt Ngày xuất bản và xuất bản kế hoạch.

Để biết thêm thông tin, hãy xem phần Xác định thông tin chi tiết về kế hoạch thông báo có thể điều chỉnh bằng giao diện người dùng.

Chỉ định thông tin chi tiết cho gói giá có thuộc tính tuỳ chỉnh bằng API

Thực hiện các bước tiên quyết sau:

  1. Trong chính sách ghi lại giao dịch của một sản phẩm API, hãy thêm các thuộc tính tuỳ chỉnh sẽ dùng để xác định gói giá. Để biết thông tin chi tiết, hãy xem nội dung giới thiệu trong chủ đề này cũng như Tạo chính sách ghi lại giao dịch. Thực hiện việc này cho từng sản phẩm API bạn muốn đưa vào gói API.
  2. Sau khi các sản phẩm API và chính sách ghi giao dịch được định cấu hình chính xác theo cách bạn muốn, hãy tạo một gói API chứa sản phẩm đó. Xem phần Tạo gói API.

Tiếp theo, bạn sử dụng API để tạo gói giá.

Bạn chỉ định thông tin chi tiết cho một gói giá bằng các thuộc tính tuỳ chỉnh khi tạo gói giá. Bạn chỉ định thông tin chi tiết trong thuộc tính ratePlanDetails trong nội dung yêu cầu bằng lệnh gọi đến /organizations/{org_name}/monetization-packages/{package_id}/rate-plans. Trong thông tin chi tiết, bạn chỉ định giá trị thông số phân loại xác định tên của thuộc tính tuỳ chỉnh. Bạn cũng có thể chỉ định một giá trị thông số phân loại tổng hợp thuộc tính tuỳ chỉnh trong một khoảng thời gian chỉ định.

Hãy xem phần Cài đặt cấu hình chi tiết về gói giá để biết danh sách đầy đủ các tuỳ chọn chi tiết về gói giá.

Ví dụ: đoạn mã sau đây sẽ tạo một Bảng giá có gói Thuộc tính tuỳ chỉnh dựa trên một thuộc tính tuỳ chỉnh có tên là messageSize (xem các mục được in đậm).

$ curl -H "Content-Type:application/json" -X POST -d \
'{
   "name": "Custom attribute-based rate card plan",
   "developer":null,
   "developerCategory":null,
   "currency": {
     "id" : "usd"
     },     
   "description": "Custom attribute-based rate card plan",
   "displayName" : "Custom attribute-based rate card plan",
   "frequencyDuration": "1",
   "frequencyDurationType": "MONTH",
   "earlyTerminationFee": "10",
   "monetizationPackage": {
      "id": "location"
        },
      "organization": {
       "id": "{org_name}"
      },    
   "paymentDueDays": "30",
   "prorate": "false",
   "published": "false",     
   "ratePlanDetails":[
      {
        "currency":{
           "id":"usd"
        },
      "duration":1,
      "durationType":"MONTH",
      "meteringType":"VOLUME",
      "paymentDueDays":"30",
      "ratingParameter":"messageSize",
      "ratingParameterUnit":"MB",
      "organization":{
         "id":"{org_name}"
      },
      "ratePlanRates":[
         {
           "rate":0.15,
           "startUnit":0,
           "type":"RATECARD",
           "endUnit":1000
         },
         {
           "rate":0.1,
           "startUnit":1000,
           "type":"RATECARD",
           "endUnit":null
         }
      ],
      "freemiumUnit":0,
      "freemiumDuration":0,
      "freemiumDurationType":"MONTH",
      "type":"RATECARD",
      "customPaymentTerm":false
      }
    ],
    "freemiumUnit":0,
    "freemiumDuration":0,
    "freemiumDurationType":"MONTH",
    "contractDuration":"1",
    "contractDurationType":"YEAR", 
    "recurringStartUnit": 1,
    "recurringType": "CALENDAR",
    "recurringFee": "10",
    "setUpFee": "10",
    "startDate": "2013-09-15 00:00:00",
    "type": "STANDARD"
}' \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages/location/rate-plans" \
-u email:password

Đoạn mã sau đây sẽ tạo một Thông báo có thể điều chỉnh bằng gói giá Thuộc tính tuỳ chỉnh dựa trên một thuộc tính tuỳ chỉnh có tên là messageSize (xem mục in đậm).

$ curl -H "Content-Type:application/json" -X POST -d \
'{
     "name": "AdjustableNotification",
     "displayName": "Custom attribute-based adjustable notification plan",
     "description": "Custom attribute-based adjustable notification plan",
     "published": "true",  
     "organization": {
      "id": "myorg"
     },
     "startDate": "2016-04-15 00:00:00",
     "type": "STANDARD",
     "monetizationPackage": {
        "id": "p1",
        "name": "test"
     },
     "currency": {
        "id" : "usd",
        "name" : "USD"
     },
     "ratePlanDetails": [
        {
           "type": "USAGE_TARGET",
           "meteringType": "DEV_SPECIFIC",
           "duration": 1,
           "durationType": "MONTH",
           "ratingParameter": "messageSize",
           "ratingParameterUnit": "MB",
           "organization": {
             "id": "myorg"
           },
           "currency": {
             "id": "usd",
             "name": "USD"
           }
        }
     ]
}' \
"https://api.enterprise.apigee.com/v1/mint/organizations/myorg/monetization-packages/p1/rate-plans"  \
-u email:password