本文档主要描述商户接入平台涉及到的对接标准与技术细节,请开发同学仔细阅读对接规范,便于快速接入,谢谢!

如你在接入过程中遇到任何问题,可随时联系 在线客服 获得技术支持。

获取商户UID

商户UID指的是用户在平台注册后,分配给用户的一个6位数唯一编码,代表着用户在平台中的唯一身份,请妥善保管。

生成商户密钥

商户在接入平台时要使用到的秘钥,秘钥主要用于验签,安全访问。密钥在商户管理后台-->API接入中查看。

请求方式:POST

Content-type:application/json

为了保证传递的数据不被修改,所有接口请求和回调都需要进行摘要认证。

请求参数

以下为请求的最外层参数,每个接口的专用参数请转成json格式后放入data字段中

字段名称 字段类型 是否必填 说明
uid string UID
timestamp string 时间戳
sign string 签名
data string json字符串,具体见对应的接口说明

请求示例:

{
    "uid": "136994",
    "sign": "00bd24ca1fa29a333191235aad10621a",
    "timestamp": "1716700031",
    "data": "{\"Amount\":\"2\",\"Blockchain\":\"TRC20\",\"CustomerOrderNo\":\"TEST127\",\"EffectiveDuration\":300,\"JumpURL\":\"111\"}"
}

签名方式

sign=md5(uid + data + key + timestamp),其中key为商户密钥

签名代码PHP示例:

$uid = "136994";
$data = '{"Amount":"2","Blockchain":"TRC20","CustomerOrderNo":"TEST127","EffectiveDuration":300,"JumpURL":"111"}';
$time = "1716700031";
$key = "c6e86d12aa021a3a94ea45235ca5d9aa";
$sign = md5($uid . $data . $key . $time);
echo $sign;//2a81cd6c131f4c1ac88c2f9408000470
					

返回结果

以下为返回结果的最外层参数

字段名称 字段类型 是否必填 说明
code int 返回码
msg string 返回码描述
data string 具体的返回结果,见对应的接口说明

返回示例:

{
	"code": 200,
	"data": {
		"MerchantSellOrderStatus": "T_MERCHANT_VERIFY_TODO",
		"MerchantSellOrderStatusText": "待商户审核"
	},
	"msg": "success"
}

请求地址:https://open.uugate.com/Open.Customer/CreateReceiveOrder

请求参数:

字段名称 字段类型 是否必填 说明
Amount string 收款订单金额(USDT),预留4位小数,实际使用2位小数
Blockchain string 链路类型,目前只支持TRC20
CustomerOrderNo string 客户订单号
EffectiveDuration string 订单有效期,300-86400之间,单位秒
JumpURL string 商户会员支付成功后,收银界面上返回按钮对应的链接
Rule Object 当前订单执行的规则,不传则按商户默认配置执行,具体见示例

接口请求示例:

{
    "uid": "136994",
    "sign": "33748c41adaa6ee11a8e863d1fe9f250",
    "timestamp": "1716700031",
    "data": "{\"Amount\":\"33\",\"Blockchain\":\"TRC20\",\"CustomerOrderNo\":\"TEST156\",\"EffectiveDuration\":300,\"JumpURL\":\"111\",\"Rule\":{\"WalletRules\":{\"Range\":\"SpecifyWallet\",\"Order\":\"Loop\",\"AutoCreate\":\"Off\",\"Register\":\"Register\",\"SpecifyWalletAddress\":\"TVEZobKr3Fyj6dayBcpSpoDLfb3B63Xj7b\"},\"AmountRules\":{\"Floor\":\"Off\"},\"CollectRules\":{\"AutoCollect\":\"On\",\"ToAddress\":\"TVEZobKr3Fyj6dayBcpSpoDLfb3B63Xj7b\",\"Frequency\":\"0\"}}}"
}
//Rule Example
$rule = [
    'WalletRules'=>[
        'Range'=>'AllWallets',//钱包范围,AllWallets,AllSystemWallets,CreateNewSystemWallet,CreateDisposableSystemWallet,SpecifyWallet
        'Order'=>'Loop',//钱包收款排序,Loop,BalanceAsc,BalanceDesc
        'AutoCreate'=>'On',//自动生成钱包,On,Off
        'Register'=>'Register',//钱包激活规则,DoNotRegister,Register,RegisterAndTransferU
        'SpecifyWalletAddress'=>'',//指定钱包地址,仅当Range=SpecifyWallet时有效
    ],
    'AmountRules'=>[
        'Floor'=>'Off',//匹配时先对金额进行floor操作,On,Off
    ],
    'CollectRules'=>[
        'AutoCollect'=>'On',//是否开启,On,Off
        'ToAddress'=>'Txxxxxx',//归集地址,未添加为钱包的会自动添加
        'Frequency'=>'0',//归集频率,注意格式为字符串,0(表示收到后立即归集),1,4,24
    ],
];

接口返回:

字段名称 字段类型 是否必填 说明
CheckOutUrl string 下单成功后返回的收银台URL地址,商户会员付款页面
ReceiveAddress string 订单对应的收款地址

接口返回示例:

{
    "CheckOutUrl": "http://localhost:8000/Open.Customer/CheckOut?data=Ergz52xOPB9SJKW0CqbajDRPJIihDDCO8IYwIdR8MZgRAiOthgnK%2BsBjPQ7SBVqvYNuudqrYQlRDvlD4epD1QMeRp5wQlHRhugTbYCvJF3M%3D",
    "ReceiveAddress": "TLvT5GG3aWiTknCvGbux2CW6wgwznogBF2",
    "code": 0,
    "msg": "success"
}

请求地址:https://open.uugate.com/Open.Customer/GetReceiveOrderStatus

请求参数:

字段名称 字段类型 是否必填 说明
CustomerOrderNo string 商户订单编号,即你自己系统里的订单编号,便于后续对账

接口请求示例:

{
    "uid": "136994",
    "sign": "00bd24ca1fa29a333191235aad10621a",
    "timestamp": "1716700031",
    "data": "{\"CustomerOrderNo\":\"126\"}"
}

接口返回:

字段名称 字段类型 是否必填 说明
UID string 商户UID
OrderNo string 系统订单号
CustomerOrderNo string 商户订单号
Status string 订单状态,详见文档底部收款订单状态码
FinishTime string 订单完成时间,如果未完成则返回Null
Amount string 订单金额(USDT),预留4位小数,实际使用2位小数
AmountInFact string 订单实收金额,如果未完成则返回Null

接口返回示例:

{
    "ReceiveOrder": {
        "UID": "136994",
        "OrderNo": "SK2405252026240048",
        "CustomerOrderNo": "126",
        "Status": "待付款",
        "FinishTime": null,
        "Amount": "1.0000",
        "AmountInFact": null
    },
    "code": 0,
    "msg": "success"
}

当订单完成或补单完成时会进行回调。回调会最多进行3次,成功接收回调需返回'success'。请求方式为POST,Content-Type: application/json

请求地址:在商户后台->API接入中设置

请求参数:

字段名称 字段类型 是否必填 说明
OrderType string 订单类型,收款回调时固定为ReceiveOrder
ReceiveOrder.UID string 商户UID
ReceiveOrder.OrderNo string 系统订单号
ReceiveOrder.CustomerOrderNo string 商户订单号
ReceiveOrder.Status string 订单状态,详见文档底部收款订单状态码
ReceiveOrder.FinishTime string 订单完成时间
ReceiveOrder.Amount string 订单金额(USDT),预留4位小数,实际使用2位小数
ReceiveOrder.AmountInFact string 订单实收金额
ReceiveOrder.Txid string 订单交易哈希

接口请求示例:

{
    "uid":136994,
    "timestamp":1716720904,
    "data":"{\"OrderType\":\"ReceiveOrder\",\"ReceiveOrder\":{\"UID\":\"136994\",\"OrderNo\":\"SK2405251145300005\",\"CustomerOrderNo\":\"122\",\"Status\":\"已完成\",\"FinishTime\":\"2024-05-25 17:27:28\",\"Amount\":\"1.0000\",\"AmountInFact\":\"1.0000\"}}",
    "sign":"90de05574c1630b4d11a94a32cd0bad6"
}

请求地址:https://open.uugate.com/Open.Customer/CreatePaymentOrder

请求参数:

字段名称 字段类型 是否必填 说明
Amount string 付款金额(USDT),预留4位小数,实际使用2位小数
CustomerOrderNo string 商户订单编号,即你自己系统里的订单编号,便于后续对账
Blockchain string 链路类型,目前只支持TRC20
FromAddress string 发起地址,填写具体地址或AUTO,AUTO表示自动匹配
ToAddress string 接收地址

接口请求示例:

{
    "uid": "136994",
    "sign": "00bd24ca1fa29a333191235aad10621a",
    "timestamp": "1716700031",
    "data": "{\"Amount\":\"1\",\"Blockchain\":\"TRC20\",\"CustomerOrderNo\":\"127\",\"FromAddress\":\"TMQvgsJLGRh48sth9wgFN4Xptgs6TFkAbd\",\"ToAddress\":\"TSVAFSHBBsEHB6UbCn7ogUmZhjSpvHdPQN\"}"
}

接口返回示例:

{
    "PaymentOrder": {
        "OrderNo": "FK2405261145180046",
        "CustomerOrderNo": "127",
        "FromAddress": "TMQvgsJLGRh48sth9wgFN4Xptgs6TFkAbd"
    },
    "code": 0,
    "msg": "success"
}

请求地址:https://open.uugate.com/Open.Customer/GetPaymentOrderStatus

请求参数:

字段名称 字段类型 是否必填 说明
UID string 商户UID
OrderNo string 系统订单号
CustomerOrderNo string 商户订单号
Status string 订单状态,详见文档底部付款订单状态码
FinishTime string 订单完成时间,如果未完成则返回Null
Amount string 订单金额(USDT),预留4位小数,实际使用2位小数

接口请求示例:

{
    "uid": "136994",
    "sign": "00bd24ca1fa29a333191235aad10621a",
    "timestamp": "1716700031",
    "data": "{\"CustomerOrderNo\":\"FK2405211522064632\"}"
}

接口返回示例:

{
    "PaymentOrder": {
        "UID": "136994",
        "OrderNo": "FK2405211522064632",
        "CustomerOrderNo": "FK2405211522064632",
        "Status": "付款中",
        "Amount": "123.0000",
        "FinishTime": null
    },
    "code": 0,
    "msg": "success"
}

当订单完成时会进行回调。回调会最多进行3次,成功接收回调需返回'success'。请求方式为POST,Content-Type: application/json

请求地址:在商户后台->API接入中设置

请求参数:

字段名称 字段类型 是否必填 说明
OrderType string 订单类型,付款回调时固定为PaymentOrder
PaymentOrder.UID string 商户UID
PaymentOrder.OrderNo string 系统订单号
PaymentOrder.CustomerOrderNo string 商户订单号
PaymentOrder.Status string 订单状态,详见文档底部收款订单状态码
PaymentOrder.FinishTime string 订单完成时间
PaymentOrder.Amount string 订单金额(USDT),预留4位小数,实际使用2位小数
PaymentOrder.Txid string 订单交易哈希

接口请求示例:

{
    "uid": "136994",
    "timestamp": 1716721664,
    "data": "{\"OrderType\":\"PaymentOrder\",\"PaymentOrder\":{\"UID\":\"136994\",\"OrderNo\":\"FK2405261145180046\",\"CustomerOrderNo\":\"127\",\"Status\":\"付款中\",\"FinishTime\":null,\"Amount\":\"1.0000\"}}",
    "sign": "153902d63b413837012d65a6a18e3461"
}

请求地址:https://open.uugate.com/Open.Customer/GetAdvanceAccountBalance

请求参数:

字段名称 字段类型 是否必填 说明

接口请求示例:

{
    "uid": "136994",
    "sign": "00bd24ca1fa29a333191235aad10621a",
    "timestamp": "1716700031",
    "data": "{}"
}

接口返回:

字段名称 字段类型 是否必填 说明
Balance string 账户余额

接口返回示例:

{
    "AdvanceAccount": {
        "Balance": "2.8222"
    },
    "code": 0,
    "msg": "success"
}

请求地址:https://open.uugate.com/Open.Customer/GetWalletBalance

请求参数:

字段名称 字段类型 是否必填 说明

接口请求示例:

{
    "uid": "136994",
    "sign": "00bd24ca1fa29a333191235aad10621a",
    "timestamp": "1716700031",
    "data": "{\"Address\":\"TASz7np3asoQiUi9eG8F9TXPyrXYmTJtqg\"}"
}

接口返回:

字段名称 字段类型 是否必填 说明
Balance string 账户余额

接口返回示例:

{
    "Wallet": {
        "Balance": "2.8222"
    },
    "code": 0,
    "msg": "success"
}

请求地址:https://open.uugate.com/Open.Customer/CreateWalletForSpecifiedUser

请求参数:

字段名称 字段类型 是否必填 说明
SpecifiedUserID string 需要绑定的用户ID,非必填

接口请求示例:

{
    "uid": "136994",
    "sign": "00bd24ca1fa29a333191235aad10621a",
    "timestamp": "1716700031",
    "data": "{\"SpecifiedUserID\":\"5\"}"
}

接口返回:

字段名称 字段类型 是否必填 说明
Balance string 账户余额

接口返回示例:

{
    "Wallet": {
        "Address": "TASz7np3asoQiUi9eG8F9TXPyrXYmTJtqg",
        "SpecifiedUserID": "123",
        "Blockchain": "TRC20",
    },
    "code": 0,
    "msg": "success"
}
返回码 描述
0 请求成功
403 认证失败或无权操作,具体信息见返回的msg字段
404 未找到相关信息,具体信息见返回的msg字段
-1 其他错误,具体信息见返回的msg字段
状态码 描述
待付款 待付款
已完成 已完成
补单已完成 补单已完成(也视作完成)
付款超时 付款超时
付款风险 付款风险
状态码 描述
付款中 付款中
已完成 已完成
待付款 待付款
php_demo.zip