请款

介绍

银行卡交易中,一般会包含授权和请款两个步骤:

授权:指在顾客提交支付时,向发卡行请求确认这笔交易是否可以进行。当发卡行允许授权,银行会冻结相应金额,但并不会真正划账。

请款:指商户在完成商品交付或服务提供后,向收单机构发起请求,将之前已授权的金额真正划转到账。

请款分为两种模式:

  • 自动请款,在授权的同时完成请款。默认为自动请款。
  • 手动请款,授权后手动发起请款。

注意请款需要在授权后的 7 个自然日内完成,否则该笔交易将自动撤销。

授权

设置自动请款

自动请款是默认的请款方式,在授权成功后自动完成请款,禁止手动请款。

webhook 通知包含授权成功通知

请求示例 Initiate Transaction

{
    ...
    "capture_method": "AUTOMATIC",
    "merchant_id": "18356675194960",
    "payment_type": "PURCHASE",
    "trans_id": "m1721xxx938999",
    "timestamp": 1742816738605,
    "currency": "USD",
    "amount": "300",
    "payment": {
        "payment_method": "BANKCARD",
        "shopper_reference": "myuserid001",
        "card_no": "4242424242424242",
        "exp_year": "2031",
        "exp_month": "07",
        "cvv": "123",
        "holder_name": "lisa"
    }
    ...
}

设置手动请款

手动请款需要商户在授权成功后,您可以在收到授权成功后任何时间手动发起请款(例如在货物发货后),并且您可以在请款前任何时间取消付款(例如发货有问题)

webhook 通知包含授权成功通知

请求示例 Initiate Transaction

{
    ...
    "capture_method": "MANUAL",
    "merchant_id": "18356675194960",
    "payment_type": "PURCHASE",
    "trans_id": "m1721xxx938999",
    "timestamp": 1742816738605,
    "currency": "USD",
    "amount": "300",
    "payment": {
        "payment_method": "BANKCARD",
        "shopper_reference": "myuserid001",
        "card_no": "4242424242424242",
        "exp_year": "2031",
        "exp_month": "07",
        "cvv": "123",
        "holder_name": "lisa"
    }
    ...
}

请款

请求示例 Capture

{
  "merchant_id": "18356675194960",
  "order_id": "GW20620xxxxx6999",
  "currency": "USD",
  "amount": "300",
  "timestamp": 1746608125354,
  "capture_final": true
}

成功响应示例

{
  "ret_code": "000000",
  "ret_msg": "Success",
  "data": {
    "merchant_id": "18356675194960",
    "order_id": "GW20620xxxxx6999",
    "currency": "USD",
    "amount": "300"
  }
}

失败响应示例

{
  "ret_code": "010000",
  "ret_msg": "Invalid request"
}

部分请款

请求示例 Capture

{
  "merchant_id": "18356675194960",
  "order_id": "GW20620xxxxx6999",
  "currency": "USD",
  "amount": "100",
  "timestamp": 1746608125354,
  "capture_final": true
}

成功响应示例

{
  "ret_code": "000000",
  "ret_msg": "Success",
  "data": {
    "merchant_id": "18356675194960",
    "order_id": "GW20620xxxxx6999",
    "currency": "USD",
    "amount": "100"
  }
}

失败响应示例

{
  "ret_code": "010000",
  "ret_msg": "Invalid request"
}

结果通知

参考 Webhook