Velo Pay API 文档

本文档仅用于技术对接 Velo Pay 使用,包含完整的接口说明、签名算法及请求响应规范。

签名算法

签名采用 MD5 加密算法,步骤如下:

1
获取密钥

可在商户后台查看并获取支付密钥。

2
数据拼接

按固定顺序进行拼接,拼接顺序如下:

拼接格式
mid=&ts=&mo=&amount=&key=

若有不存在的字段,则直接拼接空字符串即可。

拼接示例:

  • 所有数据均存在:mid=123&ts=1773141596042&mo=432GZBO8M624KMGX&amount=100.00&key=bhFaaskVPx9GjxWRgv4DuXbGV5sBGKvi
  • 假设 amount 字段不存在:mid=123&ts=1773141596042&mo=432GZBO8M624KMGX&amount=&key=bhFaaskVPx9GjxWRgv4DuXbGV5sBGKvi
3
数据签名
  • 将拼接好的数据进行 MD5 加密得到签名值 sign(32位)
  • 签名校验忽略大小写

请求相关

本文所有请求均遵守以下规范:

项目 说明
网关 https://api.veloshops.online
Request URL 网关/接口URL
Request Method POST
Request Headers content-type: application/json;charset=UTF-8
Request Body JSON 字符串

响应相关

本文所有请求的响应结果均遵守以下格式:

响应格式
{
  "code": 0,
  "message": "success",
  "data": {...}
}

异步回调相关

本文内的所有异步回调遵守上文中的请求相关中的规范,商户接收到请求后的响应规范如下:

响应状态 200 则默认回调成功。若商户响应非 200 则会安排下一次自动推送异步回调。

注意事项

异步回调可能存在多次回调的情况,商户请自行注意处理重复回调后的幂等性。

收款接口

收款下单

POST /portal/payment/create

请求参数

参数名 类型 必选 中文名 说明
mid string 商户ID -
mo string 商户订单号 -
amount string 金额 最大支持两位小数
name string 用户姓名 -
phone string 用户手机号 -
email string 用户邮箱 -
userId string 用户ID -
notifyUrl string 异步通知地址 -
version string 接口版本 固定值 01
ts string 毫秒级时间戳 -
sign string 签名 -
请求示例
{
  "mid": "string",
  "mo": "string",
  "amount": "string",
  "name": "string",
  "phone": "string",
  "email": "string",
  "userId": "string",
  "notifyUrl": "string",
  "version": "string",
  "ts": "string",
  "sign": "string"
}

返回结果

参数名 类型 中文名 说明
code integer 响应状态 0 响应成功,非 0 则为失败
message string 响应描述 -
data object 响应数据 -
» mid string 商户ID -
» mo string 商户订单号 -
» po string 平台订单号 -
» amount string 订单金额 -
» payUrl string 收银台地址 -
响应示例
{
  "code": "integer",
  "message": "string",
  "data": {
    "mid": "string",
    "mo": "string",
    "po": "string",
    "amount": "string",
    "payUrl": "string"
  }
}

收款查询

POST /portal/payment/query

请求参数

参数名 类型 必选 中文名 说明
mid string 商户ID -
mo string 商户订单号 -
version string 接口版本 固定值 01
ts string 毫秒级时间戳 -
sign string 签名 -
请求示例
{
  "mid": "string",
  "mo": "string",
  "version": "string",
  "ts": "string",
  "sign": "string"
}

返回结果

参数名 类型 中文名 说明
code integer 响应状态 0 响应成功,非 0 则为失败
message string 响应描述 -
data object 响应数据 -
» mid string 商户ID -
» mo string 商户订单号 -
» po string 平台订单号 -
» amount string 订单金额 -
» realAmount string 实际交易金额 -
» status string 订单状态 1 待付款 2 成功 3 失败
» payTime number 支付时间 毫秒级时间戳
» utr string UTR -
响应示例
{
  "code": "integer",
  "message": "string",
  "data": {
    "mid": "string",
    "mo": "string",
    "po": "string",
    "amount": "string",
    "realAmount": "string",
    "status": "string",
    "payTime": "number",
    "utr": "string"
  }
}

收款异步通知

POST /收款数据内提供的异步通知地址

请求参数

参数名 类型 必选 中文名 说明
mid string 商户ID -
mo string 商户订单号 -
po string 平台订单号 -
amount string 订单金额 -
realAmount string 实际交易金额 -
status string 订单状态 1 待付款 2 成功 3 失败
payTime number 支付时间 毫秒级时间戳
utr string UTR -
ts string 毫秒级时间戳 -
sign string 签名 -
请求示例
{
  "mid": "string",
  "mo": "string",
  "po": "string",
  "amount": "string",
  "realAmount": "string",
  "status": "string",
  "payTime": "number",
  "utr": "string",
  "ts": "string",
  "sign": "string"
}

付款接口

付款下单

POST /portal/payout/create

请求参数

参数名 类型 必选 中文名 说明
mid string 商户ID -
mo string 商户订单号 -
amount string 下单金额 最大支持两位小数
name string 用户名称 -
phone string 用户手机号 -
email string 用户邮箱 -
userId string 用户ID -
card string 受益人卡号 -
bankName string 银行名称 -
ifsc string IFSC Code -
notifyUrl string 异步通知地址 -
version string 接口版本 固定值 01
ts string 毫秒级时间戳 -
sign string 签名 -
请求示例
{
  "mid": "string",
  "mo": "string",
  "amount": "string",
  "name": "string",
  "phone": "string",
  "email": "string",
  "userId": "string",
  "card": "string",
  "bankName": "string",
  "ifsc": "string",
  "notifyUrl": "string",
  "version": "string",
  "ts": "string",
  "sign": "string"
}

返回结果

参数名 类型 中文名 说明
code string 响应状态 0 响应成功,非 0 则为失败
message string 响应描述 -
data object 响应数据 -
» mid string 商户ID -
» mo string 商户订单号 -
» po string 平台订单号 -
» amount string 订单金额 -
响应示例
{
  "code": "string",
  "message": "string",
  "data": {
    "mid": "string",
    "mo": "string",
    "po": "string",
    "amount": "string"
  }
}

付款查询

POST /portal/payout/query

请求参数

参数名 类型 必选 中文名 说明
mid string 商户ID -
mo string 商户订单号 -
version string 接口版本 固定值 01
ts string 毫秒级时间戳 -
sign string 签名 -
请求示例
{
  "mid": "string",
  "mo": "string",
  "version": "string",
  "ts": "string",
  "sign": "string"
}

返回结果

参数名 类型 中文名 说明
code string 响应状态 0 响应成功,非 0 则为失败
message string 响应描述 -
data object 响应数据 -
» mid string 商户ID -
» mo string 商户订单号 -
» po string 平台订单号 -
» amount string 订单金额 -
» status string 订单状态 1 待付款 2 成功 3 失败
» description string 状态描述 -
» payTime number 支付时间 毫秒级时间戳
» utr string UTR -
响应示例
{
  "code": "string",
  "message": "string",
  "data": {
    "mid": "string",
    "mo": "string",
    "po": "string",
    "amount": "string",
    "status": "string",
    "description": "string",
    "payTime": 0,
    "utr": "string"
  }
}

付款异步通知

POST /付款数据内提供的异步通知地址

请求参数

参数名 类型 必选 中文名 说明
mid string 商户ID -
mo string 商户订单号 -
po string 平台订单号 -
amount string 订单金额 -
status string 订单状态 1 待付款 2 成功 3 失败
description string 状态描述 -
payTime number 支付时间 毫秒级时间戳
utr string UTR -
ts string 毫秒级时间戳 -
sign string 签名 -
请求示例
{
  "mid": "string",
  "mo": "string",
  "po": "string",
  "amount": "string",
  "status": "string",
  "description": "string",
  "payTime": "number",
  "utr": "string",
  "ts": "string",
  "sign": "string"
}

余额查询

POST /portal/balance/query

请求参数

参数名 类型 必选 中文名 说明
mid string 商户ID -
version string 接口版本 固定值 01
ts string 毫秒级时间戳 -
sign string 签名 -
请求示例
{
  "mid": "string",
  "version": "string",
  "ts": "string",
  "sign": "string"
}

返回结果

参数名 类型 中文名 说明
code string 响应状态 0 响应成功,非 0 则为失败
message string 响应描述 -
data object 响应数据 -
» balance string 可用余额 -
» waitSettled string 待结算余额 -
响应示例
{
  "code": "string",
  "message": "string",
  "data": {
    "balance": "string",
    "waitSettled": "string"
  }
}