# Unicat介接文件 ## 说明 ### 环境网址 测试环境 : `https://stage-api.unicat.cc` 正式环境 : `https://api.unicat.cc` ### 版本 v3 : `/api/v3` ### 资料请用Json格式提交 `Content-Type:application/json` ### 签名金钥 请找商务获取 ## 目录 * [系统支持币种](#系统支持币种) * [交易金额限制](#交易金额限制) * [签名规则](#签名规则) * [建立付款订单](#建立付款订单) : `POST /api/v3/createPayOrder` * [查询付款订单](#查询付款订单) : `POST /api/v3/queryPayOrder` * [建立商户出款单](#建立商户出款单) : `POST /api/v3/createWithdraw` * [查询商户出款单](#查询商户出款单) : `POST /api/v3/queryWithdraw` * [查询建议汇率](#查询建议汇率) : `POST /api/v3/exchangeRate` * [使用者钱包绑定](#使用者钱包绑定) : `POST /api/v3/bindUser` * [[notify] 支付订单回调](#支付订单回调) : `Unicat系统回调贵方提供的网址` * [[notify] 商户出款回调](#商户出款回调) : `Unicat系统回调贵方提供的网址` * [[notify] 使用者钱包连结回调](#使用者钱包绑定回调) : `Unicat系统回调贵方提供的网址` ## 系统支持币种 | 币别 | 說明 | |:-|:-| | BTC | Bitcoin | | ETH | Ethereum(以太坊) | | USDT_ERC20 | Ethereum USDT(ERC-20) | | USDT_TRC20 | Tron USDT(TRC-20) | | USDT_BEP20 | Binance smart chain USDT(BEP-20)<font color=#FF0000>[维护中]</font> | ## 交易金额限制 | 币种 | 交易最小数量 | 交易最大数量 | 支援小数单位 | |:-:|:-|:-|:-| | BTC | 0.0007 | 1 | 0.00001 | | ETH | 0.025 | 10 | 0.0001 | | USDT_ERC20 | 7 | 无上限 | 0.01 | | USDT_TRC20 | 7 | 无上限 | 0.01 | | USDT_BEP20 | 7 | 无上限 | 0.01 | **EX 1:单次BTC交易至少0.0001BTC,可以接受0.00012BTC,不接受0.000123BTC** **EX 2:交易单位為「聪」(Satoshi、Sat),故交易数量务必再乘上10^8。** ## 签名规则 将参数(除了Sign),依照升冪排序后,各key=value用&连接,最后再加上key=签名金钥,md5后转为全大写即为sign。 **范例** ``` 开发者令牌为:A299953927BB4959F7807B0F4A188E0C 传送参数: { "clientID": "unicatTest", "orderID": "29367465624676320", "clientOrderID": "TEST-1120-01", "symbol": "USDT_ERC20", "sign": "" } 将参数排序 顺序为[已拿除sign] [clientID clientOrderID orderID symbol] 并将资料依序用key=value并用&连接 最后再加上&key=开发者令牌 加密内容为 clientID=unicatTest&clientOrderID=TEST-1120-01&orderID=29367465624676320&symbol=USDT_ERC20&key=A299953927BB4959F7807B0F4A188E0C md5後即為sign 649F4A6D07D417BD7572CA4877F48CE1 ``` ## 建立付款订单 **URL** : `/api/v3/createPayOrder` **Method** : `POST` **请求参数** | 参数|是否必填|类型|参数介绍 | |:-------------|:-------------|:-------------|:-------------| | clientID | Y | string | 商户编号 | | clientUserID | N | string | 商户会员编号 | | clientOrderID | Y | string | 商户订单编号 | | clientDescription | N | string | 商户订单备注 | | amount | Y | string | 金额 | | clientRMB | N | string | 订单等值人民币(商户客制) | | symbol | Y | string | 币种(BTC,ETH,USDT_ERC20,USDT_TRC20,USDT_BEP20) | | callBackUrl | Y | string | 回调网址 | | timestamp | Y | string | 时间戳记 | | sign | Y | string | 签名 | **回应参数** | 参数|参数介绍 | |:-------------|:-------------| | orderID | Unicat订单编号 | | qrcode | QRCODE 网址 | | amount | 订单提交金额 | | payAmount | 会员需付款金额 | | address | 付款地址 | | code | 回应代码 | | message | 回应讯息* code非200才会有内容 | | timestamp | 时间戳记 | | sign | 签名 | [GoTop](#目录) ## 查询付款订单 **URL** : `/api/v3/queryPayOrder` **Method** : `POST` **请求参数** | 参数 | 是否必填 | 类型 | 参数介绍 | |:-------------|:-------------|:-------------|:-------------| | clientID | Y | string | 商户编号 | | clientOrderID | N | string | 商户订单编号(与orderID择一) | | orderID | N | string | Unicat订单编号(与clientOrderID择一) | | timestamp | Y | string | 时间戳记 | | sign | Y | string | 签名 | **回应参数** | 参数 | 参数介绍 | |:-------------|:-------------| | orderID | Unicat订单编号 | | clientOrderID | 商户订单编号 | | clientUserID | 商户使用者编号 | | clientDescription | 商户订单备注 | | symbol | 币种(BTC,ETH,USDT_ERC20,USDT_TRC20,USDT_BEP20) | | amount | 订单提交金额 | | payAmount | 会员需付款金额 | | clientRMB | 订单等值人民币(商户客制) | | systemRMB | 订单等值人民币(系统) | | orderStatus | 订单状态(PENDING,SUCCESS,FAIL) | | callBackUrl | 回调网址 | | code | 回应代码 | | message | 回应讯息 *code非200 才会有内容 | | timestamp | 时间戳记 | | sign | 签名 | [GoTop](#目录) ## 建立商户出款单 **URL** : `/api/v3/createWithdraw` **Method** : `POST` **请求参数** | 参数 | 是否必填 | 类型 | 参数介绍 | |:-------------|:-------------|:-------------|:-------------| | clientID | Y | string | 商户编号 | | clientUserID | N | string | 商户会员编号 | | clientWithdrawID | Y | string | 商户提款编号 | | clientUserAddress | Y | string | 商户会员钱包地址 | | symbol | Y | string | 币种(BTC,ETH,USDT_ERC20,USDT_TRC20,USDT_BEP20) | | amount | Y | string | 金额 | | clientRMB | N | string | 订单等值人民币(商户客制) | | callBackUrl | Y | string | 回调网址 | | timestamp | Y | string | 时间戳记 | | sign | Y | string | 签名 | **回应参数** | 参数 | 参数介绍 | |:-------------|:-------------| | withdrawID | Unicat提款订单编号 | | clientWithdrawID | 商户提款编号 | | code | 回应代码 | | message | 回应讯息 *code非200 才会有内容 | | timestamp | 时间戳记 | | sign | 签名 | [GoTop](#目录) ## 查询商户出款单 **URL** : `/api/v3/queryWithdraw` **Method** : `POST` **请求参数** | 参数 | 是否必填 | 类型 | 参数介绍 | |:-------------|:-------------|:-------------|:-------------| | clientID | Y | string | 商户编号 | | withdrawID | N | string | Unicat提款订单编号(与clientWithdrawID择一) | | clientWithdrawID | N | string | 商户提领订单编号(与withdrawID择一) | | timestamp | Y | string | 时间戳记 | | sign | Y | string | 签名 | **回应参数** | 参数 | 参数介绍 | |:-------------|:-------------| | clientUserID | 商户使用者编号 | | clientUserAddress | 会员钱包地址 | | clientWithdrawID | 商户提款订单编号 | | withdrawID | Unicat提款订单编号 | | symbol | 币种(BTC,ETH,USDT_ERC20,USDT_TRC20,USDT_BEP20) | | amount | 订单提交金额 | | clientRMB | 订单等值人民币(商户客制) | | systemRMB | 订单等值人民币(系统) | | status | 订单状态(PENDING,SUCCESS,FAIL) | | withdrawTime | 提领发起时间 | | approvedTime | 审核时间 | | code | 回应代码 | | message | 回应讯息 *code非200 才会有内容 | | timestamp | 时间戳记 | | sign | 签名 | [GoTop](#目录) ## 查询建议汇率 **URL** : `/api/v3/exchangeRate` **Method** : `POST` **请求参数** | 参数 | 是否必填 | 类型 | 参数介绍 | |:-------------|:-------------|:-------------|:-------------| | symbol | Y | string | 币种(BTC,ETH,USDT_ERC20,USDT_TRC20,USDT_BEP20) | | timestamp | Y | string | 时间戳 | **回应参数** | 参数 | 参数介绍 | |:-------------|:-------------| | rateRMB | 建议汇率 | | code | 回应代码 | | message | 回应讯息 *code非200 才会有内容 | ## 使用者钱包绑定 **URL** : `/api/v3/bindUser` **Method** : `POST` **请求参数** | 参数 | 是否必填 | 类型 | 参数介绍 | |:-------------|:-------------|:-------------|:-------------| | clientID | Y | string | 商户编号 | | clientUserID | Y | string | 商户会员编号 | | callBackUrl | Y | string | 回调网址 | | timestamp | Y | string | 时间戳 | | sign | Y | string | 签名 | **回应参数** | 参数 | 参数介绍 | |:-------------|:-------------| | qrcodeData | QRCODE资料 | | qrcodeImageUrl | QRCODE网址 | | code | 回应代码 | | message | 回应讯息 *code非200 才会有内容 | | sign | 签名 | ## 支付订单回调 **URL** : `Unicat系统回调贵方提供的网址(付款完成才會回調)` **Method** : `POST` **回应参数** | 参数 | 类型 | 参数介绍 | |:-------------|:-------------|:-------------| | clientID | string | 商户编号 | | clientOrderID | string | 商户订单编号 | | orderID | string | Unicat订单编号 | | symbol | string | 币种(BTC,ETH,USDT_ERC20,USDT_TRC20,USDT_BEP20) | | amount | string | 订单提交金额 | | payAmount | string | 会员需付款金额 | | clientRMB | string | 订单等值人民币(商户客制) | | systemRMB | string | 订单等值人民币(系统) | | payTimestamp | string | 付款时间 | | sign | string | 签名 | **回应(貴司)** 成功请回传: SUCCESS 失败请回传: ERROR:失败原因 [GoTop](#目录) ## 商户出款回调 **URL** : `Unicat系统回调贵方提供的网址` **Method** : `POST` **回应参数** | 参数 | 类型 | 参数介绍 | |:-------------|:-------------|:-------------| | clientID | string | 商户编号 | | clientUserID | string | 商户会员编号 | | clientWithdrawID | string | 商户提款订单编号 | | clientUserAddress | string | 会员钱包地址 | | withdrawID | string | Unicat提款订单编号 | | amount | string | 提款金额 | | clientRMB | string | 订单等值人民币(商户客制) | | systemRMB | string | 订单等值人民币(系统) | | symbol | string | 币种(BTC,ETH,USDT_ERC20,USDT_TRC20,USDT_BEP20) | | replyTimestamp | string | 请款时间 | | sign | string | 签名 | **回应(貴司)** 成功请回传: SUCCESS 失败请回传: ERROR:失败原因 [GoTop](#目录) ## 使用者钱包绑定回调 **URL** : `Unicat系统回调贵方提供的网址` **Method** : `POST` **回应参数** | 参数 | 参数介绍 | |:-------------|:-------------| | clientID | 商户编号 | | clientUserID| 商户会员编号 | | userName| Unicat会员帐号 | | BTC | BTC钱包地址 | | ETH | ETH钱包地址 | | USDT_ERC20 | USDT_ERC20钱包地址 | | USDT_TRC20 | USDT_TRC20钱包地址 | | USDT_BEP20 | USDT_BEP20钱包地址 | | sign | 签名 | **回应(貴司)** 成功请回传: SUCCESS 失败请回传: ERROR:失败原因 [GoTop](#目录)