文档
Core 接口

Core:充值、套餐、价格与积分

API 逐项需求、源码归属、字段与验收条件

当前固定源码下本组共 61 项方法 + 路径。下列为接口需求 v0.1,Owner 为 Core,计划阶段为 CE-04;均未宣称 OceanWay 已运行。原路径/字段默认沿用,变化须进入差异台账。

每项适用统一接口需求规则,并列出上游字段声明、控制器观察与具体补差。OpenAPI 没列必填不表示运行时可缺省;观察到的 JSON key 也不等于可写入字段。下载完整接口台账上游管理规范模型规范可查看完整嵌套 Schema。

CORE-BILL-001 · POST /api/creem/webhook

用途与归属:Creem Webhook。优先沿用,迁入/适配后验收。

鉴权:支付通知:验签/环境/订单/金额核对,不能以无登录理解为无认证。

请求:Body 类型:controller.CreemWebhookEvent controller/topup_creem.go:178;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回200 成功(上游未声明响应 Schema)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:以支付事件/交易与订单唯一关联去重;验证金额、币种、环境和状态机,重复成功回调返回同结果,不再次增加积分。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/api-router.go:63controller.CreemWebhook controller/topup_creem.go:238;上游 api.jsonPOST /api/creem/webhook

CORE-BILL-002 · GET /api/group/

用途与归属:获取所有分组。优先沿用,迁入/适配后验收。

鉴权:Admin 员工身份。

请求:自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 data, message, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/api-router.go:350controller.GetGroups controller/group.go:14;上游 api.jsonGET /api/group/

CORE-BILL-003 · GET /api/option/model_pricing

用途与归属:GetModelPricingConfig。优先沿用,迁入/适配后验收。

鉴权:Root 管理身份。

请求:自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:209controller.GetModelPricingConfig controller/model_pricing_config.go:12

CORE-BILL-004 · PATCH /api/option/model_pricing

用途与归属:UpdateModelPricingConfig。优先沿用,迁入/适配后验收。

鉴权:Root 管理身份。

请求:处理器匿名请求字段:changes:[]model.ModelPricingChange(条件必填看处理器)。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 message, models, success, updated_models(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:210controller.UpdateModelPricingConfig controller/model_pricing_config.go:59

CORE-BILL-005 · POST /api/option/model_pricing/convert

用途与归属:PreviewModelPricingConversion。优先沿用,迁入/适配后验收。

鉴权:Root 管理身份。

请求:处理器匿名请求字段:model_name:string(条件必填看处理器), pricing:model.PricingValues(条件必填看处理器)。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 message, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:211controller.PreviewModelPricingConversion controller/model_pricing_config.go:21

CORE-BILL-006 · POST /api/option/model_pricing/preview

用途与归属:PreviewModelPricing。优先沿用,迁入/适配后验收。

鉴权:Root 管理身份。

请求:处理器匿名请求字段:model_name:string(条件必填看处理器), pricing:model.PricingValues(条件必填看处理器)。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 message, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:212controller.PreviewModelPricing controller/model_pricing_config.go:38

CORE-BILL-007 · POST /api/option/payment_compliance

用途与归属:ConfirmPaymentCompliance。优先沿用,迁入/适配后验收。

鉴权:Root 管理身份。

请求:Body 类型:controller.PaymentComplianceRequest controller/payment_compliance.go:18;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 confirmed, confirmed_at, confirmed_by, message, success, terms_version(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:213controller.ConfirmPaymentCompliance controller/payment_compliance.go:30

CORE-BILL-008 · POST /api/option/waffo-pancake/subscription-product

用途与归属:CreateWaffoPancakeSubscriptionProduct。优先沿用,迁入/适配后验收。

鉴权:Root 管理身份。

请求:Body 类型:controller.createWaffoPancakeSubscriptionProductRequest controller/topup_waffo_pancake.go:242;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;代码 JSON/映射中观察到 data, message, product_id, product_name, store_id(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:220controller.CreateWaffoPancakeSubscriptionProduct controller/topup_waffo_pancake.go:252

CORE-BILL-009 · GET /api/option/waffo-pancake/subscription-product-options

用途与归属:ListWaffoPancakeSubscriptionProductOptions。优先沿用,迁入/适配后验收。

鉴权:Root 管理身份。

请求:自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;代码 JSON/映射中观察到 data, message, products, store_id(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:221controller.ListWaffoPancakeSubscriptionProductOptions controller/topup_waffo_pancake.go:304

CORE-BILL-010 · GET /api/ratio_config

用途与归属:获取倍率配置。优先沿用,迁入/适配后验收。

鉴权:未挂 User/Admin/Token 认证;按处理器及配置校验。

请求:自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 data, message, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/api-router.go:60controller.GetRatioConfig controller/ratio_config.go:12;上游 api.jsonGET /api/ratio_config

CORE-BILL-011 · GET /api/redemption/

用途与归属:获取所有兑换码。优先沿用,迁入/适配后验收。

鉴权:Admin 员工身份。

请求:OpenAPI 参数:query.p:integer; query.page_size:integer。处理器读取:query.p, query.page_size。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回200 成功(上游未声明响应 Schema);处理器使用 common.ApiSuccess 包络。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/api-router.go:300controller.GetAllRedemptions controller/redemption.go:18;上游 api.jsonGET /api/redemption/

CORE-BILL-012 · POST /api/redemption/

用途与归属:创建兑换码。优先沿用,迁入/适配后验收。

鉴权:Admin 员工身份。

请求:Body 字段(application/json):id:integer [规范未列必填]; name:string [规范未列必填]; key:string [规范未列必填]; status:integer [规范未列必填]; quota:integer [规范未列必填]; created_time:integer [规范未列必填]; redeemed_time:integer [规范未列必填]

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 count, data, message, name, quota, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/api-router.go:303controller.AddRedemption controller/redemption.go:65;上游 api.jsonPOST /api/redemption/

CORE-BILL-013 · PUT /api/redemption/

用途与归属:更新兑换码。优先沿用,迁入/适配后验收。

鉴权:Admin 员工身份。

请求:处理器读取:query.status_only。Body 字段(application/json):id:integer [规范未列必填]; name:string [规范未列必填]; key:string [规范未列必填]; status:integer [规范未列必填]; quota:integer [规范未列必填]; created_time:integer [规范未列必填]; redeemed_time:integer [规范未列必填]

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 data, message, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/api-router.go:305controller.UpdateRedemption controller/redemption.go:151;上游 api.jsonPUT /api/redemption/

CORE-BILL-014 · DELETE /api/redemption/:id

用途与归属:删除兑换码。优先沿用,迁入/适配后验收。

鉴权:Admin 员工身份。

请求:Path:id(必填;以实际路由名为准)。OpenAPI 参数:path.id:integer(必填)。处理器读取:path.id。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 message, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/api-router.go:307controller.DeleteRedemption controller/redemption.go:137;上游 api.jsonDELETE /api/redemption/{id}

CORE-BILL-015 · GET /api/redemption/:id

用途与归属:获取指定兑换码。优先沿用,迁入/适配后验收。

鉴权:Admin 员工身份。

请求:Path:id(必填;以实际路由名为准)。OpenAPI 参数:path.id:integer(必填)。处理器读取:path.id。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 data, message, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/api-router.go:302controller.GetRedemption controller/redemption.go:46;上游 api.jsonGET /api/redemption/{id}

CORE-BILL-016 · POST /api/redemption/batch

用途与归属:DeleteRedemptionBatch。优先沿用,迁入/适配后验收。

鉴权:Admin 员工身份。

请求:处理器匿名请求字段:ids:[]int(绑定标记必填)。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 count, requested_redemption_ids, total(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:304controller.DeleteRedemptionBatch controller/redemption.go:219

CORE-BILL-017 · DELETE /api/redemption/invalid

用途与归属:删除无效兑换码。优先沿用,迁入/适配后验收。

鉴权:Admin 员工身份。

请求:自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 data, message, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/api-router.go:306controller.DeleteInvalidRedemption controller/redemption.go:198;上游 api.jsonDELETE /api/redemption/invalid

CORE-BILL-018 · GET /api/redemption/search

用途与归属:搜索兑换码。优先沿用,迁入/适配后验收。

鉴权:Admin 员工身份。

请求:OpenAPI 参数:query.keyword:string。处理器读取:query.keyword, query.status, query.p, query.page_size。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回200 成功(上游未声明响应 Schema);处理器使用 common.ApiSuccess 包络。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/api-router.go:301controller.SearchRedemptions controller/redemption.go:31;上游 api.jsonGET /api/redemption/search

CORE-BILL-019 · POST /api/stripe/webhook

用途与归属:Stripe Webhook。优先沿用,迁入/适配后验收。

鉴权:支付通知:验签/环境/订单/金额核对,不能以无登录理解为无认证。

请求:处理器读取:header.Stripe-Signature。Body/表单由下方处理器定义;上游未提供完整 Schema,本项要求迁入时补出字段白名单、必填、类型、默认和限制,缺失不作为“任意 JSON”开放。

返回200 成功(上游未声明响应 Schema)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:以支付事件/交易与订单唯一关联去重;验证金额、币种、环境和状态机,重复成功回调返回同结果,不再次增加积分。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/api-router.go:62controller.StripeWebhook controller/topup_stripe.go:164;上游 api.jsonPOST /api/stripe/webhook

CORE-BILL-020 · POST /api/subscription/admin/bind

用途与归属:AdminBindSubscription。优先沿用,迁入/适配后验收。

鉴权:Admin 员工身份。

请求:Body 类型:controller.AdminBindSubscriptionRequest controller/subscription.go:351;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 message(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:187controller.AdminBindSubscription controller/subscription.go:356

CORE-BILL-021 · GET /api/subscription/admin/plans

用途与归属:AdminListSubscriptionPlans。优先沿用,迁入/适配后验收。

鉴权:Admin 员工身份。

请求:自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:183controller.AdminListSubscriptionPlans controller/subscription.go:121

CORE-BILL-022 · POST /api/subscription/admin/plans

用途与归属:AdminCreateSubscriptionPlan。优先沿用,迁入/适配后验收。

鉴权:Admin 员工身份。

请求:Body 类型:controller.AdminUpsertSubscriptionPlanRequest controller/subscription.go:137;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:184controller.AdminCreateSubscriptionPlan controller/subscription.go:141

CORE-BILL-023 · PATCH /api/subscription/admin/plans/:id

用途与归属:AdminUpdateSubscriptionPlanStatus。优先沿用,迁入/适配后验收。

鉴权:Admin 员工身份。

请求:Path:id(必填;以实际路由名为准)。处理器读取:path.id。Body 类型:controller.AdminUpdateSubscriptionPlanStatusRequest controller/subscription.go:324;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:186controller.AdminUpdateSubscriptionPlanStatus controller/subscription.go:328

CORE-BILL-024 · PUT /api/subscription/admin/plans/:id

用途与归属:AdminUpdateSubscriptionPlan。优先沿用,迁入/适配后验收。

鉴权:Admin 员工身份。

请求:Path:id(必填;以实际路由名为准)。处理器读取:path.id。Body 类型:controller.AdminUpsertSubscriptionPlanRequest controller/subscription.go:137;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 creem_product_id, currency, custom_seconds, downgrade_group, duration_unit, duration_value, enabled, max_purchase_per_user, price_amount, quota_reset_custom_seconds, quota_reset_period, sort_order, stripe_price_id, subtitle, title, total_amount, updated_at, upgrade_group, waffo_pancake_product_id(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:185controller.AdminUpdateSubscriptionPlan controller/subscription.go:216

CORE-BILL-025 · POST /api/subscription/admin/plans/:id/subscriptions/reset

用途与归属:AdminResetPlanSubscriptions。优先沿用,迁入/适配后验收。

鉴权:Admin 员工身份。

请求:Path:id(必填;以实际路由名为准)。处理器读取:path.id。Body 类型:controller.AdminResetSubscriptionRequest controller/subscription.go:398;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 advance_reset_time, plan_id, plan_title, reset_count, user_count(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:188controller.AdminResetPlanSubscriptions controller/subscription.go:481

CORE-BILL-026 · DELETE /api/subscription/admin/user_subscriptions/:id

用途与归属:AdminDeleteUserSubscription。优先沿用,迁入/适配后验收。

鉴权:Admin 员工身份。

请求:Path:id(必填;以实际路由名为准)。处理器读取:path.id。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 message(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:195controller.AdminDeleteUserSubscription controller/subscription.go:531

CORE-BILL-027 · POST /api/subscription/admin/user_subscriptions/:id/invalidate

用途与归属:AdminInvalidateUserSubscription。优先沿用,迁入/适配后验收。

鉴权:Admin 员工身份。

请求:Path:id(必填;以实际路由名为准)。处理器读取:path.id。Body/表单由下方处理器定义;上游未提供完整 Schema,本项要求迁入时补出字段白名单、必填、类型、默认和限制,缺失不作为“任意 JSON”开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 message(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:194controller.AdminInvalidateUserSubscription controller/subscription.go:512

CORE-BILL-028 · GET /api/subscription/admin/users/:id/subscriptions

用途与归属:AdminListUserSubscriptions。优先沿用,迁入/适配后验收。

鉴权:Admin 员工身份。

请求:Path:id(必填;以实际路由名为准)。处理器读取:path.id。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:191controller.AdminListUserSubscriptions controller/subscription.go:380

CORE-BILL-029 · POST /api/subscription/admin/users/:id/subscriptions

用途与归属:AdminCreateUserSubscription。优先沿用,迁入/适配后验收。

鉴权:Admin 员工身份。

请求:Path:id(必填;以实际路由名为准)。处理器读取:path.id。Body 类型:controller.AdminCreateUserSubscriptionRequest controller/subscription.go:394;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 message(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:192controller.AdminCreateUserSubscription controller/subscription.go:421

CORE-BILL-030 · POST /api/subscription/admin/users/:id/subscriptions/reset

用途与归属:AdminResetUserSubscriptionsByPlan。优先沿用,迁入/适配后验收。

鉴权:Admin 员工身份。

请求:Path:id(必填;以实际路由名为准)。处理器读取:path.id。Body 类型:controller.AdminResetSubscriptionRequest controller/subscription.go:398;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 advance_reset_time, plan_id, plan_title, reset_count, target_user_id, user_count(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:193controller.AdminResetUserSubscriptionsByPlan controller/subscription.go:448

CORE-BILL-031 · POST /api/subscription/balance/pay

用途与归属:SubscriptionRequestBalancePay。优先沿用,迁入/适配后验收。

鉴权:客户登录身份(沿用上游 UserAuth 支持范围)。

请求:Body 类型:controller.SubscriptionBalancePayRequest controller/subscription.go:26;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:174controller.SubscriptionRequestBalancePay controller/subscription.go:100

CORE-BILL-032 · POST /api/subscription/creem/pay

用途与归属:SubscriptionRequestCreemPay。优先沿用,迁入/适配后验收。

鉴权:客户登录身份(沿用上游 UserAuth 支持范围)。

请求:Body 类型:controller.SubscriptionCreemPayRequest controller/subscription_payment_creem.go:19;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;代码 JSON/映射中观察到 checkout_url, data, message, order_id(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:177controller.SubscriptionRequestCreemPay controller/subscription_payment_creem.go:23

CORE-BILL-033 · GET /api/subscription/epay/notify

用途与归属:SubscriptionEpayNotify。优先沿用,迁入/适配后验收。

鉴权:支付通知:验签/环境/订单/金额核对,不能以无登录理解为无认证。

请求:自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:200controller.SubscriptionEpayNotify controller/subscription_payment_epay.go:118

CORE-BILL-034 · POST /api/subscription/epay/notify

用途与归属:SubscriptionEpayNotify。优先沿用,迁入/适配后验收。

鉴权:支付通知:验签/环境/订单/金额核对,不能以无登录理解为无认证。

请求:Body/表单由下方处理器定义;上游未提供完整 Schema,本项要求迁入时补出字段白名单、必填、类型、默认和限制,缺失不作为“任意 JSON”开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:以支付事件/交易与订单唯一关联去重;验证金额、币种、环境和状态机,重复成功回调返回同结果,不再次增加积分。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:199controller.SubscriptionEpayNotify controller/subscription_payment_epay.go:118

CORE-BILL-035 · POST /api/subscription/epay/pay

用途与归属:SubscriptionRequestEpay。优先沿用,迁入/适配后验收。

鉴权:客户登录身份(沿用上游 UserAuth 支持范围)。

请求:Body 类型:controller.SubscriptionEpayPayRequest controller/subscription_payment_epay.go:19;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;代码 JSON/映射中观察到 data, message, url(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:175controller.SubscriptionRequestEpay controller/subscription_payment_epay.go:24

CORE-BILL-036 · GET /api/subscription/epay/return

用途与归属:SubscriptionEpayReturn。优先沿用,迁入/适配后验收。

鉴权:支付通知:验签/环境/订单/金额核对,不能以无登录理解为无认证。

请求:自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:201controller.SubscriptionEpayReturn controller/subscription_payment_epay.go:173

CORE-BILL-037 · POST /api/subscription/epay/return

用途与归属:SubscriptionEpayReturn。优先沿用,迁入/适配后验收。

鉴权:支付通知:验签/环境/订单/金额核对,不能以无登录理解为无认证。

请求:Body/表单由下方处理器定义;上游未提供完整 Schema,本项要求迁入时补出字段白名单、必填、类型、默认和限制,缺失不作为“任意 JSON”开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:以支付事件/交易与订单唯一关联去重;验证金额、币种、环境和状态机,重复成功回调返回同结果,不再次增加积分。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:202controller.SubscriptionEpayReturn controller/subscription_payment_epay.go:173

CORE-BILL-038 · GET /api/subscription/plans

用途与归属:GetSubscriptionPlans。优先沿用,迁入/适配后验收。

鉴权:客户登录身份(沿用上游 UserAuth 支持范围)。

请求:自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:171controller.GetSubscriptionPlans controller/subscription.go:32

CORE-BILL-039 · GET /api/subscription/self

用途与归属:GetSubscriptionSelf。优先沿用,迁入/适配后验收。

鉴权:客户登录身份(沿用上游 UserAuth 支持范围)。

请求:自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 all_subscriptions, billing_preference, subscriptions(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:172controller.GetSubscriptionSelf controller/subscription.go:53

CORE-BILL-040 · PUT /api/subscription/self/preference

用途与归属:UpdateSubscriptionPreference。优先沿用,迁入/适配后验收。

鉴权:客户登录身份(沿用上游 UserAuth 支持范围)。

请求:Body 类型:controller.BillingPreferenceRequest controller/subscription.go:22;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 billing_preference(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:173controller.UpdateSubscriptionPreference controller/subscription.go:77

CORE-BILL-041 · POST /api/subscription/stripe/pay

用途与归属:SubscriptionRequestStripePay。优先沿用,迁入/适配后验收。

鉴权:客户登录身份(沿用上游 UserAuth 支持范围)。

请求:Body 类型:controller.SubscriptionStripePayRequest controller/subscription_payment_stripe.go:19;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;代码 JSON/映射中观察到 data, message, pay_link(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:176controller.SubscriptionRequestStripePay controller/subscription_payment_stripe.go:23

CORE-BILL-042 · POST /api/subscription/waffo-pancake/pay

用途与归属:SubscriptionRequestWaffoPancakePay。优先沿用,迁入/适配后验收。

鉴权:客户登录身份(沿用上游 UserAuth 支持范围)。

请求:Body 类型:controller.SubscriptionWaffoPancakePayRequest controller/subscription_payment_waffo_pancake.go:19;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;代码 JSON/映射中观察到 checkout_url, data, expires_at, message, order_id, session_id, token, token_expires_at(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:178controller.SubscriptionRequestWaffoPancakePay controller/subscription_payment_waffo_pancake.go:23

CORE-BILL-043 · POST /api/user/aff_transfer

用途与归属:转换邀请额度。优先沿用,迁入/适配后验收。

鉴权:客户登录身份(沿用上游 UserAuth 支持范围)。

请求:Body 字段(application/json):quota:integer [规范未列必填]

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 Error(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/api-router.go:125controller.TransferAffQuota controller/user.go:413;上游 api.jsonPOST /api/user/aff_transfer

CORE-BILL-044 · POST /api/user/amount

用途与归属:获取支付金额。优先沿用,迁入/适配后验收。

鉴权:客户登录身份(沿用上游 UserAuth 支持范围)。

请求:Body 类型:controller.AmountRequest controller/topup.go:132;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 data, message(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/api-router.go:117controller.RequestAmount controller/topup.go:486;上游 api.jsonPOST /api/user/amount

CORE-BILL-045 · POST /api/user/creem/pay

用途与归属:发起Creem支付。优先沿用,迁入/适配后验收。

鉴权:客户登录身份(沿用上游 UserAuth 支持范围)。

请求:Body 类型:controller.CreemPayRequest controller/topup_creem.go:51;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 data, message(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/api-router.go:120controller.RequestCreemPay controller/topup_creem.go:153;上游 api.jsonPOST /api/user/creem/pay

CORE-BILL-046 · GET /api/user/epay/notify

用途与归属:易支付回调。优先沿用,迁入/适配后验收。

鉴权:支付通知:验签/环境/订单/金额核对,不能以无登录理解为无认证。

请求:自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回200 成功(上游未声明响应 Schema)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/api-router.go:88controller.EpayNotify controller/topup.go:394;上游 api.jsonGET /api/user/epay/notify

CORE-BILL-047 · POST /api/user/epay/notify

用途与归属:EpayNotify。优先沿用,迁入/适配后验收。

鉴权:支付通知:验签/环境/订单/金额核对,不能以无登录理解为无认证。

请求:Body/表单由下方处理器定义;上游未提供完整 Schema,本项要求迁入时补出字段白名单、必填、类型、默认和限制,缺失不作为“任意 JSON”开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:以支付事件/交易与订单唯一关联去重;验证金额、币种、环境和状态机,重复成功回调返回同结果,不再次增加积分。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:87controller.EpayNotify controller/topup.go:394

CORE-BILL-048 · POST /api/user/pay

用途与归属:发起易支付。优先沿用,迁入/适配后验收。

鉴权:客户登录身份(沿用上游 UserAuth 支持范围)。

请求:Body 类型:controller.EpayRequest controller/topup.go:127;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 data, message, url(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/api-router.go:116controller.RequestEpay controller/topup.go:270;上游 api.jsonPOST /api/user/pay

CORE-BILL-049 · POST /api/user/stripe/amount

用途与归属:获取Stripe支付金额。优先沿用,迁入/适配后验收。

鉴权:客户登录身份(沿用上游 UserAuth 支持范围)。

请求:Body 类型:controller.StripePayRequest controller/topup_stripe.go:30;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 data, message(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/api-router.go:119controller.RequestStripeAmount controller/topup_stripe.go:144;上游 api.jsonPOST /api/user/stripe/amount

CORE-BILL-050 · POST /api/user/stripe/pay

用途与归属:发起Stripe支付。优先沿用,迁入/适配后验收。

鉴权:客户登录身份(沿用上游 UserAuth 支持范围)。

请求:Body 类型:controller.StripePayRequest controller/topup_stripe.go:30;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 data, message(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/api-router.go:118controller.RequestStripePay controller/topup_stripe.go:154;上游 api.jsonPOST /api/user/stripe/pay

CORE-BILL-051 · GET /api/user/topup

用途与归属:获取所有充值记录。优先沿用,迁入/适配后验收。

鉴权:Admin 员工身份。

请求:处理器读取:query.keyword, query.p, query.page_size。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回200 成功(上游未声明响应 Schema);处理器使用 common.ApiSuccess 包络。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/api-router.go:148controller.GetAllTopUps controller/topup.go:541;上游 api.jsonGET /api/user/topup

CORE-BILL-052 · POST /api/user/topup

用途与归属:TopUp。优先沿用,迁入/适配后验收。

鉴权:客户登录身份(沿用上游 UserAuth 支持范围)。

请求:Body 类型:controller.topUpRequest controller/user.go:1190;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;代码 JSON/映射中观察到 data, message, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:115controller.TopUp controller/user.go:1235

CORE-BILL-053 · POST /api/user/topup/complete

用途与归属:管理员完成充值。优先沿用,迁入/适配后验收。

鉴权:Admin 员工身份。

请求:Body 类型:controller.AdminCompleteTopupRequest controller/topup.go:565;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回200 成功(上游未声明响应 Schema);处理器使用 common.ApiSuccess 包络。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:以支付事件/交易与订单唯一关联去重;验证金额、币种、环境和状态机,重复成功回调返回同结果,不再次增加积分。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/api-router.go:149controller.AdminCompleteTopUp controller/topup.go:570;上游 api.jsonPOST /api/user/topup/complete

CORE-BILL-054 · GET /api/user/topup/info

用途与归属:获取充值信息。优先沿用,迁入/适配后验收。

鉴权:客户登录身份(沿用上游 UserAuth 支持范围)。

请求:自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回200 成功(上游未声明响应 Schema);处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 amount_options, color, creem_products, discount, enable_creem_topup, enable_online_topup, enable_redemption, enable_stripe_topup, enable_waffo_pancake_topup, enable_waffo_topup, min_topup, name, pay_methods, payment_compliance_confirmed, payment_compliance_terms_version, stripe_min_topup, topup_link, type, waffo_min_topup, waffo_pancake_min_topup, waffo_pay_methods(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/api-router.go:113controller.GetTopUpInfo controller/topup.go:25;上游 api.jsonGET /api/user/topup/info

CORE-BILL-055 · GET /api/user/topup/self

用途与归属:获取用户充值记录。优先沿用,迁入/适配后验收。

鉴权:客户登录身份(沿用上游 UserAuth 支持范围)。

请求:处理器读取:query.keyword, query.p, query.page_size。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回200 成功(上游未声明响应 Schema);处理器使用 common.ApiSuccess 包络。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/api-router.go:114controller.GetUserTopUps controller/topup.go:515;上游 api.jsonGET /api/user/topup/self

CORE-BILL-056 · POST /api/user/waffo-pancake/amount

用途与归属:RequestWaffoPancakeAmount。优先沿用,迁入/适配后验收。

鉴权:客户登录身份(沿用上游 UserAuth 支持范围)。

请求:Body 类型:controller.WaffoPancakePayRequest controller/topup_waffo_pancake.go:21;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;代码 JSON/映射中观察到 data, message(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:123controller.RequestWaffoPancakeAmount controller/topup_waffo_pancake.go:25

CORE-BILL-057 · POST /api/user/waffo-pancake/pay

用途与归属:RequestWaffoPancakePay。优先沿用,迁入/适配后验收。

鉴权:客户登录身份(沿用上游 UserAuth 支持范围)。

请求:Body 类型:controller.WaffoPancakePayRequest controller/topup_waffo_pancake.go:21;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;代码 JSON/映射中观察到 checkout_url, data, expires_at, message, order_id, session_id, token, token_expires_at(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:124controller.RequestWaffoPancakePay controller/topup_waffo_pancake.go:342

CORE-BILL-058 · POST /api/user/waffo/amount

用途与归属:RequestWaffoAmount。优先沿用,迁入/适配后验收。

鉴权:客户登录身份(沿用上游 UserAuth 支持范围)。

请求:Body 类型:controller.WaffoPayRequest controller/topup_waffo.go:107;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;代码 JSON/映射中观察到 data, message(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:121controller.RequestWaffoAmount controller/topup_waffo.go:114

CORE-BILL-059 · POST /api/user/waffo/pay

用途与归属:RequestWaffoPay。优先沿用,迁入/适配后验收。

鉴权:客户登录身份(沿用上游 UserAuth 支持范围)。

请求:Body 类型:controller.WaffoPayRequest controller/topup_waffo.go:107;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;代码 JSON/映射中观察到 data, message, order_id, payment_url(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:122controller.RequestWaffoPay controller/topup_waffo.go:147

CORE-BILL-060 · POST /api/waffo-pancake/webhook/:env

用途与归属:WaffoPancakeWebhook。优先沿用,迁入/适配后验收。

鉴权:支付通知:验签/环境/订单/金额核对,不能以无登录理解为无认证。

请求:Path:env(必填;以实际路由名为准)。处理器读取:path.env, header.X-Waffo-Signature。Body/表单由下方处理器定义;上游未提供完整 Schema,本项要求迁入时补出字段白名单、必填、类型、默认和限制,缺失不作为“任意 JSON”开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:以支付事件/交易与订单唯一关联去重;验证金额、币种、环境和状态机,重复成功回调返回同结果,不再次增加积分。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:67controller.WaffoPancakeWebhook controller/topup_waffo_pancake.go:431

CORE-BILL-061 · POST /api/waffo/webhook

用途与归属:WaffoWebhook。优先沿用,迁入/适配后验收。

鉴权:支付通知:验签/环境/订单/金额核对,不能以无登录理解为无认证。

请求:处理器读取:header.X-SIGNATURE。Body/表单由下方处理器定义;上游未提供完整 Schema,本项要求迁入时补出字段白名单、必填、类型、默认和限制,缺失不作为“任意 JSON”开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构。

业务与副作用:客户充值和消费由 Core 唯一写入;人民币实付、到账积分与赠送分列。先校验身份/订单/价格,支付通知验签并去重;操作价格快照不可随渠道变化;网关内部额度不是客户钱包。

幂等、重试与异常:以支付事件/交易与订单唯一关联去重;验证金额、币种、环境和状态机,重复成功回调返回同结果,不再次增加积分。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:64controller.WaffoWebhook controller/topup_waffo.go:336

On this page

Core:充值、套餐、价格与积分CORE-BILL-001 · POST /api/creem/webhookCORE-BILL-002 · GET /api/group/CORE-BILL-003 · GET /api/option/model_pricingCORE-BILL-004 · PATCH /api/option/model_pricingCORE-BILL-005 · POST /api/option/model_pricing/convertCORE-BILL-006 · POST /api/option/model_pricing/previewCORE-BILL-007 · POST /api/option/payment_complianceCORE-BILL-008 · POST /api/option/waffo-pancake/subscription-productCORE-BILL-009 · GET /api/option/waffo-pancake/subscription-product-optionsCORE-BILL-010 · GET /api/ratio_configCORE-BILL-011 · GET /api/redemption/CORE-BILL-012 · POST /api/redemption/CORE-BILL-013 · PUT /api/redemption/CORE-BILL-014 · DELETE /api/redemption/:idCORE-BILL-015 · GET /api/redemption/:idCORE-BILL-016 · POST /api/redemption/batchCORE-BILL-017 · DELETE /api/redemption/invalidCORE-BILL-018 · GET /api/redemption/searchCORE-BILL-019 · POST /api/stripe/webhookCORE-BILL-020 · POST /api/subscription/admin/bindCORE-BILL-021 · GET /api/subscription/admin/plansCORE-BILL-022 · POST /api/subscription/admin/plansCORE-BILL-023 · PATCH /api/subscription/admin/plans/:idCORE-BILL-024 · PUT /api/subscription/admin/plans/:idCORE-BILL-025 · POST /api/subscription/admin/plans/:id/subscriptions/resetCORE-BILL-026 · DELETE /api/subscription/admin/user_subscriptions/:idCORE-BILL-027 · POST /api/subscription/admin/user_subscriptions/:id/invalidateCORE-BILL-028 · GET /api/subscription/admin/users/:id/subscriptionsCORE-BILL-029 · POST /api/subscription/admin/users/:id/subscriptionsCORE-BILL-030 · POST /api/subscription/admin/users/:id/subscriptions/resetCORE-BILL-031 · POST /api/subscription/balance/payCORE-BILL-032 · POST /api/subscription/creem/payCORE-BILL-033 · GET /api/subscription/epay/notifyCORE-BILL-034 · POST /api/subscription/epay/notifyCORE-BILL-035 · POST /api/subscription/epay/payCORE-BILL-036 · GET /api/subscription/epay/returnCORE-BILL-037 · POST /api/subscription/epay/returnCORE-BILL-038 · GET /api/subscription/plansCORE-BILL-039 · GET /api/subscription/selfCORE-BILL-040 · PUT /api/subscription/self/preferenceCORE-BILL-041 · POST /api/subscription/stripe/payCORE-BILL-042 · POST /api/subscription/waffo-pancake/payCORE-BILL-043 · POST /api/user/aff_transferCORE-BILL-044 · POST /api/user/amountCORE-BILL-045 · POST /api/user/creem/payCORE-BILL-046 · GET /api/user/epay/notifyCORE-BILL-047 · POST /api/user/epay/notifyCORE-BILL-048 · POST /api/user/payCORE-BILL-049 · POST /api/user/stripe/amountCORE-BILL-050 · POST /api/user/stripe/payCORE-BILL-051 · GET /api/user/topupCORE-BILL-052 · POST /api/user/topupCORE-BILL-053 · POST /api/user/topup/completeCORE-BILL-054 · GET /api/user/topup/infoCORE-BILL-055 · GET /api/user/topup/selfCORE-BILL-056 · POST /api/user/waffo-pancake/amountCORE-BILL-057 · POST /api/user/waffo-pancake/payCORE-BILL-058 · POST /api/user/waffo/amountCORE-BILL-059 · POST /api/user/waffo/payCORE-BILL-060 · POST /api/waffo-pancake/webhook/:envCORE-BILL-061 · POST /api/waffo/webhook