跳转到主要内容

process()

type ProcessResult =
  | { success: true; status: 200; data: { payer: string; txHash: string } }
  | { success: false; status: 402; errorStage: "parse" | "verify"; response: Response402 }
  | { success: false; status: 500; errorStage: "settle"; response: Response402; error: string };

分步

  • parse: 解析失败 → 402
  • verify: 验证失败 → 402
  • settle: 结算失败 → 500(通常为链/网络问题)

其他返回类型

// parse()
type ParseResult =
  | { success: true; data: ParsedPayment }
  | { success: false; response402: Response402 };

// verify()
type VerifyResult =
  | { success: true; payer: string }
  | { success: false; error: string };

// settle()
type SettleResult =
  | { success: true; txHash: string; network: string }
  | { success: false; error: string };

// initialize()
type InitResult =
  | { success: true; detected?: number; total?: number }
  | { success: false; error: string };

示例:统一处理

const result = await server.process(header, requirements);
if (result.success) {
  res.json({ payer: result.data.payer, txHash: result.data.txHash });
} else {
  res.status(result.status).json(result.response);
}