跳到正文
Indiana
控制台
文档
章节目录 / Funnel 操作协议

Funnel 操作协议

启动、读取、身份关联、业务节点与事件的凭据和请求。

SDK 0.0.1更新于

统一运行协议

POST /api/v1/funnels 使用 operation。start 使用具备 sessions:create 与 funnels:run 的服务端 Key;运行操作使用该运行的 gg_fr_ 凭据。独立 native_receipt 恢复使用宿主后端 Key(billing:write 与 funnels:run)及当前 gg_ct_ 客户会话双鉴权,不依赖运行凭证。客户认证另传当前登录用户的 gg_ct_ 凭据。

操作与输入
operation输入
decidefunnelId, requestId, customerId, attributes; backend API key
read_decisiondecisionId; backend API key
feature_configfunnelId; backend API key
report_usedeventId, decisionId, occurredAt, reference?; backend API key
renew_runrunId, customerId; backend API key
signalrunId, nodeId, eventName, eventId, data; backend API key; sessions:create + funnels:run
read_resultsrunId; backend API key; sessions:create + funnels:run
startsource: funnel/id | paywall/id | trigger/key; requestId; customerToken (customer or guest session); locale?, commerce?, parameters?
getcustomerToken?, data?
resumeoriginal requestId; customerToken?
answersrequestId, nodeId, revision, answers
advancerequestId, nodeId, revision, output, answers
executerequestId, nodeId, revision, intent: begin | confirm | cancel | fail; productVersionId?; nativeEvidence?
linkrequestId, nodeId, revision, customerToken
back / shown / closerequestId, nodeId, revision
acknowledgerequestId, nodeId, revision, receiptId
native_receiptrequestId, customerToken, orderId, receiptId, nativeEvidence: proof | null; backend API key

操作与输入

  • decide

    输入
    funnelId, requestId, customerId, attributes; backend API key
  • read_decision

    输入
    decisionId; backend API key
  • feature_config

    输入
    funnelId; backend API key
  • report_used

    输入
    eventId, decisionId, occurredAt, reference?; backend API key
  • renew_run

    输入
    runId, customerId; backend API key
  • signal

    输入
    runId, nodeId, eventName, eventId, data; backend API key; sessions:create + funnels:run
  • read_results

    输入
    runId; backend API key; sessions:create + funnels:run
  • start

    输入
    source: funnel/id | paywall/id | trigger/key; requestId; customerToken (customer or guest session); locale?, commerce?, parameters?
  • get

    输入
    customerToken?, data?
  • resume

    输入
    original requestId; customerToken?
  • answers

    输入
    requestId, nodeId, revision, answers
  • advance

    输入
    requestId, nodeId, revision, output, answers
  • execute

    输入
    requestId, nodeId, revision, intent: begin | confirm | cancel | fail; productVersionId?; nativeEvidence?
  • link

    输入
    requestId, nodeId, revision, customerToken
  • back / shown / close

    输入
    requestId, nodeId, revision
  • acknowledge

    输入
    requestId, nodeId, revision, receiptId
  • native_receipt

    输入
    requestId, customerToken, orderId, receiptId, nativeEvidence: proof | null; backend API key

交互响应包含 scope 与 run;启动另外返回 runToken。run 固定 Funnel 版本、当前节点、revision、私有客户数据和指令,分别返回 runExpiresAt 与 credentialExpiresAt。浏览器不能指定客户 ID、下一节点或支付成功。JSON 决策查询返回 decisionId 和已提交的 decision.value、state、validUntil;未完成返回 202。

  • createFunnelRunController:get、submit、retry、resume、identify、link、subscribe、reset。超时保留 pendingCommand,retry 重放原 requestId。
  • showFunnelRun:支持屏幕的弹窗、面板、全屏和嵌入展示;认证、支付和账户链接由宿主回调完成。
  • 查看、刷新、过滤、分页及预览均不执行业务动作。优惠领取、收费、取消续费等只由对应节点及原动作回执执行。
  • createFunnelDecisionClient:传入已验证 customerId 与完整 attributes JSON。value 是任意业务 JSON;同一 allocationScopeId 沿用首次结果,包括 null、0 和零优惠对象。state 表示活动、过期或停用。features().init/refresh 拉取规则后同步判断。reportUsed 只记录调用方使用报告。
  • renewFunnelRun(options, { runId, customerId }):仅限后端,为同一已识别客户的运行轮换浏览器凭证,返回新的 runToken 与 credentialExpiresAt;不启动新运行,也不延长 runExpiresAt。
  • JSON 决策查询需要 sessions:create 与 funnels:run。submit 以 Prefer: respond-async 接收后立即返回当前状态,pending 为 HTTP 202;decide 最多等待 30 秒。DECISION_ACCEPTANCE_UNKNOWN 表示首次接收结果未知,复用原 requestId 和完整输入重试;DECISION_PENDING 保留 decisionId,read 原决策继续读取,不取消后台执行。