auth-credit-deploy.md 3.3 KB

authCredit 云函数部署说明

当前定位

cloud-functions/10-authCreditManager.js 现在是 Parse/APIG 账号积分网关,不是自建账号系统。

它不再创建这些旧表:

  • AppUser
  • AppSession
  • UserCreditAccount
  • CreditLedger
  • CreditReservation
  • RechargeOrder

当前项目真实数据来源是:

  • 登录用户:Parse _User
  • 登录态:X-Parse-Session-Token
  • 视频工作流余额:APIGAuth.count
  • 已用额度:APIGAuth.used
  • 最近扣费状态:APIGAuth.lastBilling
  • 充值订单:现有 /api/apig/created-apigorder/api/apig/saveRecharge

为什么重写

旧版 10-authCreditManager.js 从创建开始一直未部署,且已经和当前项目脱节。

如果直接部署旧版,会出现两套账:

  1. 用户中心和充值页读取 APIGAuth 余额。
  2. 旧云函数扣 UserCreditAccount 余额。

这样会导致用户明明在 APIG 里有余额,但生成链路却查到另一套余额为 0。

部署步骤

  1. 打开 fmode 云函数管理平台。
  2. 新建或更新 10-authCreditManager.js 对应云函数。
  3. 粘贴 cloud-functions/10-authCreditManager.js 的完整内容。
  4. 配置环境变量。
  5. 保存部署,复制云函数 objectId。
  6. 填入 src/app/services/cloud-functions.ts

    authCredit: '你的云函数 objectId'
    
  7. 执行前端构建和云函数 smoke 检查。

环境变量

变量 必填 默认值 说明
PARSE_API_HOST https://server.fmode.cn Parse/API 主机
PARSE_APP_ID ncloudmaster Parse Application ID
VIDEO_WORKFLOW_APIG_ID 6pFf6EAdKT 当前短视频 AI 工作流 APIG ID
VIDEO_WORKFLOW_APIG_TITLE 短视频AI工作流 余额上下文展示标题
VIDEO_WORKFLOW_APIG_UNIT_PRICE_CNY 0.1 估算单积分价格

支持 action

action 说明
me 根据 sessionToken 读取 Parse 当前用户
balance 读取或创建当前用户的视频工作流 APIGAuth,返回 count/used
ledger 返回最近一次 APIGAuth.lastBilling 形成的轻量流水
rechargeContext 返回充值需要的 authId/userId/payUserId/apig/priceStep
reserve APIGAuth.count 上预扣积分,并写入 lastBilling
commitReservation 把最近一次预扣标记为已确认
refundReservation 把最近一次预扣退回
createRechargeOrder 代理创建 APIGOrder
saveRecharge 代理保存充值结果,并写回 APIGAuth 余额

不再支持的 action

这些 action 会返回 501

  • register
  • login
  • changePassword
  • adminListUsers
  • adminCreateUser
  • adminAdjustCredit

原因:当前项目使用 Parse 手机验证码登录和 APIG 余额体系,不再由该云函数自建账号、密码、积分表。

前端注意

当前 AuthCreditService 已经支持云函数优先路径。

配置 src/app/services/cloud-functions.ts 里的 authCredit 后,以下能力会优先走本云函数;未配置时保留本地开发兜底:

  • getVideoWorkflowApigBalance
  • getVideoWorkflowRechargeContext
  • createApigOrder
  • saveApigRecharge

这样才能彻底做到:

  • 前端不直接读写 APIGAuth
  • 前端不直接创建 APIGOrder
  • 余额查询、充值、扣费都由服务端统一校验 sessionToken