Files
device-voice-h5/openspec/changes/update-july-h5-c-iteration/specs/legacy-package-renewal/spec.md
luo 4f281da778
All checks were successful
构建并部署前端到生产环境 / build-and-deploy (push) Successful in 1m11s
feat: 7月迭代
2026-07-27 18:13:19 +08:00

2.2 KiB

ADDED Requirements

Requirement: Discontinued packages SHALL remain renewable only for eligible existing customers

The H5/C client SHALL keep discontinued packages out of the ordinary package catalog shown to new customers and agents. An eligible existing customer SHALL be able to use a valid current_package_id from asset info or package_ids from a historical order to continue a package renewal.

Scenario: New customer opens the package catalog

  • WHEN the package catalog contains a discontinued package that is not the customer's current package
  • THEN the client SHALL not display that package as an ordinary purchase option

Scenario: Existing customer is using a discontinued current package

  • WHEN asset info returns a discontinued package through current_package_id
  • THEN the client SHALL expose that ID only in the eligible renewal context
  • AND the client SHALL allow the customer to continue through the existing package-order flow

Scenario: Existing customer renews from a historical order

  • WHEN a historical order returns one or more valid package_ids
  • THEN the client SHALL use those IDs for the renewal selection when the existing renewal flow provides that entry
  • AND the client SHALL preserve the historical order data unchanged

Requirement: Renewal SHALL reuse the standard order creation contract

The client SHALL create a renewal by calling POST /api/c/v1/orders/create with the selected package ID or IDs, the asset identifier, and a currently allowed payment_method. It SHALL not invent or call a dedicated discontinued-package renewal endpoint.

Scenario: Submit a discontinued-package renewal

  • WHEN an eligible customer confirms a renewal with an allowed payment method
  • THEN the client SHALL submit the selected package IDs, identifier, and payment method to the standard order endpoint
  • AND the client SHALL follow the standard payment response handling

Scenario: No eligible package ID is available

  • WHEN neither asset info nor the relevant historical order supplies a valid package ID
  • THEN the client SHALL show that renewal is unavailable
  • AND the client SHALL not guess an ID from the ordinary package catalog