pop-parent API Documentation
Updated: 2026-04-29 16:23:12
Save Online Custom Renewal Package Information
API Endpoint
POST /pcs/v1/customer/online-custom-package/save
API Description
Saves online custom renewal package information and initiates the subsequent approval process.
Request Headers
Content-Type: application/json
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
id |
Long |
No | Empty indicates creation, a value indicates modification |
customerId |
String |
Yes | Customer ID |
status |
String |
Yes | Status, recommended to pass audit |
ext |
String |
Yes | Custom package details JSON string |
createUserId |
String |
No | No need to pass from frontend, system automatically retrieves the current logged-in user saleUserId |
Notes:
- If the current logged-in user's
saleUserIdis empty, the API will directly return an error. - During actual saving, the downstream system will reset the status to
audit. - If the customer already has a record with
auditorpassstatus, resubmission is not allowed.
ext Field Structure
ext is a JSON string corresponding to OnlinePackageVO.
Common Fields:
| Field | Type | Description |
|---|---|---|
packageName |
String |
Package name |
packageId |
Long |
Package ID |
businessType |
String |
Business type, live or vod |
amount |
Long |
Package amount |
businessStartTime |
Date |
Business start time |
businessEndTime |
Date |
Business end time |
billingPlanCode |
String |
Billing method code |
cooperationSubject |
String |
Cooperation entity |
Live Streaming Related Fields:
| Field | Type | Description |
|---|---|---|
livePackageMinutesQuantity |
Long |
Live streaming minutes |
liveConcurrentQuantity |
Long |
Live streaming concurrency value |
liveConcurrentIsLimit |
Short |
Whether to limit concurrency |
liveConcurrentDuration |
Long |
Live streaming concurrency purchase duration |
liveConcurrentDurationUnit |
String |
Live streaming concurrency purchase duration unit |
Video-on-Demand Related Fields:
| Field | Type | Description |
|---|---|---|
vodSpace |
Long |
VOD storage space |
vodFlow |
Long |
VOD traffic |
vodPackageType |
String |
VOD package type code |
vodPackageIsAnnualFlow |
Short |
Whether it is an annual traffic package |
vodPackageFlowMonthsOfYear |
Integer |
Annual traffic months |
Request Example
{
"customerId": "821775ea6c",
"status": "audit",
"ext": "{\"packageName\":\"直播定制套餐\",\"packageId\":1001,\"businessType\":\"live\",\"amount\":120000,\"businessStartTime\":\"2026-05-01 00:00:00\",\"businessEndTime\":\"2027-04-30 23:59:59\",\"billingPlanCode\":\"live_duration\",\"cooperationSubject\":\"0\",\"livePackageMinutesQuantity\":50000}"
}
Response Structure
Return type: ResponseVO<OnlineCustomPackageVO>
ResponseVO Fields
| Field | Type | Description |
|---|---|---|
code |
Integer |
Status code, success is generally 200 |
status |
String |
success / error |
requestId |
String |
Request ID |
error |
Object |
Error message |
data |
OnlineCustomPackageVO |
Return data |
OnlineCustomPackageVO Fields
| Field | Type | Description |
|---|---|---|
id |
Long |
Primary key |
customerId |
String |
Customer ID |
status |
String |
Status |
ext |
String |
Package details JSON string |
createUserId |
String |
Creator ID |
createTime |
Date |
Creation time |
updateTime |
Date |
Update time |
Successful Response Example
{
"code": 200,
"status": "success",
"data": {
"id": 12,
"customerId": "821775ea6c",
"status": "audit",
"ext": "{\"packageName\":\"直播定制套餐\"}",
"createUserId": "sale123",
"createTime": "2026-04-29T16:00:00+08:00",
"updateTime": "2026-04-29T16:00:00+08:00"
}
}
Failed Response Example
{
"code": 400,
"status": "error",
"error": {
"code": 400,
"desc": "当前登录用户saleUserId为空,不允许提交"
}
}
