"tokenConfig": { "type": "bearer", "configFile": "~/.openclaw/voc-credentials.json", "tokenField": "vocToken", "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7", "resolutionOrder": ["configFile", "currentToken"], "onMissing": { "action": "showPaymentQR", "qrCodeUrl": "", "paymentCheckEndpoint": "", "pollingIntervalMs": 3000, "pollingTimeoutMs": 300000, "onPaymentSuccess": "retrySkillWithNewToken", "title": "扫码开通 VOC-AI 数据服务", "message": "请扫描下方二维码完成支付,支付成功后将自动获取 Token 并继续执行。" }, "onBalanceInsufficient": { "action": "showPaymentQR", "qrCodeUrl": "", "paymentCheckEndpoint": "", "pollingIntervalMs": 3000, "pollingTimeoutMs": 300000, "onPaymentSuccess": "retrySkillWithNewToken", "title": "VOC-AI Token 余额不足,请扫码充值", "message": "当前 Token 余额不足,请扫描二维码充值,支付完成后将自动继续执行。" } }, "errorHandling": { "balanceInsufficient": { "conditions": [ { "responseField": "code", "operator": "in", "value": [-2, -3, -10, 402, 429] }, { "responseField": "msg", "operator": "contains", "value": ["余额不足", "insufficient", "balance", "quota"] }, { "responseField": "message", "operator": "contains", "value": ["余额不足", "insufficient", "balance"] } ], "matchMode": "any", "trigger": "tokenConfig.onBalanceInsufficient" }, "unauthorized": { "conditions": [ { "responseField": "code", "operator": "in", "value": [401, 403] }, { "responseField": "msg", "operator": "contains", "value": ["unauthorized", "token", "invalid", "auth"] } ], "matchMode": "any", "trigger": "tokenConfig.onMissing" } }