Đị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.
Truy cập vào tài liệu 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 một biến hoặc giá trị tuỳ chỉnh. Ví dụ: Bạn có thể cần phải:

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

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à được dùng để tính số lượng giao dịch và phí.

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

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

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

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

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

Mô hình sạc Tính toán thuộc tính tùy chỉnh
Mức phí cố định và Mức phí theo số lượng

custom attribute number * rate = charge to developer

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

Trong gói theo bậc khối lượng, nếu bậc khối lượng 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á hạn mức đó, thì sẽ xảy ra 2 trường hợp:

Bundle

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

custom attribute number = amount added to bundle count

Ví dụ: nếu số thuộc tính tùy chỉnh trong thông báo là 10, thì 10 sẽ được thêm vào số giao dịch được 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 điền đầy và số lượng gói tiếp theo sẽ tăng thêm 4. Bạn sẽ bị tính phí theo mức giá của gói tiếp theo đó (nếu có).

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á hạn mức đó, thì sẽ xảy ra 2 trường hợp:

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ẽ tính toán như sau:

custom attribute number = amount added to transaction count

Ví dụ: nếu số thuộc tính tùy 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 (trong gói sản phẩm API) cho biết nơi cần tìm giá trị thuộc tính tùy chỉnh trong thông báo để kiếm tiền. Bạn xác định thuộc tính tùy chỉnh trong phần Thuộc tính tùy 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 tùy chỉnh đó trong gói giá – sau khi tạo một gói sản phẩm API có chứa chính sách ghi lại giao dịch với thuộc tính tùy chỉnh được 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 một sản phẩm API.
  2. Tạo một gói sản phẩm API có 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 một kế hoạch 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 một tham số định giá tuỳ chỉnh.

Hình sau đây cho thấy mối quan hệ giữa thuộc tính tùy chỉnh được xác định trong chính sách ghi lại giao dịch và cấu hình kế hoạch bảng giá. Thông báo có thể điều chỉnh với mối quan hệ giữa gói giá theo thuộc tính tùy chỉnh cũng tương tự, mặc dù giá trị theo dải 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 tùy chỉnh ở một số nơi, 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 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ụ cho thấy cách thêm một tiêu đề phản hồi có giá trị bằng 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 lời mời nhắn tin, sẽ có một biến client.received.content.length chứa số lượng 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 của 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ự, chúng ta có thể tạo một dòng tiêu đề có giá trị của một thuộc tính tùy chỉnh trên ứng dụng. Ví dụ: nếu bạn thêm một thuộc tính tùy 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 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 Assign Message (Chỉ định thông báo) được đính kèm vào phản hồi Proxy Endpoint (Điểm cuối của 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 chế độ thiết lập thuộc tính tùy chỉnh được mô tả ở trên, bạn thiết lập gói giá theo cách thông thường (đối với gói giá không có thuộc tính tùy chỉnh), nhưng phải tuân thủ các yêu cầu sau.

Đị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 thẻ giá 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 cổ điển, như mô tả trong các phần sau.

Edge

Cách định cấu hình kế hoạch thẻ 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 một sản phẩm API.
  2. Tạo một gói sản phẩm API có 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 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 kế hoạch 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 một kế hoạch giá cho gói sản phẩm API và chỉ định một tham 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 thẻ giá bằng giao diện người dùng.

Classic Edge (Private Cloud)

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

  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 các 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. 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 các sản phẩm API và chính sách ghi lại giao dịch theo đúng 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 một 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 Thẻ giá. Thao tác này sẽ mở cửa sổ Thẻ giá.

  5. Chọn một 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 bị tính phí dựa trên giá trị của thuộc tính tùy chỉnh đã chọn trong mỗi giao dịch.
    (Giá trị thuộc tính * tỷ lệ = phí cho nhà phát triển)
  6. Bạn có thể thiết lập một gói freemium 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 bảng giá. Tuy nhiên, xin lưu ý rằng đối với loại kế hoạch 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 Mức cố định làm mô hình tính phí, thì nhà phát triển sẽ bị tính phí theo mức 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 cố định cho mỗi giao dịch). Xem mục Phép tính để 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 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 phần Chỉ định thông tin chi tiết về gói thẻ 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 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ả bên dưới.

Edge

Cách định cấu hình kế hoạch thẻ 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 một sản phẩm API.
  2. Tạo một gói sản phẩm API có 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 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 kế hoạch 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 một kế hoạch giá cho gói sản phẩm API và chỉ định một tham 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.

Classic Edge (Private Cloud)

Cách định cấu hình gói thẻ giá 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 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 các 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. 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 các sản phẩm API và chính sách ghi lại giao dịch theo đúng 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 một kế hoạch giá cho gói API, chọn loại kế hoạch giá là Thông báo có thể điều chỉnh kèm 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 tùy 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 tùy 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 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 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 Chỉ đị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 một 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ẽ được dùng để xác định các 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. 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 các sản phẩm API và chính sách ghi lại giao dịch theo đúng 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 kế hoạch 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 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 chỉ định một giá trị tham số xếp hạng 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ố điểm xếp hạng tổng hợp thuộc tính tùy chỉnh trong một khoảng thời gian cụ thể.

Hãy xem Chế độ cài đặt cấu hình chi tiết về kế hoạch giá để biết danh sách đầy đủ các lựa chọn chi tiết về kế hoạch giá.

Ví dụ: đoạn mã sau đây sẽ tạo Thẻ giá có kế hoạch 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

Sau đây là cách tạo một Thông báo có thể điều chỉnh với 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 đượ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