Gói giá bằng cách sử dụng API

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

Phần này mô tả cách dùng API để dùng API này để mua gói giá đã công bố và cách dùng API để hết hạn hoặc huỷ gói giá đã mua (nếu muốn).

Dùng API để mua gói giá đã công bố

Sau khi phát hành gói giá, nhà phát triển hoặc công ty có thể mua (hoặc "chấp nhận") gói giá đó bằng cách gửi yêu cầu POST tới /mint/organizations/{org_name}/developers/{developer_or_company_id}/developer-rateplans, trong đó {org_name} là tên của tổ chức và {developer_or_company_id} là mã nhận dạng của nhà phát triển hoặc công ty.

Để miễn phí thiết lập khi mua gói giá, hãy đặt tham số truy vấn waivefees thành true. Cờ này sẽ hữu ích khi bạn chuyển nhà phát triển sang tính năng kiếm tiền, như mô tả trong bài viết Chuyển nhà phát triển sang nền tảng kiếm tiền.

Bảng sau đây tóm tắt các thuộc tính cấu hình mà bạn có thể chỉ định trong nội dung yêu cầu, giá trị mặc định của các thuộc tính đó và liệu các thuộc tính đó có bắt buộc hay không.

Tên Nội dung mô tả Mặc định Bắt buộc?
startDate

Ngày bắt đầu gói giá. Ví dụ: 2017-03-24.

Không áp dụng
endDate

Ngày kết thúc gói giá. Ví dụ: 2017-09-24.

Gói giá sẽ có hiệu lực cho đến cuối ngày vào ngày đã chỉ định. Ví dụ: nếu muốn hết hạn gói giá vào ngày 1 tháng 12 năm 2017, bạn nên đặt giá trị endDate thành 2017-11-30. Trong trường hợp này, gói giá sẽ hết hạn vào cuối ngày, tức là ngày 30 tháng 11 năm 2017; tất cả các yêu cầu vào ngày 1 tháng 12 năm 2017 sẽ bị chặn.

Không áp dụng Không
developer

Thuộc tính id xác định mã nhận dạng của nhà phát triển hoặc công ty mua gói giá.

Không áp dụng
quotaTarget

Số lượng giao dịch mục tiêu mà nhà phát triển ứng dụng được phép thực hiện. Bạn có thể định cấu hình liệu có gửi thông báo hay không và khi nào gửi thông báo dựa trên tỷ lệ phần trăm của số mục tiêu đã đạt được, chẳng hạn như 90%, 100% hoặc 150%. Các giao dịch bổ sung sẽ không bị chặn sau khi đạt đến số mục tiêu.

Đặt giá trị này thành một giá trị số nguyên dương hoặc 0 để tắt thông báo cho nhà phát triển ứng dụng.

0 Không
ratePlan

Thuộc tính id xác định mã nhận dạng của gói giá.

Mã gói giá khác với tên hiển thị. Để xem thông tin chi tiết về gói giá, bao gồm cả mã nhận dạng, hãy xem Khám phá trang gói giá.

Không áp dụng
suppressWarning

Cờ cho biết liệu có nên loại bỏ lỗi này hay không nếu nhà phát triển cố gắng mua một gói giá trùng với một gói giá khác đã mua. Giá trị này có thể là một trong những giá trị sau:

  • true – Tính năng kiếm tiền chấm dứt tất cả các gói giá đã mua mà nhà phát triển có đối với các gói API chứa các sản phẩm API xung đột. Sau đó, hệ thống sẽ mua một gói API mới cho nhà phát triển.
  • false – Hệ thống sẽ báo lỗi trong trường hợp có gói giá trùng lặp.
Không áp dụng Không
waveTerminationCharge

Cờ cho biết liệu phí chấm dứt có được miễn khi gói giá đang hoạt động bị chấm dứt trong quá trình kích hoạt gói giá mới hay không. Giá trị này có thể là một trong những giá trị sau:

  • true – Miễn phí chấm dứt khi gói giá đang hoạt động bị chấm dứt trong quá trình kích hoạt gói giá mới.
  • false – Không miễn phí chấm dứt khi gói giá đang hoạt động bị chấm dứt trong quá trình kích hoạt gói giá mới.
Không áp dụng Không

Ví dụ: yêu cầu sau đây mua gói giá location_&_messaging cho nhà phát triển đã chỉ định:

curl "https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/developers/5cTWgdUvdr6JW3xU/developer-rateplans" \
  -X POST \
  -H "Content-Type:application/json" \
  -u email:password \
  -d '{
   "developer":{
     "id":"5cTWgdUvdr6JW3xU"
   },
   "startDate":"2017-08-30",
   "ratePlan":{
     "id":"location_&_messaging"
   },
   "suppressWarning":false
  }'

Trong ví dụ này, thuộc tính suppressWarning được thiết lập thành false. Trong trường hợp này, hệ thống sẽ báo lỗi trong trường hợp xảy ra xung đột. Ví dụ: hệ thống sẽ báo lỗi nếu nhà phát triển tìm cách mua một gói giá trùng với một gói giá khác đã mua. Điều này cho phép ứng dụng cung cấp giao diện người dùng để kiếm tiền ngăn chặn lỗi và hiển thị các sản phẩm xung đột cho nhà phát triển để xác nhận (khi thích hợp). Nếu bạn đặt suppressWarning thành true, thì tính năng kiếm tiền sẽ chấm dứt mọi gói giá đã mua mà nhà phát triển có đối với các gói API chứa các sản phẩm xung đột. Sau đó, hệ thống sẽ mua một gói API mới cho nhà phát triển.

Yêu cầu sau đây mua một gói giá thông báo có thể điều chỉnh và đặt số lượng giao dịch mục tiêu thành 4.000.

curl "https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/developers/5cTWgdUvdr6JW3xU/developer-rateplans" \
  -X POST \
  -H "Content-Type:application/json" \
  -u email:password \
  -d '{
   "developer":{
     "id":"5cTWgdUvdr6JW3xU"
   },
   "ratePlan":{
     "id":"adjustable-notification-plan"
   },
   "startDate": "2017-03-24",
   "quotaTarget": 4000,
   "suppressWarning":false
  }'

Trong một trong hai ví dụ trên, nếu thông báo lỗi sau được trả về:

Developer legal name not specified. 

Sau đó, bạn phải đặt các thuộc tính kiếm tiền MINT_DEVELOPER_ADDRESSMINT_DEVELOPER_LEGAL_NAME rồi lặp lại lệnh gọi API.

Hết hạn gói giá mà nhà phát triển mua bằng API này

Để hết hạn (hoặc huỷ) một gói giá mà nhà phát triển đã mua, hãy cập nhật thông tin của gói giá đã mua và chỉ định thuộc tính endDate trong nội dung yêu cầu trong một yêu cầu PUT cho tài nguyên /organizations/{org_name}/developers/{developer_or_company_id}/developer-rateplans/{developer_rateplan_id}.

Gói giá sẽ có hiệu lực cho đến cuối ngày vào ngày kết thúc được chỉ định. Ví dụ: nếu muốn hết hạn một gói giá vào ngày 1 tháng 12 năm 2017, bạn nên đặt giá trị endDate thành 2017-11-30. Trong trường hợp này, gói giá sẽ hết hạn vào cuối ngày, tức là ngày 30 tháng 11 năm 2017; mọi yêu cầu vào ngày 1 tháng 12 năm 2017 sẽ bị chặn.

{developer_rateplan_id} được trả về trong phản hồi khi bạn mua gói giá đã xuất bản.

Ví dụ:

{
  "created": "2017-03-31 18:59:54",
  "developer": {
    ...
  },
  "id": "b1c600b8-f871-496d-8173-12b9950d6ab1",
  "quotaTarget": 3000,
  "ratePlan": {
    ...
  },
  "startDate": "2017-03-31 00:00:00",
  "updated": "2017-03-31 18:59:54",
  "waiveTerminationCharge": false
}

Ngoài ra, bạn có thể lấy {developer-rateplan-id} cho gói giá dành cho nhà phát triển bằng cách gửi một yêu cầu GET tới /organizations/{org_name}/developers/{developer_id}/developer-accepted-rateplans, trong đó {developer_id} là địa chỉ email của nhà phát triển. Để biết thêm thông tin, hãy xem phần Xem tất cả các gói giá mà nhà phát triển đã mua.

Yêu cầu sau đây cập nhật ngày kết thúc đến ngày 1 tháng 12 năm 2017. Điều này nghĩa là gói giá sẽ hết hạn vào cuối ngày 30 tháng 11 năm 2017; tất cả các yêu cầu vào ngày 1 tháng 12 năm 2017 sẽ bị chặn.

curl "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/developers/dev@mycompany.com/developer-rateplans/b1c600b8-f871-496d-8173-12b9950d6ab1"
  -X PUT \
  -H "Content-Type:application/json" \
  -u email:password \
  -d '{
   "id" : "b1c600b8-f871-496d-8173-12b9950d6ab1",
   "developer":{
     "id":"dev@mycompany.com"
   },
   "ratePlan":{
     "id":"p1_adjustable-notification-plan"
   },
   "startDate": "2017-04-15 00:00:00",
   "endDate": "2017-11-30",
   "quotaTarget": 3000,
   "suppressWarning":false
  }'