跳转到主要内容

状态概览

Ramps 从创建到完成会经历多个状态。了解这些状态有助于您向用户提供准确的更新。

状态流程

获取 Ramp 状态

GET /api/v2/ramps/{rampId}
const checkRampStatus = async (rampId) => {
  const response = await fetch(
    `https://teste-94u93qnn.uc.gateway.dev/api/v2/ramps/${rampId}`,
    {
      headers: {
        'Authorization': `Bearer ${token}`
      }
    }
  );
  
  const ramp = await response.json();
  return ramp.status;
};

状态描述

状态描述用户消息
CREATEDRamp 已初始化”请完成支付”
CASH_IN_PROCESSING正在验证支付”正在处理您的支付”
CASH_IN_COMPLETED支付已确认”支付已收到,正在转换”
CONVERSION_PROCESSING正在转换货币”正在转换资金”
CASH_OUT_PROCESSING正在发送到目的地”正在交付资金”
COMPLETED交易完成”交易完成!“
FAILED交易失败”交易失败”
CANCELED用户/系统取消”交易已取消”

状态更新的 Webhooks

订阅 ramp 事件:
app.post('/webhooks/killb', (req, res) => {
  const { event, data } = req.body;
  
  switch(event) {
    case 'ramp.cash_in_completed':
      updateUI(data.id, '支付已确认');
      break;
    case 'ramp.completed':
      updateUI(data.id, '交易完成');
      notifyUser(data.userId, '资金已交付');
      break;
    case 'ramp.failed':
      updateUI(data.id, '交易失败');
      notifyUser(data.userId, data.details);
      break;
  }
  
  res.status(200).json({ received: true });
});

状态历史

获取完整的状态历史:
GET /api/v2/ramps/{rampId}/status-history
响应
[
  {
    "status": "CREATED",
    "timestamp": "2024-01-15T10:30:00.000Z"
  },
  {
    "status": "CASH_IN_PROCESSING",
    "timestamp": "2024-01-15T10:35:00.000Z"
  },
  {
    "status": "COMPLETED",
    "timestamp": "2024-01-15T10:45:00.000Z"
  }
]

最佳实践

Webhooks 提供即时更新
如果 webhook 失败,每 10-30 秒轮询一次
向用户显示当前状态和进度条
检查 details 字段以了解失败原因

下一步