154 lines
5.7 KiB
Go
154 lines
5.7 KiB
Go
|
|
package udunhelper
|
|||
|
|
|
|||
|
|
type VerifyRequest struct {
|
|||
|
|
MerchantId string `json:"merchantId"`
|
|||
|
|
MainCoinType string `json:"mainCoinType"`
|
|||
|
|
Address string `json:"address"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type CallbackRequest struct {
|
|||
|
|
MerchantId string `json:"merchantId"` //商户号
|
|||
|
|
MainCoinType int `json:"mainCoinType"` //主幣種編號,使用獲取商戶幣種信息接口
|
|||
|
|
CallUrl string `json:"callUrl"` //回調地址,通過該接口創建的地址,以後關於該地址的充幣信息會通過您指定的回調地址通知您
|
|||
|
|
WalletId string `json:"walletId"` //錢包編號,默認根據主錢包生成地址,可不填写
|
|||
|
|
Alias string `json:"alias"` //地址別名,可不填写
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type WithdrawRequest struct {
|
|||
|
|
/**
|
|||
|
|
{
|
|||
|
|
"address":"raadSxrUhG5EQVCY75CSGaVLWCeXd6yH6s",
|
|||
|
|
"amount":"0.11",
|
|||
|
|
"merchantId":"100109",
|
|||
|
|
"mainCoinType":"144",
|
|||
|
|
"coinType":"144",
|
|||
|
|
"callUrl":"http://localhost:8080/mch/callBack",
|
|||
|
|
"businessId":"15",
|
|||
|
|
"memo":"10112"
|
|||
|
|
}
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
Address string `json:"address"` //提币地址
|
|||
|
|
Amount string `json:"amount"` //提币数量
|
|||
|
|
MerchantId string `json:"merchantId"` //商户号
|
|||
|
|
MainCoinType string `json:"mainCoinType"` //主幣種編號,使用獲取商戶幣種信息接口
|
|||
|
|
CoinType string `json:"coinType"` //子幣種編號,使用獲取商戶幣種信息接口
|
|||
|
|
CallUrl string `json:"callUrl"` //回調地址,通過該callUrl告知您該筆提幣交易的狀態
|
|||
|
|
BusinessId string `json:"businessId"` //業務編號,必須保證該字段在系統內唯一,如果重復,則該筆提幣錢包將不會進行接收
|
|||
|
|
WalletId string `json:"-"`
|
|||
|
|
Memo string `json:"memo"` //備註,XRP和EOS,這兩種幣的提幣申請該字段可選,其他類型幣種不填
|
|||
|
|
}
|
|||
|
|
type BaseRequest struct {
|
|||
|
|
Timestamp int64 `json:"timestamp"`
|
|||
|
|
Nonce int `json:"nonce"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type HttpRequest struct {
|
|||
|
|
Timestamp int64 `json:"timestamp"` //时间戳
|
|||
|
|
Nonce int `json:"nonce"` //随机数
|
|||
|
|
Sign string `json:"sign"` //签名
|
|||
|
|
Body string `json:"body"` //请求body
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type BaseRes struct {
|
|||
|
|
Code int `json:"code"` //200才是返回成功调用
|
|||
|
|
Message string `json:"message"` //
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type BaseCoinsMerchant struct {
|
|||
|
|
Code int `json:"code"` //200才是返回成功调用
|
|||
|
|
Message string `json:"message"` //
|
|||
|
|
Data []CoinsMerchant `json:"data"` //
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//CoinsMerchant 商家持仓的币种信息
|
|||
|
|
type CoinsMerchant struct {
|
|||
|
|
MainCoinType string `json:"mainCoinType"` //主幣種類型
|
|||
|
|
CoinType string `json:"coinType"` // 幣種類型
|
|||
|
|
Symbol string `json:"symbol"` //BTC
|
|||
|
|
Name string `json:"name"` //幣種別名,BTC
|
|||
|
|
Logo string `json:"logo"` //幣種log地址
|
|||
|
|
CoinName string `json:"coinName"` //幣種全稱,Bitcoin
|
|||
|
|
MainSymbol string `json:"mainSymbol"` //主幣種單位
|
|||
|
|
Decimals string `json:"decimals"` //幣種精度,8
|
|||
|
|
TokenStatus int `json:"tokenStatus"` //0: 主幣 1:代幣
|
|||
|
|
Balance int64 `json:"balance"` //幣種余額
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type BaseCoinAddress struct {
|
|||
|
|
Code int `json:"code"` //200才是返回成功调用
|
|||
|
|
Message string `json:"message"` //
|
|||
|
|
Data CoinAddress `json:"data"` //
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//CoinAddress 地址返回
|
|||
|
|
type CoinAddress struct {
|
|||
|
|
CoinType int `json:"coinType"` // 幣種類型
|
|||
|
|
Address string `json:"address"` //地址
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type CallBackBase struct {
|
|||
|
|
TimeStamp int64 `json:"timestamp"`
|
|||
|
|
Nonce int `json:"nonce"`
|
|||
|
|
Sign string `json:"sign"`
|
|||
|
|
Body CallBackRes `json:"body"` //
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//CallBackRes 回调结构体
|
|||
|
|
type CallBackRes struct {
|
|||
|
|
Address string `json:"address"` //地址
|
|||
|
|
Amount string `json:"amount"` //交易數量,根據幣種精度獲取實際金額,實際金額=amount/pow(10,decimals),即實際金額等於amount除以10的decimals次方
|
|||
|
|
Fee string `json:"fee"` //礦工費,根據幣種精度獲取實際金額,實際金額獲取同上
|
|||
|
|
Decimals string `json:"decimals"` //幣種精度
|
|||
|
|
CoinType string `json:"coinType"` //子幣種編號,使用獲取商戶幣種信息接口
|
|||
|
|
MainCoinType string `json:"mainCoinType"` //主幣種類型
|
|||
|
|
BusinessId string `json:"businessId"` //業務編號,提幣回調時為提幣請求時傳入的,充幣回調無值
|
|||
|
|
BlockHigh string `json:"blockHigh"` //區塊高度
|
|||
|
|
TradeId string `json:"tradeId"` //業務流水號
|
|||
|
|
TxId string `json:"txid"` //區塊鏈交易哈希
|
|||
|
|
Memo string `json:"memo"` //備註,XRP和EOS,使用獲取商戶幣種信息接口,這2種類型幣的充提幣可能有值
|
|||
|
|
Status int `json:"status"` //狀態,0待審核,1審核成功,2審核駁回,3交易成功,4交易失敗
|
|||
|
|
TradeType int `json:"tradeType"` //交易類型,1充幣回調,2提幣回調
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
func getWithDrawMsg(code int) string {
|
|||
|
|
msg := ""
|
|||
|
|
switch code {
|
|||
|
|
case 200:
|
|||
|
|
msg = "提币成功"
|
|||
|
|
case 523:
|
|||
|
|
msg = "参数为空"
|
|||
|
|
case 581:
|
|||
|
|
msg = "无效的提币金额"
|
|||
|
|
case 4005:
|
|||
|
|
msg = "非法参数"
|
|||
|
|
case 4034:
|
|||
|
|
msg = "未找到该币种信息"
|
|||
|
|
case 4162:
|
|||
|
|
msg = "签名异常"
|
|||
|
|
case 4163:
|
|||
|
|
msg = "签名错误"
|
|||
|
|
case 4169:
|
|||
|
|
msg = "商户已被禁用"
|
|||
|
|
case 4183:
|
|||
|
|
msg = "到账地址异常"
|
|||
|
|
case 4193:
|
|||
|
|
msg = "EOS金额小数点后超过4位长度"
|
|||
|
|
case 4214:
|
|||
|
|
msg = "暂无可用的币种"
|
|||
|
|
case 4226:
|
|||
|
|
msg = "商户普通账户被禁用"
|
|||
|
|
case 4261:
|
|||
|
|
msg = "商户管理员账户被禁用"
|
|||
|
|
case 4284:
|
|||
|
|
msg = "商户不存在"
|
|||
|
|
case 4288:
|
|||
|
|
msg = "业务编号重复,请勿重复申请"
|
|||
|
|
case 4598:
|
|||
|
|
msg = "传入body中的list对象中的所有merchantId必须保持一致"
|
|||
|
|
case 4001:
|
|||
|
|
msg = "商户不存在"
|
|||
|
|
}
|
|||
|
|
return msg
|
|||
|
|
}
|