跳转到主要内容

Documentation Index

Fetch the complete documentation index at: https://waffo.com/docs/llms.txt

Use this file to discover all available pages before exploring further.

两种收银台模式

Waffo 支持两种收银台集成模式,商户根据自身需求选择:
  • Waffo 托管收银台(Checkout):Waffo 提供完整支付页面,用户在 Waffo 侧选择支付方式并完成支付
  • 商户自建收银台(API 直连):商户自己构建支付页面,用户在商户侧选择支付方式,商户通过 API 参数指定支付通道

方案对比

维度Waffo Checkout商户自建收银台
支付方式选择用户在 Waffo 收银台选择用户在商户页面选择
集成复杂度低(重定向即可)高(自建 UI + 指定支付方式参数)
支付方式覆盖自动全覆盖,新增支付方式无需改代码需自行维护支持列表
PCI DSS 合规Waffo 负责商户需自行处理(卡支付场景)
UI 定制化支持主题色、Logo、语言等完全自定义
适用场景大多数商户有自建收银台的大型商户

Waffo Checkout 传参方案

用户在 Waffo 侧选择支付方式,商户不需要传 payMethodType / payMethodName,Waffo 收银台自动展示所有可用支付方式。 对于以下支付方式,建议传 payMethodType(不传 payMethodName):
支付方式建议传参原因
卡支付payMethodType: "CREDITCARD,DEBITCARD"Waffo 通过 BIN 自动识别卡类型,减少用户选择成本
VA(虚拟账户)payMethodType: "VA"用户在收银台选择具体银行
其他不传收银台自动展示所有可用方式

最简传参(不指定支付方式)

{
  "paymentRequestId": "REQ_20260420_001",
  "merchantOrderId": "ORDER_001",
  "orderCurrency": "IDR",
  "orderAmount": "50000",
  "orderDescription": "商品描述",
  "orderRequestedAt": "2026-04-20T12:00:00Z",
  "notifyUrl": "https://merchant.com/webhook",
  "merchantInfo": {
    "merchantId": "M000001"
  },
  "userInfo": {
    "userId": "user_001",
    "userTerminal": "WEB"
  },
  "paymentInfo": {
    "productName": "ONE_TIME_PAYMENT"
  }
}

卡支付建议传参

{
  "paymentRequestId": "REQ_20260420_002",
  "merchantOrderId": "ORDER_002",
  "orderCurrency": "USD",
  "orderAmount": "29.99",
  "orderDescription": "Premium Plan",
  "orderRequestedAt": "2026-04-20T12:00:00Z",
  "notifyUrl": "https://merchant.com/webhook",
  "merchantInfo": {
    "merchantId": "M000001"
  },
  "userInfo": {
    "userId": "user_001",
    "userTerminal": "WEB"
  },
  "paymentInfo": {
    "productName": "ONE_TIME_PAYMENT",
    "payMethodType": "CREDITCARD,DEBITCARD"
  }
}

商户自建收银台传参方案

用户已在商户页面选择了具体支付方式,需要通过参数告诉 Waffo 走哪个通道。
场景传参方式示例
用户选了 DANApayMethodType + payMethodName"EWALLET" + "DANA"
用户选了信用卡payMethodType(不传 payMethodName"CREDITCARD,DEBITCARD"(Waffo 通过 BIN 自动识别)
用户选了 VApayMethodType"VA"(用户在 Waffo 侧选择具体银行)
卡支付:不需要传 payMethodName,传 payMethodType 即可。Waffo 通过卡号 BIN 自动识别 Visa / Mastercard / JCB / AMEX。VA:只传 payMethodType: "VA",用户在 Waffo 侧选择具体银行。电子钱包:需传 payMethodName 指定具体钱包(如 DANA、GCash),目的是跳过 Waffo 收银台直达支付。Waffo 收银台本身支持所有支付方式的处理流程,传 payMethodName 是为了让用户直接进入指定钱包的支付流程。

电子钱包直连(DANA)

{
  "paymentRequestId": "REQ_20260420_003",
  "merchantOrderId": "ORDER_003",
  "orderCurrency": "IDR",
  "orderAmount": "50000",
  "orderDescription": "商品描述",
  "orderRequestedAt": "2026-04-20T12:00:00Z",
  "notifyUrl": "https://merchant.com/webhook",
  "merchantInfo": {
    "merchantId": "M000001"
  },
  "userInfo": {
    "userId": "user_001",
    "userTerminal": "WEB"
  },
  "paymentInfo": {
    "productName": "ONE_TIME_PAYMENT",
    "payMethodType": "EWALLET",
    "payMethodName": "DANA"
  }
}

卡支付直连

{
  "paymentRequestId": "REQ_20260420_004",
  "merchantOrderId": "ORDER_004",
  "orderCurrency": "USD",
  "orderAmount": "29.99",
  "orderDescription": "Premium Plan",
  "orderRequestedAt": "2026-04-20T12:00:00Z",
  "notifyUrl": "https://merchant.com/webhook",
  "merchantInfo": {
    "merchantId": "M000001"
  },
  "userInfo": {
    "userId": "user_001",
    "userTerminal": "WEB"
  },
  "paymentInfo": {
    "productName": "ONE_TIME_PAYMENT",
    "payMethodType": "CREDITCARD,DEBITCARD"
  }
}

VA 直连

{
  "paymentRequestId": "REQ_20260420_005",
  "merchantOrderId": "ORDER_005",
  "orderCurrency": "IDR",
  "orderAmount": "100000",
  "orderDescription": "商品描述",
  "orderRequestedAt": "2026-04-20T12:00:00Z",
  "notifyUrl": "https://merchant.com/webhook",
  "merchantInfo": {
    "merchantId": "M000001"
  },
  "userInfo": {
    "userId": "user_001",
    "userTerminal": "WEB"
  },
  "paymentInfo": {
    "productName": "ONE_TIME_PAYMENT",
    "payMethodType": "VA"
  }
}

嵌入方式

收到 orderAction 后,有三种方式将用户引导到支付页面:
方式适用场景说明
重定向Web 默认方式window.location.href = orderAction.webUrl
iframe 嵌入不希望用户离开商户页面需配置 allow="payment" 和 Referrer Policy
App WebView移动 App需确认 WebView 支持外部跳转、下载/复制、URL 参数保真等能力
详细注意事项参见 Checkout 集成步骤支付方式集成注意事项