c2c
uri:/service/register_verify
mothod: GET
input:
phone: string * 电话
district: string * 国际区号
return:
success || error
uri:/service/register
mothod: GET
input:
phone: string * 电话
mail: string
pwd: string *
district: string * 国际区号
return:
success || error
uri:/service/loginVerify
mothod: GET
input:
phone: string 电话
return:
success || error
uri:/service/login
mothod: GET
input:
phone: string 电话
pwd: string 密码
return:
{
uid: number
phone: string
mail: string
asset: {} //资产
freeze_asset:{} //冻结资产
lock_asset:{} //锁定资产
create_time: Date
}
uri:/service/user_info
mothod:GET
input:
null
return:
{
basickinfo:{
basicInfo.uid
basicInfo.phone
basicInfo.mail
basicInfo.username //若未设置则为""
basicInfo.username_state // 0未设置,1已设置
basicInfo.freeze_asset
basicInfo.asset //资产信息
basicInfo.lock_asset =
basicInfo.create_time = this.create_time;
deal_pwd_state // 0未设置,1已设置
}
wechat_state: 0 未设置,1 已设置
alipay_state: 0 未设置,1 已设置
bankcard_state: 0 未设置,1 已设置
}
uri: /service/logout
mothod: GET
input: NaN
return: success
uri:/service/set_nickname
mothod:GET
input:
nickname:string 昵称
return:
success || error
uri:/service/reset_nickname
mothod:GET
input:
nickname:string 昵称
return:
success || error
uri:/service/set_deal_pwd
mothod:GET
input:
dealPwd:string 交易密码
return:
success || error
uri:/service/reset_deal_pwd
mothod:GET
input:
oldpwd:string 老交易密码
newpwd:string 新交易密码
return:
success || error
uri:/service/resetpwd
mothod:GET
input:
oldpwd:string 老密码
newpwd:string 新密码
return:
success || error
uri:/service/coin_list
mothod:GET
input: null
return:
['btc','usdt'...]
uri:/service/assets_detail
mothod:GET
input:null
return:
{
asset:{
'btc':1,
...
},//资产
freeze_asset:{
'btc':1,
...
}//冻结资产
}
uri:/service/current_price
mothod:GET
input:null
return:
{
usdt: 7
btc: 53000
adr: 2
ald: 3
}
uri: /service/create_address
mothod: GET
input:
symbol: string 币种名 btc,eth...
return: success || error
uri:/c2c/getVerifyCode
mothod:GET
input:null
return: success || error
uri: /c2c/pend
mothod: GET
input:
symbol: string 币种
amount: number
price: number 价格(RMB)
type: number 购买、出售类型(1:购买 2:出售)
paytype_bank: number 是否支持银行卡(0:不支持,1:支持)
paytype_wx: number 是否支持微信
paytype_alipay:number 是否支持支付宝
minnum: number 支持的最小交易数量
maxnum: number 支持的最大交易数量
pwd:string 交易密码
code:string 验证码
return:
{
uid: uid,
symbol: symbol,
amount: mongoose.Types.Decimal128.fromString(amount),
price: price,
type: type,
paytype_bank: paytype_bank,
paytype_wx: paytype_wx,
paytype_alipay: paytype_alipay,
minmum: minmum,
maxmum: maxmum,
canceled: 0, //c2c挂单状态(0:正常, 1:已取消)
time: Date.now(),
memo: memo,
}
uri:/c2c/getPendList
mothod:GET
input:
symbol:string 币种
return:
[
{
uid: uid,
symbol: symbol,
amount: mongoose.Types.Decimal128.fromString(amount),
price: price,
type: type,
paytype_bank: paytype_bank,
paytype_wx: paytype_wx,
paytype_alipay: paytype_alipay,
minmum: minmum,
maxmum: maxmum,
canceled: 0, //c2c挂单状态(0:正常, 1:已取消)
time: Date.now(),
memo: memo,
deals: Number //月成交量
},
...
]
uri:/c2c/getUserPendList
mothod:GET
input: null
return:
[
{
uid: uid,
symbol: symbol,
amount: mongoose.Types.Decimal128.fromString(amount),
price: price,
type: type,
paytype_bank: paytype_bank,
paytype_wx: paytype_wx,
paytype_alipay: paytype_alipay,
minmum: minmum,
maxmum: maxmum,
canceled: 0, //c2c挂单状态(0:正常, 1:已取消)
time: Date.now(),
memo: memo,
deals: Number //月成交量
},
...
]
uri: /c2c/pend_cancel
mothod: GET
input:
pend_id:string 挂单id
return:
更新的挂单信息
{
uid: uid,
symbol: symbol,
amount: mongoose.Types.Decimal128.fromString(amount),
price: price,
type: type,
paytype_bank: paytype_bank,
paytype_wx: paytype_wx,
paytype_alipay: paytype_alipay,
minmum: minmum,
maxmum: maxmum,
canceled: 0, //c2c挂单状态(0:正常, 1:已取消)
time: Date.now(),
memo: memo,
deals: Number //月成交量
}
uri: /c2c/order
mothod: GET
input:
uid: number
pend_id: string 下单对应的挂单ID
type: number 买卖类型 (1:购买,2出售)
amount: number 交易数量
pwd:string 交易密码
code: string 验证码
return:
C2C下单信息
{
symbol: pendRecord.symbol,
pend_id: pendId,
pend_type: pendType,
amount: decimalAmount,
code: tools.random(10000001, 99999999),
status: C2COrderModel.STATUS_WAIT_PAY,
transfer_name: ctx.args.transfer_name,
transfer_bank: ctx.args.transfer_bank,
transfer_subbank: ctx.args.transfer_subbank,
transfer_account: ctx.args.transfer_account,
seller: sellerId,
buyer: buyerId,
time: Date.now(),
}
uri:/c2c/getOrderList
mothod:GET
input:
status 订单状态
return:
{
total_page 总页数
total_count z总条数
[
{
symbol: pendRecord.symbol,
pend_id: pendId,
pend_type: pendType,
amount: decimalAmount,
code: tools.random(10000001, 99999999),
status: C2COrderModel.STATUS_WAIT_PAY,
transfer_name: ctx.args.transfer_name,
transfer_bank: ctx.args.transfer_bank,
transfer_subbank: ctx.args.transfer_subbank,
transfer_account: ctx.args.transfer_account,
seller: sellerId,
buyer: buyerId,
time: Date.now(),
pay_type: 付款方式(1,银行卡 2,微信 3,支付宝)
},
...
]
}
uri:/c2c/pay
mothod: GET
input:
order_id: string 对应order_id
pay_type: number 付款方式(1,银行卡 2,微信 3,支付宝)
return:
更新后的订单信息
{
symbol: pendRecord.symbol,
pend_id: pendId,
pend_type: pendType,
amount: decimalAmount,
code: tools.random(10000001, 99999999),
status: C2COrderModel.STATUS_WAIT_PAY,
transfer_name: ctx.args.transfer_name,
transfer_bank: ctx.args.transfer_bank,
transfer_subbank: ctx.args.transfer_subbank,
transfer_account: ctx.args.transfer_account,
seller: sellerId,
buyer: buyerId,
time: Date.now(),
pay_type: Number,//1:银行卡,2:微信,3:支付宝
}
uri:/c2c/confirm
mothod: GET
input:
order_id: string 订单id
return:
更新后的订单信息
{
symbol: pendRecord.symbol,
pend_id: pendId,
pend_type: pendType,
amount: decimalAmount,
code: tools.random(10000001, 99999999),
status: C2COrderModel.STATUS_WAIT_PAY,
transfer_name: ctx.args.transfer_name,
transfer_bank: ctx.args.transfer_bank,
transfer_subbank: ctx.args.transfer_subbank,
transfer_account: ctx.args.transfer_account,
seller: sellerId,
buyer: buyerId,
time: Date.now(),
}
uri:/c2c/cancel
mothod: GET
input:
order_id: string 订单id
return:
更新后的订单信息
{
symbol: pendRecord.symbol,
pend_id: pendId,
pend_type: pendType,
amount: decimalAmount,
code: tools.random(10000001, 99999999),
status: C2COrderModel.STATUS_WAIT_PAY,
transfer_name: ctx.args.transfer_name,
transfer_bank: ctx.args.transfer_bank,
transfer_subbank: ctx.args.transfer_subbank,
transfer_account: ctx.args.transfer_account,
seller: sellerId,
buyer: buyerId,
time: Date.now(),
}
uri:/c2c/appeal
mothod: GET
input:
order_id: string 订单id
content: string 申诉内容
return:
更新后的订单信息
{
symbol: pendRecord.symbol,
pend_id: pendId,
pend_type: pendType,
amount: decimalAmount,
code: tools.random(10000001, 99999999),
status: C2COrderModel.STATUS_WAIT_PAY,
transfer_name: ctx.args.transfer_name,
transfer_bank: ctx.args.transfer_bank,
transfer_subbank: ctx.args.transfer_subbank,
transfer_account: ctx.args.transfer_account,
seller: sellerId,
buyer: buyerId,
buyer_name: 买家用户名
seller_name: 卖家用户名
time: Date.now(),
}
uri:/service/withdraw_address_list
mothod:GET
input:
symbol: string 币种
return:
[
{
_id: ObjectId,
address: address,
symbol: symbol,
createTime: Date.now(),
uid: uid,
name: name,
},
{
...
}
]
uri:/service/create_withdraw_address
mothod:GET
input:
symbol: string 币种
address: string 地址
code: string 验证码
name: string 钱包备注
return:
{
_id: ObjectId,
address: address,
symbol: symbol,
createTime: Date.now(),
uid: uid,
name: name,
}
uri:/service/del_withdraw_address
mothod:GET
input:
id:string 要删除的条目对应的ObjectId
return:
success || error
uri:/service/custom_withdraw_request
mothod:GET
input:
return:
success||error
uri:/service/custom_withdraw_confirm
mothod:GET
input:
symbol 币种
to 提币地址,不在已添加的提币地址中会失败
amount 数量
code 提币验证码
return:
{
symbol: symbol, //币种
uid: uid,
to: to, //目标地址
amount: mongoose.Types.Decimal128.fromString(amount), // 数量
fee: mongoose.Types.Decimal128.fromString(fee), // 手续费
confirm: 0, // 0 待确认, 1已确认
time: Date.now(),
}
uri:/service/deposit_history
mothod:GET
input:
symbol:string 币种
return:
{
num 总数
data:
{
uid
symbol
from
to
amount
txid
time
}
}
uri:/service/withdraw_history
mothod:GET
input:
symbol:string 币种
return:
{
num 总数
data:
{
uid
symbol
from
to
amount
txid
time
}
}
uri:/service/addWechat
mothod:POST
input:
pwd 交易密码
code 验证码
account 微信账号
name 姓名
file 二维码图片(jpg 或者 png)
return:
success || error
uri:/service/delWechat
mothod:POST
input:
pwd 交易密码
code 验证码
return:
success || error
uri:/service/addBankcard
mothod:GET
input:
pwd 交易密码
code 验证码
name 开户名
register_bank 开户行
second_bank 支行
card 卡号
return:
success || error
uri:/service/delBankcard
mothod:GET
input:
pwd 交易密码
code 验证码
return:
success || error
uri:/service/addAlipay
mothod:POST
input:
pwd 交易密码
code 验证码
account 支付宝账号
name 姓名
file 二维码图片(jpg 或者 png)
return:
success || error
uri:/service/delAlipay
mothod:POST
input:
pwd 交易密码
code 验证码
return:
success || error
uri:/service/getPayPath
mothod:GET
input:
uid 收款人uid
paytype: 渠道(1.银行卡,2.微信,3.支付宝)
return:
//银行卡
{
name: String, //姓名
register_bank: String, //开户行
second_bank: String, //支行
card: String, //卡号
createTime: Date,
uid: Number,
status: { type: Number, default: 0 },
}
//微信,支付宝
{
name: String, //姓名
account: String, //微信账号
path: String, //二维码路径
createTime: Date,
uid: Number,
status: { type: Number, default: 0 },//0 有效 1 已删除
}
收款码文件名命名方式为 wechat+uid+后缀|| alipay+uid+后缀 如 wechat10001.jpg || alipay10001.png
收款码访问uri为 ip:port/wechat10001.jpg || ip:port/alipay10001.jpg
uri:/service/getNickName
mothod:GET
input:
uid 商家uid
return:
"xxx" 商家名称 || "" 未查找到
uri:/service/getPhoneNumber
mothod:GET
input:
uid 商家uid
return:
"13833722312" 商家名称 || "" 未查找到
es.STATUS_WAIT_PAY = 0; 等待付款
es.STATUS_FINISHED = 1; 已完成
es.STATUS_CANCELED = 2; 已取消
es.STATUS_PAYED = 3; 已付款
es.STATUS_APPEAL = 4; 已申诉
es.STATUS_APPEAL_FINISHED = 5; 申诉完成,成交
es.STATUS_APPEAL_CANCELED = 6; 申诉完成,已取消
//common
module.exports.E_NO_ERROR = 0;
module.exports.E_ERROR = 10000; //系统繁忙操作失败
module.exports.E_SERVER_EXCEPTION = 10001;
module.exports.E_ARGUMENTS_ERROR = 10002; //参数错误
module.exports.E_SECURE_ERROR = 10003; //非法数据
module.exports.E_PLEASE_RETRY = 10004;//服务器忙
module.exports.E_SIGN_ERROR = 10005;
module.exports.E_ACTION_FAILED = 10006;//服务器原因操作失败
//database
module.exports.E_DATABASE_QUERY = 11000;
module.exports.E_PHONE_NOT_FOUND = 11001; //未找到用户
module.exports.E_MAIL_EXISTS = 11002;//邮箱已注册
module.exports.E_INFO_NOT_FOUND = 11003;//未找到请求对应的信息
module.exports.E_PHONE_EXISTS = 11004;//号码已注册
//passport
module.exports.E_AUTH = 12000;
module.exports.E_PHONE_LOGIN_NOT_EXISTS = 12001;//未登录
module.exports.E_VERIFY_CODE_NOT_MATCH = 12002;//验证码错误
module.exports.E_PASSWORD_NOT_MATCH = 12003; //密码错误
module.exports.E_DEAL_PASSWORD_NOT_MATCH = 12004;//交易密码错误
//segment
module.exports.E_SEGMENT_NOT_EXISTS = 13000;
module.exports.E_VIDEO_NOT_EXISTS = 13001;
module.exports.E_NOT_ENOUGH_MONEY = 13002;
module.exports.E_FILE_304 = 13003;
module.exports.E_BAD_FILE = 13004; //文件类型不支持
module.exports.E_FILE_RECEIVE_FAIL = 13005;//文件上传失败
//Pay
module.exports.E_BAD_RECEIPT = 14000;
module.exports.E_BAD_ALREADY_PAID = 14001;
//userinfo
module.exports.E_INFO_EXISTS = 15000;//信息已存在
module.exports.E_ACCOUNT_LOCKED = 15001; //账户已锁定
module.exports.E_VERIFY_CODE_NOT_EXPIRE = 15002; //当前存在有效的验证码
module.exports.E_INVALID_ADDRESS = 15003;//无效的地址
module.exports.E_FUNDS_ERROR = 15004;//资产不足
module.exports.E_FREEZE_FAILED = 15005;//冻结资产失败
module.exports.E_DEFREEZE_FAILED = 15006;//解冻资产失败
module.exports.E_TRANSFER_FAILED = 15007;//转移资产失败
//withdraw
module.exports.E_RECORD_EXITS = 16000;//提币记录已存在
//pend
module.exports.E_PEND_EXITS = 17000;//已存在类似挂单
module.exports.E_PEND_NOT_FOUND = 17001;//未找到满足条件的挂单,可能挂单数据已变化
//order
module.exports.E_ORDER_ERROR = 18000;//系统原因下单失败
module.exports.E_ORDER_NOT_FOUND = 18001;//未找到订单