Đị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 giá trị 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 có thể thay đổ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ụ: có thể bạn muốn tính phí các nhà phát triển ứng dụng dựa trên số byte được truyền trong yêu cầu API.
  • Nhóm nhiều lệnh gọi API thành một giao dịch duy nhất.

Khi sử dụng các 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à khoản phí.

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

  • Thẻ 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 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ố lượng và khoản phí giao dịch gói giá còn tuỳ thuộc vào mô hình tính phí, như tóm tắt trong bảng sau.

Kiểu sạc Tính toán thuộc tính tùy chỉnh
Mức phí cố định và Băng tần khối lượng

custom attribute number * rate = charge to developer

Đối với Mức phí cố định, số thuộc tính tuỳ chỉnh trở thành số lượng giao dịch được nhân với giá. Đối với Phân khúc số lượng lớn, số lượng giao dịch trong một băng tần 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ố lượng 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à thêm 10 giao dịch vào số lượng giao dịch hiện tại. Nếu nhà phát triển chỉ còn 6 giao dịch trong dải tần hiện tại, thì 6 sẽ được nhân với tỷ lệ của dải đó. 4 dữ liệu còn lại sẽ thuộc nhóm tiếp theo và được nhân với tỷ lệ của nhóm đó.

Trong gói Theo dải số lượng, nếu dải số lượng gần 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á giới hạn đó, thì có hai trường hợp sẽ xảy ra:

Bundle

Vì các gói được tính phí theo nhóm chứ không phải theo giao dịch, nên phép tính sau đây sẽ xảy ra:

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ì hệ thống sẽ cộng thêm 10 vào số lượng giao dịch được sử dụng trong gói. Nếu nhà phát triển chỉ còn lại 6 giao dịch trong gói hiện tại, thì gói đó sẽ được thực hiện và số lượng gói tiếp theo sẽ tăng thêm 4. Mức giá cho gói tiếp theo (nếu có) sẽ được tính.

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

Điều chỉnh thông báo

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

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ì cộng thêm 10 vào tổng số lượt giao dịch.

Vị trí gói giá lấy 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 hoạt động kiếm tiền biết nê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 phần 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 bằng thuộc tính tuỳ chỉnh đã xác định.

Sau đâ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 gói giá.
  3. Tạo kế hoạch giá có bảng giá loại hoặc thông báo có thể điều chỉnh cho gói sản phẩm API và chỉ định thông số xếp hạng 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 giá. Thông báo có thể điều chỉnh với mối quan hệ tương tự với gói giá thuộc tính tuỳ chỉnh, mặc dù giá trị theo băng tần số lượng không áp dụ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ó sẵn vì giao dịch không phải là giao dịch 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 một tiêu đề phản hồi kèm theo giá trị số vào thông báo. Trong cả hai trường hợp, chúng tôi 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 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 tin nhắn vào phản hồi của Đ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 tiêu đề bằng 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 đưa thuộc tính tuỳ chỉnh có tên là apprating vào 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 được lưu trữ trong một biến tên là verifyapikey.{policy_name}.apprating. Khi sử dụng chính sách Chỉ định tin nhắn đính kèm với phản hồi của Điểm cuối proxy, bạn có thể tạo một tiêu đề có tên là 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á

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

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

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

Edge

Cách định cấu hình gói giá có 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 nội dung Tạo gói sản phẩm API.
    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ẽ 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ư Tạo chính sách ghi lại giao dịch.
  3. Tạo kế hoạch giá cho gói sản phẩm API và chỉ định thông số xếp hạng tuỳ chỉnh.

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

Phiên bản cũ (Đám mây riêng tư)

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

  1. Trong chính sách ghi lại giao dịch của 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ư phần Tạo chính sách ghi lại giao dịch. Hãy làm việc nà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 nội dung Tạo gói API.
  3. Tạo một gói giá cho gói API, chọn loại gói giá là Rate card with Custom Attributes (Thẻ giá có thuộc tính tuỳ chỉnh).
  4. Nhấp vào đường liên kết Thẻ giá. Thao tác này sẽ mở ra cửa sổ Bảng giá.

  5. Chọn thuộc tính tùy chỉnh trong trình đơn thả xuống Thuộc tính tùy 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 trả 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ệ = phí tính cho nhà phát triển)
  6. Nếu muốn, bạn có thể thiết lập một gói thu phí trong miễn phí như mô tả trong phần Chỉ định thông tin chi tiết về gói giá.
  7. Thiết lập một 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á có Thuộc tính tuỳ chỉnh trên Bảng giá, 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 Mức phí cố định làm mô hình tính phí, thì nhà phát triển sẽ được tính một mức phí 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 mức phí cố định cho từng giao dịch). Hãy 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ỉ xuất bản kế hoạch khi bạn hoàn toàn chắc chắn kế hoạch đó là cuối cùng. Hãy xem phần Phát hành gói 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 Chỉ định thông tin chi tiết về gói giá 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 với các thuộc tính tuỳ chỉnh bằng cách sử dụ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 với các thuộc tính tuỳ chỉnh, như mô tả ở bên dưới.

Edge

Cách định cấu hình gói giá có 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 nội dung Tạo gói sản phẩm API.
    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ẽ 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ư Tạo chính sách ghi lại giao dịch.
  3. Tạo kế hoạch giá cho gói sản phẩm API và chỉ định thông số xếp hạng 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.

Phiên bản cũ (Đám mây riêng tư)

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

  1. Trong chính sách ghi lại giao dịch của 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ư phần Tạo chính sách ghi lại giao dịch. Hãy làm việc nà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 nội dung 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 Cơ sở tổng hợp thành khoảng thời gian tổng hợp số lượng giao dịch. Chọn một số trong khoảng từ 1 đến 24 tháng. Giá trị này mặc định là 1 tháng.
  7. Nhấp vào Apply and Close (Á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 hoàn toàn chắc chắn kế hoạch đó là cuối cùng. Hãy xem phần Phát hành gói 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 Chỉ định chi tiết 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 đây:

  1. Trong chính sách ghi lại giao dịch của 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ư phần Tạo chính sách ghi lại giao dịch. Hãy làm việc nà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 nội dung Tạo gói API.

Tiếp theo, bạn sẽ dùng API này để tạo gói giá.

Khi tạo gói giá, bạn sẽ chỉ định thông tin chi tiết cho gói giá có thuộc tính tuỳ chỉnh. Bạn cần chỉ định thông tin chi tiết trong thuộc tính ratePlanDetails trong nội dung yêu cầu trong lệnh gọi đến /organizations/{org_name}/monetization-packages/{package_id}/rate-plans. Trong phần thông tin chi tiết, bạn cần chỉ định một giá trị thông số xếp hạng giúp 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ị tham số xếp hạng tổng hợp thuộc tính tuỳ chỉnh trong một khoảng thời gian nhất định.

Hãy xem phần Chế độ cài đặt cấu hình của gói giá để nắm được danh sách đầy đủ các lựa chọn chi tiết của gói giá.

Ví dụ: nội dung sau đây sẽ tạo Bảng giá có kế hoạch Thuộc tính tuỳ chỉnh dựa trên thuộc tính tuỳ chỉnh có tên 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

Phần sau đây sẽ tạo một Thông báo có thể điều chỉnh kèm theo gói giá thuộc tính tuỳ chỉnh dựa trên 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