支付对接文档

1. 请求方式

请求方式:POST

请求头:Content-Type: application/json; charset=utf-8

2. 加密对接

先把参数按 ASCII 排序拼好,然后用 HashKey 采用 HMAC-SHA256算法 进行加密,最终得到的加密串作为sign

对生成的字符串 sign 执行 HMAC-SHA256 签名,以获得最终签名字符串

3. 代收接口

接口地址:https://api.sahanax.com/pay/collect

请求参数

参数名 类型 是否必填 说明
merchantNo String 商户号(由平台分配)
orderNo String 商户订单号(唯一)
amount INTVAL 代收金额(单位:INR)
notifyUrl String 支付结果回调地址
clientIp String 用户请求IP地址
sign String 接口签名

响应参数

参数名 类型 说明
code String 返回码(2000 表示成功,其他为失败)
msg String 返回信息描述
data Object 返回数据对象
data.payUrl String 支付链接(用户跳转支付地址)
data.platOrderNo String 平台订单号

请求示例

{
    "merchantNo": "M123456789",
    "orderNo": "MER20260108001",
    "amount": 100.00,
    "notifyUrl": "https://www.merchant.com/payin/notify",
    "clientIp": "127.0.0.1",
    "sign": "8e27b6558f93a7695a8f9e8c7d6b5a49"
}
                    

成功响应

{
    "code": "2000",
    "msg": "请求成功",
    "data": {
        "payUrl": "https://pay.example.com/pay?orderId=P20260108001",
        "platOrderNo": "P20260108001"
    }
}
                  

失败响应

{
    "code": "1000",
    "msg": "请求失败",
    "data": null
}
                  

4. 代付接口

接口地址:https://api.sahanax.com/pay/payout

请求参数

参数名 类型 是否必填 说明
merchantNo String 商户号(由平台分配)
orderNo String 商户代付订单号(唯一)
amount INTVAL 代付金额(单位:INR)
recipientName String 收款人姓名
recipientEmail String 收款人邮箱
recipientPhone String 收款人手机号(10位)
recipientAccount String 收款人银行卡/账户号
bankIfsc String IFSC
notifyUrl String 代付结果回调地址
sign String 接口签名

响应参数

参数名 类型 说明
code String 返回码(2000表示受理成功,其他为失败)
msg String 返回信息描述
data Object 返回数据对象
data.platOrderNo String 平台代付订单号
data.handleTime String 订单受理时间(格式:yyyy-MM-dd HH:mm:ss)

请求示例

{
    "merchantNo": "M123456789",
    "orderNo": "PAYOUT20260108001",
    "amount": 100.00,
    "recipientName": "张三",
    "recipientAccount": "6222081234567890",
    "recipientEmail": "TEST@GMAIL.COM",
    "recipientPhone": "958485458",
    "bankIfsc": "IFSC55454545454",
    "notifyUrl": "https://www.merchant.com/payNotify",
    "sign": "7b6a5e4d3c2b1a098f7e6d5c4b3a2s1d"
}
                    

成功响应

{
    "code": "2000",
    "msg": "代付订单受理成功",
    "data": {
        "platOrderNo": "PF20260108001",
        "handleTime": "2026-01-08 10:30:00"
    }
}
                        

失败响应

{
    "code": "1000",
    "msg": "余额不足",
    "data": null
}
                        

5. 代收查单接口

接口地址:https://api.sahanax.com/pay/collect/query

请求参数

参数名 类型 是否必填 说明
merchantNo String 商户号(由平台分配)
orderNo String 商户代收订单号
sign String 接口签名

响应参数

参数名 类型 说明
code String 返回码(2000表示查询成功)
msg String 返回信息描述
data Object 订单信息对象
data.orderNo String 商户订单号
data.platOrderNo String 平台订单号
data.amount Decimal 支付金额
data.status String 代收状态(1:未支付,2:支付成功,3:支付失败)
data.payTime String 支付完成时间(格式:yyyy-MM-dd HH:mm:ss,未支付则为空)

请求示例

{
    "merchantNo": "M123456789",
    "orderNo": "MER20260108001",
    "sign": "6a5b4c3d2e1f0g9h8j7k6l5m4n3b2v1c"
}
           

响应示例

{
    "code": "2000",
    "msg": "查询成功",
    "data": {
        "orderNo": "MER20260108001",
        "platOrderNo": "P20260108001",
        "amount": 100.00,
        "status": "2",
        "payTime": "2026-01-08 10:45:30"
    }
}
                      

6. 代付查单接口

接口地址:https://api.sahanax.com/pay/payout/query

请求参数

参数名 类型 是否必填 说明
merchantNo String 商户号(由平台分配)
orderNo String 商户代付订单号
sign String 接口签名

响应参数

参数名 类型 说明
code String 返回码(2000表示查询成功)
msg String 返回信息描述
data Object 订单信息对象
data.orderNo String 商户订单号
data.platOrderNo String 平台订单号
data.amount Decimal 代付金额
data.status String 代付状态(0:处理中,1:代付成功,2:代付失败,3:已驳回)
data.completeTime String 代付完成时间(格式:yyyy-MM-dd HH:mm:ss,未完成则为空)
data.failureReason String 失败原因

请求示例

{
    "merchantNo": "M123456789",
    "orderNo": "PAY20260108001",
    "sign": "4b3a2s1d0f9g8h7j6k5l4m3n2b1v0c9x"
}
                       

成功响应

{
    "code": "2000",
    "msg": "查询成功",
    "data": {
        "orderNo": "PAY20260108001",
        "platOrderNo": "PF20260108001",
        "amount": 500.00,
        "status": "1",
        "completeTime": "2026-01-08 11:20:15",
        "failureReason": ""
    }
}
                    

失败响应

{
    "code": "1000",
    "msg": "订单未查询到",
    "data": null
}
                    

7. 余额查询接口

接口地址:https://api.sahanax.com/pay/balance/query

请求参数

参数名 类型 是否必填 说明
merchantNo String 商户号(由平台分配)
timestamp Long 时间戳
sign String 接口签名

响应参数

参数名 类型 说明
code String 返回码(2000表示查询成功)
msg String 返回信息描述
data Object 余额信息对象
data.merchantNo String 商户号
data.availableBalance Decimal 可用余额(单位:INR)
data.queryTime String 查询时间(格式:yyyy-MM-dd HH:mm:ss)

请求示例

{
    "merchantNo": "M123456789",
    "timestamp": 1736329200,
    "sign": "2a1s0d9f8g7h6j5k4l3m2n1b0v9c8x7s6d"
}
                

响应示例

{
    "code": "2000",
    "msg": "余额查询成功",
    "data": {
        "merchantNo": "M123456789",
        "availableBalance": 12500.50,
        "queryTime": "2026-01-08 14:30:00"
    }
}
          

8. 代收代付回调

POST 你得回调地址

收到成功回调处理完成后,请返回 success

请求参数

参数名 类型 是否必填 说明
merchantNo String 商户号(由平台分配)
orderNo String 商户代付订单号
platOrderNo String 平台单号
amount intval 支付金额
status String 代付状态(0:处理中,1:代付成功,2:代付失败,3:已驳回)
代收状态(1:未支付,2:支付成功,3:支付失败)
utr String UTR
failureReason String 失败原因
sign String 接口签名

请求示例

{
    "merchantNo": "M123456789",
    "orderNo": "PAY20260108001",
    "platOrderNo": "PF20260108001",
    "amount": 500,
    "status": "1",
    "utr": "",
    "failureReason": "",
    "sign": "4b3a2s1d0f9g8h7j6k5l4m3n2b1v0c9x"
}