API 接口文档

一、接口说明

基础URL: https://apix.angeloux.com
请求方式: POST
Content-Type: application/json
字符编码: UTF-8

二、签名规则

签名算法

所有接口请求都需要进行签名验证,签名算法如下:

  1. 将所有请求参数(除sign外)按照参数名ASCII码从小到大排序(字典序)
  2. 使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串
  3. 在拼接的字符串末尾追加商户API密钥(&key=secret)
  4. 对拼接后的字符串进行MD5加密,得到32位小写字符串即为签名(sign)

签名示例

请求参数: merchantNo=101 merchantOrderNo=order202512121 amount=100 notifyUrl=https://yyyy.com/notify API密钥:1234567890 步骤1-2:拼接参数(按字典序) amount=100&merchantNo=101&merchantOrderNo=order202512121¬ifyUrl=https://yyyy.com/notify 步骤3:追加密钥 amount=100&merchantNo=101&merchantOrderNo=order202512121¬ifyUrl=https://yyyy.com/notify&key=1234567890 步骤4:MD5加密 sign = md5(拼接字符串);

三、接口列表

POST 1. 创建代付订单

/api/create/payment

请求参数

参数名 类型 必填 说明
merchantNo Integer 商户号
merchantOrderNo String 商户订单号(商户系统唯一)
payName String 收款人姓名
payAccount String 收款账号
payIfsc String 收款IFSC代码
email String 收款人邮箱
payPhone String 收款人手机号(最多10位数字)
amount String 订单金额(单位:INR,最多2位小数)
notifyUrl String 订单状态回调地址
sign String 签名(见签名规则)

请求示例

{ "merchantNo": 101, "merchantOrderNo": "order202512121", "payPhone": "84545954854", "payName": "John", "payAccount": "1234567890", "payIfsc": "HDFC0001234", "email":"xxxxxx@gmail.com", "amount": "100", "notifyUrl": "https://yyyy.com/notify", "sign": "adjsiojdadjiasdasdasdasd" }

响应参数

参数名 类型 说明
code Integer 响应码(200表示提交成功,其他代表提交失败)
message String 响应消息
data Object 响应数据(code=200 时候才会有值)
data.platformNo String 平台订单号(系统生成的唯一订单号)
data.merchantOrderNo String 商户订单号
注意:响应码 200 只是代表提交到系统成功,具体订单成功请以回调和查询接口为准!!!

响应示例

{ "code": 200, "message": "success", "data": { "platformNo": "1234567890123456789", "merchantOrderNo": "123456" } }

POST 2. 创建代收订单

/api/create/collection

请求参数

参数名 类型 必填 说明
merchantNo Integer 商户号
merchantOrderNo String 商户订单号(商户系统唯一)
amount String 订单金额(单位:INR,最多2位小数)
email String 邮箱
phone String 手机号(最多10位数字)
notifyUrl String 订单状态回调地址
sign String 签名(见签名规则)

请求示例

{ "merchantNo": 101, "merchantOrderNo": "collect1314520", "email": "xxxxx@gmail.com", "phone": "854585495", "amount": "500", "notifyUrl": "https://yyyyyy.com/notify/collect", "sign": "sadsadasdasdasdasd" }

响应参数

参数名 类型 说明
code Integer 响应码(200表示提单成功,有正确的付款链接,其他状态无)
message String 响应消息
data Object 响应数据(code=200 时候才会有值)
data.platformNo String 平台订单号
data.merchantOrderNo String 商户订单号
data.payUrl String 支付跳转地址(用户支付时跳转此地址)

响应示例

{ "code": 200, "message": "success", "data": { "platformNo": "123456789", "merchantOrderNo": "123456789", "payUrl": "https://domain.com/order=123456" } }

POST 3. 订单查询

/api/create/query

根据商户订单号查询订单状态(支持代收和代付订单)

请求参数

参数名 类型 必填 说明
merchantNo Integer 商户号
merchantOrderNo String 商户订单号
type String 查询类型(PAYMENT-代付, COLLECTION-代收)
sign String 签名(见签名规则)

请求示例

{ "merchantNo": 101, "merchantOrderNo": "12121212", "type": "PAYMENT", "sign": "dasdasdasdasdasdas" }

响应参数

参数名 类型 说明
code Integer 响应码(200表示成功,其他代表查询失败)
message String 响应消息
data Object 响应数据(code=200 时候才会有值)
data.platformNo String 平台订单号
data.merchantOrderNo String 商户订单号
data.status String 订单状态:PROCESS-处理中, COMPLETED-已完成, FAILURE-失败, REJECT-已撤回
data.amount String 订单金额
data.pay_amount String 代收支付金额
data.createTime String 创建时间(格式:yyyy-MM-dd HH:mm:ss)
data.utr String UTR(订单完成时返回有值)

响应示例

{ "code": 200, "message": "success", "data": { "platformNo": "131313131313", "merchantOrderNo": "12121212121212", "status": "COMPLETED", "amount": "100", "pay_amount": "100", "createTime": "2024-01-01 10:00:00", "utr": null } }

四、回调通知

回调说明

注意:当订单状态发生变化时(订单完成,订单失败,订单撤销),系统会向商户配置的 notifyUrl 发送POST请求通知。

回调参数

参数名 类型 说明
merchantNo Integer 商户号
merchantOrderNo String 商户订单号
platformNo String 平台订单号
status String 订单状态:COMPLETED-已完成
amount String 订单金额
pay_amount String 代收支付金额
type String 订单类型:PAYMENT-代付, COLLECTION-代收
utr String UTR(订单完成时返回有值)
sign String 签名

回调示例

POST https://yyyyyy.com/notify Content-Type: application/json { "merchantNo": 101, "merchantOrderNo": "121212121212", "platformNo": "1131313131313", "pay_amount": "1000", "status": "COMPLETED", "amount": "1000", "type": "PAYMENT", "utr": "", "sign": "111111111111111111111" }
重要提示:
  • 商户收到回调后,请返回HTTP 200状态码表示接收成功
  • 如果商户未返回200,系统会重试通知(最多3次)
  • 建议商户根据商户订单号做幂等处理,避免重复处理

五、错误码说明

错误码 说明
200 请求成功
400 参数错误(缺少必要字段、字段格式错误等)
401 签名验证失败
403 商户IP不在白名单
405 商户余额不足
500 服务器内部错误

错误响应示例

{ "code": 401, "message": "Signature verification failed", "data": null }

六、注意事项

  1. 所有金额字段使用 string 类型,最多保留2位小数
  2. 所有时间字段格式为:yyyy-MM-dd HH:mm:ss
  3. 商户订单号(merchantOrderNo)在商户系统内必须唯一
  4. 订单查询接口支持代收和代付两种类型
  5. 建议商户实现订单查询接口,定期查询订单状态作为回调的补充