第三方支付

统一下单 / 订单查询 / 订单退款三件套。支持支付宝、微信、QQ 钱包等支付方式,PC 与移动端通用:按返回的 pay_type 渲染二维码或打开收银台地址即可。

/api/pay/

服务说明

支付服务把「下单 → 用户付款 → 到账 / 发货」这条链路收敛成三个接口:/api/pay/create 下单拿到支付参数,/api/pay/query 查询并同步订单状态,/api/pay/refund 退款。调用方不需要对接各支付平台的协议与签名。

支付结果只认异步回调与主动查单,页面跳转不算:用户付款完成后,平台会异步通知本站,本站校验签名与金额后推进订单(给调用项目的点数余额充值);通知偶有丢失,因此调用方可在支付后轮询 query 接口兜底,两边都能触发且只会发货一次。

PC 与移动端同一条路:支付形态由平台按 method / device 返回 ——pay_info 直接在页面渲染即可(qrcode 出二维码,jump 打开收银台地址)。移动端 H5 / 内嵌 WebView 用 method=jump + device=mobile,原生 App 内唤起用 method=app,微信内用 device=wechat。

响应格式

所有接口返回同一个 JSON 信封,业务数据都在 data 里:

{
  "code": 10000,
  "msg": "成功",
  "data": { ... }
}
  • code:业务状态码,10000 表示成功;其余为各类错误,完整清单见「错误码」页。
  • msg:给人看的提示文案,可直接展示给终端用户,但不要用它做逻辑判断。
  • data:业务数据;出错时通常为 null。各接口 data 的具体字段见该接口的「响应说明」。

判断成功与否请看 code,不要依赖 HTTP 状态码。 查看完整错误码

易支付

ezfp.cn(聚合支付网关,RSA 签名) 需签名

聚合支付网关,网关地址与商户凭据(商户 ID + 商户私钥 + 平台公钥)由本站后台「支付设置」维护,调用方无需也不应持有。下单的 notify_url 由本站固定为/pay/notify/ezfp/,调用方不需要传。实际可用的支付方式取决于商户用户组开通了哪些,未开通的方式下单时平台会直接报错。

POST /api/pay/create 累计调用 0 次 免费 服务价

统一下单

创建一笔支付订单,返回支付参数(二维码内容或收银台跳转地址)与商户订单号。

必填。与商户用户组开通的方式一致,否则平台报错

必填。大于 0 的数字,两位小数;不得低于后台设置的单笔最低金额

选填。不传则用第一个启用的渠道(当前仅 ezfp)

选填。用户在收银台看到的商品名,不传则用「订单支付」

选填。只影响用户付款后浏览器跳回哪里,不参与到账判定

选填。原样回传,便于对账时把订单与自己系统的业务单关联起来

选填。移动端 H5 / WebView 建议 jump;原生 App 用 app

选填。移动端建议 mobile,微信内 wechat

  • 拿到返回后按 pay_type 渲染:qrcode 直接把 pay_info 做成二维码;jump 用浏览器 / WebView 打开 pay_info(收银台页自带二维码与付款入口)。实测同一笔微信支付在 method=web 下返回 qrcode,在 method=jump 下返回 https 收银台地址,故不要硬编码某一种形态。
  • 到账只认异步回调与主动查单:return_url 的页面跳转只代表用户看到了结果页,不能作为发货依据;请以 query 接口的 paid 或本站异步通知后的余额变化为准。
  • 只扣一次:同一订单重复回调 / 回调与查单同时命中时,本站用行锁 + 状态判断保证发货只发生一次。
  • 移动端无需自备二维码库:用 method=jump 时返回的是普通网页地址,PC 浏览器、手机浏览器、WebView 都能直接打开。
  • 下单本身不消耗项目点数(本服务单价为 0 点/次),因此余额为 0 的项目也能调用本接口给自己的项目充值。
响应说明 外层统一格式
字段 类型 说明
out_trade_no string 商户订单号(本站生成,查询 / 退款都用它)
trade_no string 平台订单号(部分渠道下单时为空,付款后才有)
provider string 渠道标识,当前为 ezfp
pay_type string 支付形态:qrcode=二维码内容 / jump=收银台地址
amount string 金额(元,两位小数)
subject string 商品名称
status string 订单状态:pending 待支付 / paid 已支付 / partial_refunded 部分退款 / refunded 已退款 / failed 下单失败 / closed 已关闭
pay_info string 支付参数:pay_type=qrcode 时是二维码内容,jump 时是收银台地址
param string 业务扩展参数,原样返回
返回示例
{
  "out_trade_no": "XY20261002120000123456",
  "trade_no": "2026100222001412345678",
  "provider": "ezfp",
  "pay_type": "qrcode",
  "amount": "1.00",
  "subject": "账户充值",
  "status": "pending",
  "pay_info": "weixin://wxpay/bizpayurl?pr=AbCdEfG",
  "param": ""
}
POST /api/pay/query 累计调用 0 次 免费 服务价

订单查询

按商户订单号查询订单,并把平台最新状态同步回本站(已支付会补发货)。

必填。下单接口返回的 out_trade_no

  • 只能查本调用方自己下的单:订单按 APPID 归属隔离,别人的单一律返回「订单不存在」。
  • 查到平台已支付且本站订单还没推进时,本接口会当场补发货(按后台汇率给调用项目加点数),因此「回调没收到」也能靠轮询查单兜底。
  • 已下单后建议每 3~5 秒查一次,直到 paid=true 或超时;不必高频轮询,平台侧订单状态不会瞬间多次跳变。
响应说明 外层统一格式
字段 类型 说明
out_trade_no string 商户订单号(本站生成,查询 / 退款都用它)
trade_no string 平台订单号(部分渠道下单时为空,付款后才有)
provider string 渠道标识,当前为 ezfp
pay_type string 支付形态:qrcode=二维码内容 / jump=收银台地址
amount string 金额(元,两位小数)
subject string 商品名称
status string 订单状态:pending 待支付 / paid 已支付 / partial_refunded 部分退款 / refunded 已退款 / failed 下单失败 / closed 已关闭
pay_info string 支付参数:pay_type=qrcode 时是二维码内容,jump 时是收银台地址
param string 业务扩展参数,原样返回
paid bool 是否已支付(true 时订单已推进并发货)
返回示例
{
  "out_trade_no": "XY20261002120000123456",
  "trade_no": "2026100222001412345678",
  "provider": "ezfp",
  "pay_type": "qrcode",
  "amount": "1.00",
  "subject": "账户充值",
  "status": "paid",
  "pay_info": "weixin://wxpay/bizpayurl?pr=AbCdEfG",
  "param": "",
  "paid": true
}
POST /api/pay/refund 累计调用 0 次 免费 服务价

订单退款

对已支付的订单发起退款;`amount` 留空表示退回剩余可退金额。

必填。要退款的订单号

选填。不得大于可退金额(订单金额 − 已退金额)

  • 只能退本调用方自己的订单。退款是否支持分笔、到账时长由支付平台与渠道决定,本接口只负责提交并把结果回写订单。
  • 退款成功后本站订单状态变为 refunded(部分退款为 partial_refunded),累计退款额记在 refund_amount。
  • ⚠️ 已充进调用项目点数的订单退款,点数不会自动扣回 ——需要人工核账时请联系本站管理员。
响应说明 外层统一格式
字段 类型 说明
out_trade_no string 商户订单号(本站生成,查询 / 退款都用它)
trade_no string 平台订单号(部分渠道下单时为空,付款后才有)
provider string 渠道标识,当前为 ezfp
pay_type string 支付形态:qrcode=二维码内容 / jump=收银台地址
amount string 金额(元,两位小数)
subject string 商品名称
status string 订单状态:pending 待支付 / paid 已支付 / partial_refunded 部分退款 / refunded 已退款 / failed 下单失败 / closed 已关闭
pay_info string 支付参数:pay_type=qrcode 时是二维码内容,jump 时是收银台地址
param string 业务扩展参数,原样返回
refund_amount string 累计已退款金额(元)
返回示例
{
  "out_trade_no": "XY20261002120000123456",
  "trade_no": "2026100222001412345678",
  "provider": "ezfp",
  "pay_type": "qrcode",
  "amount": "1.00",
  "subject": "账户充值",
  "status": "refunded",
  "pay_info": "weixin://wxpay/bizpayurl?pr=AbCdEfG",
  "param": "",
  "refund_amount": "1.00"
}
小影API · 通用 API 聚合服务