Skip to content

易支付对接

更新时间:2026/7/26 21:23:52

概述

易支付(EasyPay)是 DaxPay 内置的通用商户支付接入模块,兼容主流易支付协议,适用于小微商户和个人开发者快速接入。

DaxPay 同时提供两套 API:

版本路径前缀签名方式接口能力
V1(兼容旧版)/epay/api/v1/*固定 MD5仅下单(submit/mapi)+ 查单(api),不支持退款/关单
V2(推荐)/epay/api/v2/api/pay/*固定 RSASHA256withRSA下单、查单、退款、退款查询、关单

版本签名不可混用

  • V2 接口的 sign_type 固定为 RSA,不接受 MD5
  • V1 接口的 sign_type 固定为 MD5,不接受 RSA
  • 不存在「V2 任选 MD5/RSA」的说法

金额单位与标准 API 不同

易支付协议的金额字段是 money(String 类型,单位元)不是 标准 API 的 amount(Long,单位分)。例如 1.00 表示 1 元。

接口列表(V2)

接口名称接口地址方法描述
易支付下单/epay/api/v2/api/pay/createGET/POST创建易支付订单
易支付查询/epay/api/v2/api/pay/queryGET/POST查询易支付订单状态
易支付退款/epay/api/v2/api/pay/refundGET/POST发起退款
易支付退款查询/epay/api/v2/api/pay/refund_queryGET/POST查询退款状态
易支付关闭/epay/api/v2/api/pay/closeGET/POST关闭订单

refund_query 别名

退款查询同时接受 /api/pay/refund_query(下划线)和 /api/pay/refundquery(无下划线)两个路径,兼容不同易支付实现。

V2 下单

请求地址

GET/POST /epay/api/v2/api/pay/create

请求参数

字段名遵循易支付协议的 snake_case 风格:

参数类型必填描述
pidstring易支付商户号(对应 mchNo
typestring接口类型:web(跳转)/ jump(直接跳转通道)/ jsapi
methodstring支付方式:alipay / wxpay
out_trade_nostring商户订单号(对应 bizOrderNo
namestring商品名称(对应 title
moneystring金额,单位元(如 "1.00"
timestampstring当前时间戳(秒)
notify_urlstring异步通知地址
return_urlstring同步跳转地址
signstringRSA 签名值(Base64)
sign_typestring签名类型,固定 RSA

响应示例

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "orderId": 1853123456789012345,
    "orderNo": "P2024120112345700001",
    "payBody": "weixin://wxpay/bizpayurl?pr=xxxxx",
    "payBodyType": "qr_code"
  }
}

V2 查询

请求地址

GET/POST /epay/api/v2/api/pay/query

请求参数

参数类型必填描述
pidstring易支付商户号
out_trade_nostring商户订单号
signstringRSA 签名值
sign_typestring固定 RSA

响应示例

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "orderNo": "P2024120112345700001",
    "status": "success",
    "realAmount": 100,
    "payTime": "2024-12-01 12:00:00"
  }
}

V2 退款

请求地址

GET/POST /epay/api/v2/api/pay/refund

请求参数

参数类型必填描述
pidstring易支付商户号
out_trade_nostring原商户订单号
moneystring退款金额,单位元
out_refund_nostring商户退款号(不传由系统生成)
signstringRSA 签名值
sign_typestring固定 RSA

V2 签名规则(RSA)

  1. 获取所有非空参数,排除 signsign_type 两个字段。
  2. 按 key 的 ASCII 字典序升序排列。
  3. 拼接为 key1=value1&key2=value2 格式(无分隔符、无 &key= 后缀)。
  4. 使用商户私钥SHA256withRSA 签名,Base64 编码后填入 sign
与标准支付 API 签名的差异
  • 标准 API(/unipay/*):参数名为 camelCase(bizOrderNo),签名字段含 reqTime/nonceStr
  • 易支付 V2:参数名为 snake_case(out_trade_no),签名字段含 timestamp,且排除 sign_type

验签使用平台公钥,规则与 签名机制 一致。

V1 接口(兼容旧版)

V1 接口兼容传统易支付协议路径,仅支持 MD5 签名

接口名称接口地址方法
提交(跳转)/epay/api/v1/submit.phpGET/POST
创建(API)/epay/api/v1/mapi.phpGET/POST
查询/epay/api/v1/api.phpGET/POST

V1 限制

  • 仅下单与查单:V1 不提供退款、退款查询、关单接口。如需退款请使用 V2 或商户端管理 API。
  • 签名固定 MD5sign_type=MD5,使用商户 MD5 密钥拼接末尾后取 MD5(小写十六进制)。
  • 查单弱鉴权:V1 查单使用 key=md5Key 直接比对(query 参数),与 V2 的 RSA 验签完全不同,仅适用于低风险场景。

V1 MD5 签名规则

  1. 获取所有非空参数,排除 signsign_type
  2. 按 key 的 ASCII 字典序排列,拼接为 key1=value1&key2=value2
  3. 在末尾拼接商户密钥:...&key={md5Key}(或视具体实现直接拼接)。
  4. 对整个字符串取 MD5,输出小写十六进制。

异步回调

易支付订单的回调走 protocol=easy_payGET + URL query 参数),与标准支付的 system 协议(POST JSON)不同。详见 异步回调 - 两套通知协议

基于 GNU LGPL v3.0 协议开源