Skip to main content

API 文档

重要提示

请妥善保管您的 API Key 和 Secret Key,不要泄露给他人。所有请求都需要进行签名验证。

接口地址

  • 请联系客户经理获取

所有接口均使用 HTTPS 协议,请求/响应数据格式统一使用 JSON。

支付接口

创建代收订单

接口说明:创建一个新的代收订单,支持多种代收渠道和支付方式。

请求方式:POST

接口地址/v1/collections

请求参数

参数名类型必填说明
merchantOrderNostring商户订单号,必须唯一
channelCodestring商户通道编码,必须唯一
amountnumber代收金额,单位为不同国家所对应货币单位,例如:10VND 20PKR 100IDR 0.5USD 0.05CNY
currencystring货币类型,例如:VND PKR IDR USD CNY
notificationUrlstring异步通知地址
channelParamsobject支付通道特有参数,根据不同支付通道有不同的要求
remarkstring备注信息

channelParams 参数说明

不同支付通道的参数要求:

  • DigiMone:{channelCode: "jazzcash|easypaisa"} 二选一
  • Dana:{userName: "SUMIATI"} dana用户的真实姓名
  • Essa: {"channelCode": "jz|ep","mobileNumber": "03091667191"} channelCode二选一 mobileNumber需要真实有效的手机号码即用户的账号

注意:请根据选择的支付通道提供相应的必要参数

请求示例

curl -X POST 'https://api.example.com/v1/collections' \
-H 'Content-Type: application/json' \
-H 'X-API-KEY: your_api_key' \
-H 'X-API-SIGN: your_signature' \
-d '{
"merchantOrderNo": "COL_123456",
"channelCode": "CH001",
"amount": 1000000,
"currency": "VND",
"notificationUrl": "https://merchant.example.com/notify",
"channelParams": {
"channelCode": "jazzcash"
},
"remark": "代收测试"
}'

响应示例

{
"code": 200,
"message": "success",
"data": {
"transactionNo": "COL_123456789",
"merchantOrderNo": "COL_123456",
"amount": 1000000,
"currency": "VND",
"status": "PENDING",
"expireTime": "2024-01-15T10:30:00Z",
"payUrl": "https://api.example.com/checkout/COL_123456789"
}
}

创建代付订单

接口说明:创建一个新的代付订单,支持多种代付渠道。

请求方式:POST

接口地址/v1/payments

请求参数

参数名类型必填说明
merchantOrderNostring商户订单号,必须唯一
channelCodestring商户通道编码,必须唯一
amountnumber代付金额,单位为不同国家所对应货币单位,例如:10VND 20PKR 100IDR 0.5USD 0.05CNY
currencystring货币类型,例如:VND PKR IDR USD CNY
bankCodestring收款银行、支付机构编码
accountNamestring收款人姓名
accountNostring收款账号
notificationUrlstring异步通知地址
channelParamsobject支付通道特有参数
remarkstring备注信息

请求示例

curl -X POST 'https://api.example.com/v1/payments' \
-H 'Content-Type: application/json' \
-H 'X-API-KEY: your_api_key' \
-H 'X-API-SIGN: your_signature' \
-d '{
"merchantOrderNo": "PAY_123456",
"amount": 1000000,
"currency": "VND",
"channelCode": "CH001",
"bankCode": "VCB",
"accountName": "NGUYEN VAN A",
"accountNo": "1234567890",
"notificationUrl": "https://merchant.example.com/notify",
"remark": "代付测试"
}'

响应示例

{
"code": 200,
"message": "success",
"data": {
"transactionNo": "PAY_123456789",
"merchantOrderNo": "PAY_123456",
"channelCode": "CH001",
"amount": 1000000,
"currency": "VND",
"status": "PROCESSING",
"payTime": "2024-01-15T10:25:00Z"
}
}

查询接口

订单查询

接口说明:查询订单状态和详情,支持查询代收和代付订单。

请求方式:GET

接口地址/v1/orders/{merchantOrderNo}

请求参数

参数名类型必填说明
merchantOrderNostring平台订单号

请求示例

curl -X GET 'https://api.example.com/v1/orders/ORDER_123456789' \
-H 'X-API-KEY: your_api_key' \
-H 'X-API-SIGN: your_signature'

响应示例

{
"code": 200,
"message": "success",
"data": {
"transactionNo": "ORDER_123456789",
"merchantOrderNo": "ORDER_123456",
"orderType": "COLLECTION",
"amount": 1000000,
"currency": "VND",
"status": "SUCCESS"
}
}

状态说明

状态说明
PENDING待支付,订单已创建但未收到支付
PROCESSING处理中,已收到支付请求,正在处理
SUCCESS支付成功,订单已完成
FAILED支付失败,可能是余额不足或其他原因
EXPIRED订单已过期,超过支付时间未完成支付
CANCELLED订单已取消,可能是用户取消或管理员取消

余额查询

接口说明:查询商户账户余额。

请求方式:GET

接口地址/v1/balance

请求参数

参数名类型必填说明
currencystring货币类型,例如:VND PKR IDR USD CNY。不传则返回所有货币类型的余额

请求示例

curl -X GET 'https://api.example.com/v1/balance?currency=VND' \
-H 'X-API-KEY: your_api_key' \
-H 'X-API-SIGN: your_signature'

响应示例

{
"code": 200,
"message": "success",
"data": {
"IDR":{
"available":2958.00,
"frozen":0,
"settling":0
}
}
}

退款接口

创建退款订单

接口说明:创建新的退款订单。

请求方式:POST

接口地址/v1/refunds

请求参数

参数名类型必填说明
merchantRefundIdstring商户退款单号,必须唯一
transactionNostring原订单号
amountnumber退款金额,单位为不同国家所对应货币单位,例如:10VND 20PKR 100IDR 0.5USD 0.05CNY
reasonstring退款原因

请求示例

curl -X POST 'https://api.example.com/v1/refunds' \
-H 'Content-Type: application/json' \
-H 'X-API-KEY: your_api_key' \
-H 'X-API-SIGN: your_signature' \
-d '{
"merchantRefundId": "REF_123456",
"transactionNo": "ORDER_123456789",
"amount": 1000000,
"reason": "客户退款"
}'

响应示例

{
"code": 503,
"message": "不支持此功能",
"data": {}
}

通知接口

异步通知

当订单状态发生变化时,系统会向商户配置的通知地址发送异步通知。

通知参数

参数名类型必填说明
transactionNostring平台订单号
merchantOrderNostring商户订单号
amountnumber订单金额,单位为不同国家所对应货币单位,例如:10VND 20PKR 100IDR 0.5USD 0.05CNY
currencystring货币类型
statusstring订单状态: SUCCESS

通知示例

通知请求头中包含 'X-API-SIGN: signature' 请用自己的Secret Key解密验证

{
"transactionNo": "ORDER_123456789",
"merchantOrderNo": "ORDER_123456",
"amount": 1000000,
"currency": "VND",
"status": "SUCCESS"
}

通知应答

商户接收到通知后,需要返回小写字符串 "success",否则系统会重复发送通知。

错误码说明

错误码说明解决方案
1001签名验证失败检查签名算法和参数是否正确
1002API Key 无效确认 API Key 是否正确且在有效期内
1003请求参数错误检查必填参数是否完整,参数格式是否正确
1004余额不足请确保账户有足够的余额
1005订单号重复更换订单号重新发起请求

签名验证

所有请求都需要进行签名验证,签名算法支持 HMAC-SHA256 和 MD5。详细说明请参考签名示例