商户代收代付接口文档

版本:v1.0
适用对象:商户系统对接代收、代付、订单查询、余额查询、异步通知。

1. 接入说明

1.1 请求地址

pay-1 当前接口域名:

https://aspay-api.sdrgs.eu.cc

接口均使用 POST 请求,参数以 application/x-www-form-urlencodedmultipart/form-data 提交。

1.2 商户参数

参数说明
mer_id平台分配的商户 ID
mc_key平台分配的商户签名密钥,仅用于本地签名,不能在请求中传输

1.3 签名规则

所有商户接口均使用 MD5 签名。

签名步骤:

  1. 取所有参与签名的请求参数,排除 sign
  2. 排除值为空的字段,例如 ""nullNone
  3. 按参数名 ASCII 升序排序。
  4. 拼接为 key=value&key=value
  5. 末尾追加 &key={mc_key}
  6. 对最终字符串做 MD5,并转为大写 32 位字符串。

示例:

amount=100.00&callback=https://merchant.example.com/return&gateway=1001&mer_id=10001&notify=https://merchant.example.com/notify&order_id=M202607020001&key=YOUR_MC_KEY

签名结果:

sign = MD5(上面字符串).upper()

Python 示例:

import hashlib

def make_sign(params: dict, mc_key: str) -> str:
    items = []
    for key in sorted(params.keys()):
        if key == "sign":
            continue
        value = params[key]
        if value is None or value == "":
            continue
        items.append(f"{key}={value}")
    sign_str = "&".join(items) + f"&key={mc_key.strip()}"
    return hashlib.md5(sign_str.encode("utf-8")).hexdigest().upper()

1.4 通用响应格式

成功或失败均返回 JSON。

{
  "code": 0,
  "data": null,
  "message": ""
}

code = 0 表示请求受理成功。业务最终结果以订单查询或异步通知为准。

2. 代收下单

2.1 接口

POST https://aspay-api.sdrgs.eu.cc/pay

2.2 请求参数

参数必填说明
mer_id商户 ID
gateway代收通道编码,由平台分配
amount订单金额,最多保留 2 位小数
callback支付完成后的同步跳转地址
notify代收结果异步通知地址
order_id商户订单号,同一商户不可重复
signMD5 签名
remark商户备注;不参与签名
notice_api预留字段
realname付款人姓名;不参与签名
player_ip商户侧用户 IP;不参与签名
user_id商户侧用户 ID;不参与签名

注意:remarkrealnameplayer_ipuser_id 不参与代收下单签名。

2.3 请求示例

curl -X POST "https://aspay-api.sdrgs.eu.cc/pay" \
  -d "mer_id=10001" \
  -d "gateway=1001" \
  -d "amount=100.00" \
  -d "callback=https://merchant.example.com/return" \
  -d "notify=https://merchant.example.com/notify/ds" \
  -d "order_id=M202607020001" \
  -d "sign=SIGN_VALUE"

2.4 成功响应

{
  "code": 0,
  "data": "https://pay.example.com/order/xxxxx",
  "message": "下单成功",
  "upi": "example@upi",
  "amount": "100.00",
  "token": "xxxxx",
  "order_code": "S20260702000001"
}

字段说明:

字段说明
data支付链接,商户可跳转用户到该地址
upi收款 UPI,可能为空
amount用户实际应支付金额
token支付页 token
order_code平台代收订单号
original_amount当通道启用浮动金额时返回,表示原始金额
decimal_callback_enabled当通道启用浮动金额时返回 true

3. 代付下单

3.1 接口

POST https://aspay-api.sdrgs.eu.cc/pay/df

3.2 请求参数

参数必填说明
mer_id商户 ID
order_id商户代付订单号,同一商户不可重复
gateway代付通道编码
amount代付金额,必须为整数或小数部分全为 0
account收款账号
user收款人姓名
bank_codeIFSC
bank银行名称
notify代付结果异步通知地址;如无需外部通知需与平台确认是否可填 sys
notice_api预留字段
signMD5 签名

注意:

3.3 请求示例

curl -X POST "https://aspay-api.sdrgs.eu.cc/pay/df" \
  -d "mer_id=10001" \
  -d "order_id=DF202607020001" \
  -d "gateway=2001" \
  -d "amount=1000" \
  -d "account=1234567890" \
  -d "user=RAHUL SHARMA" \
  -d "bank_code=HDFC0000001" \
  -d "bank=HDFC BANK" \
  -d "notify=https://merchant.example.com/notify/df" \
  -d "sign=SIGN_VALUE"

3.4 成功响应

{
  "code": 0,
  "massage": "下单成功",
  "order_code": "F20260702000001",
  "amount": "1000"
}

说明:字段名实际返回为 massage,不是 message

4. 代收订单查询

4.1 接口

POST https://aspay-api.sdrgs.eu.cc/status/ds

4.2 请求参数

参数必填说明
mer_id商户 ID
order_id商户代收订单号
signMD5 签名

4.3 成功响应

{
  "code": 0,
  "message": "",
  "data": {
    "order_id": "M202607020001",
    "order_code": "S20260702000001",
    "amount": "100.00",
    "realpay": "98.00",
    "utr": "123456789012",
    "upi": "example@upi",
    "time_create": "2026-07-02 12:00:00",
    "time_finish": "2026-07-02 12:03:00",
    "status": 0
  }
}

商户侧状态:

status说明
0成功
1处理中
2失败或已关闭

5. 代付订单查询

5.1 接口

POST https://aspay-api.sdrgs.eu.cc/status/df

5.2 请求参数

参数必填说明
mer_id商户 ID
order_id商户代付订单号
signMD5 签名

5.3 成功响应

{
  "code": 0,
  "message": "",
  "data": {
    "order_id": "DF202607020001",
    "order_code": "F20260702000001",
    "amount": "1000.00",
    "realpay": "1010.00",
    "utr": "123456789012",
    "time_create": "2026-07-02 12:00:00",
    "time_finish": "2026-07-02 12:05:00",
    "status": 0,
    "user": "RAHUL SHARMA",
    "account": "1234567890",
    "bank": "HDFC BANK"
  }
}

商户侧状态:

status说明
0成功
1处理中
2失败或已驳回

6. 余额查询

6.1 接口

POST https://aspay-api.sdrgs.eu.cc/balance

6.2 请求参数

参数必填说明
mer_id商户 ID
signMD5 签名

6.3 成功响应

{
  "code": 0,
  "message": "",
  "data": {
    "available": "10000.00",
    "frozen": "500.00",
    "balance": "10500.00"
  }
}

字段说明:

字段说明
available可用余额
frozen冻结余额
balance总余额,可用余额 + 冻结余额

7. 代收 UTR 补单

该接口用于商户主动提交代收订单的 UTR。提交成功并匹配到账单后,平台会完成代收订单并触发代收异步通知。

7.1 接口

POST https://aspay-api.sdrgs.eu.cc/pay/ds/utr

7.2 请求参数

参数必填说明
mer_id商户 ID
order_id商户代收订单号
utrUTR/RRN,长度需不少于 12 位
signMD5 签名

签名字段包含 mer_idorder_idutr,按通用签名规则生成。

7.3 请求示例

curl -X POST "https://aspay-api.sdrgs.eu.cc/pay/ds/utr" \
  -d "mer_id=10001" \
  -d "order_id=M202607020001" \
  -d "utr=123456789012" \
  -d "sign=SIGN_VALUE"

7.4 响应说明

codemessage说明
0successUTR 补单成功,订单会触发代收通知
10003UTR already existed订单已存在 UTR
10005UTR refill failed.UTR 已记录但未完成补单,通常是未匹配到账单或资金处理失败
10009sign error签名错误
10012UTR submitted too frequently or already processing.同一 UTR 提交过快或正在处理中

8. 异步通知

平台会向商户传入的 notify 地址发起 POST 表单通知。

商户收到通知后,必须直接响应小写:

ok

若未返回 ok,平台会在订单更新时间后的约 5 分钟内重试通知。

8.1 代收成功通知

POST 商户代收 notify 地址

通知参数:

参数说明
mer_id商户 ID
order_id商户代收订单号
status固定为 ok
amount订单金额;部分通道启用浮动金额时回调原始金额
realpay商户实际结算金额
remark下单备注,存在时返回
utrUTR;仅对配置了 UTR 回传的商户返回
sign平台签名

代收通知签名字段默认包含:

amount, mer_id, order_id, realpay, status

remarkutr 在当前通知实现中追加于签名之后,不参与默认签名。

8.2 代付结果通知

POST 商户代付 notify 地址

通知参数:

参数说明
mer_id商户 ID
order_id商户代付订单号
statusok 表示成功,error 表示失败
amount代付金额
realpay商户扣款金额,通常为代付金额 + 手续费
reasonokerror
utrUTR;仅对配置了 UTR 回传或二次回调白名单的商户返回
sign平台签名

代付通知签名字段默认包含:

amount, mer_id, order_id, realpay, reason, status

utr 在当前通知实现中追加于签名之后,不参与默认签名。

8.3 通知验签示例

商户收到通知后,按同样的 MD5 规则验签。

示例:

notify_params = {
    "mer_id": "10001",
    "order_id": "M202607020001",
    "status": "ok",
    "amount": "100.00",
    "realpay": "98.00",
    "sign": "SIGN_FROM_PLATFORM",
}

assert make_sign(notify_params, "YOUR_MC_KEY") == notify_params["sign"]

9. 错误码

codemessage说明
0-成功
10000Illegal IPIP 不允许,常见于代付白名单校验失败
10001Data format error请求格式错误
10002Parameter exception参数错误或存在非法字段
10003Parameter cannot be empty必填参数为空
10004Merchant does not exist商户不存在
10005Merchant status exception商户状态异常
10006Signature error签名错误
10008Channel is busy通道繁忙或无可用收款账号
10009Gateway error通道不存在
10010Channel maintenance通道维护
10011Amount error金额错误或不在允许范围
10012Channel not activated商户未开通该通道
10013Rate error费率配置错误
10014Order failed下单失败或订单重复
10015Insufficient payout balance代付余额不足
10016Order does not exist订单不存在
10017IFSC errorIFSC 错误
10022Payout setting exception系统代付设置异常
10023Merchant payout setting exception商户代付设置异常
10024Amount decimal is not zero代付金额小数部分必须为 0
10026Reconciliation locked, please try again later对账锁定中
10027Blacklist IP banned for collection代收 IP 黑名单
10028Blacklist user_id banned for collection代收用户 ID 黑名单
10029IFSC is not allow temporarilyIFSC 或账号暂不允许

10. 对接建议