syntax = "proto3"; package api.eonline.v1; import "validate/validate.proto"; option go_package = "sandc/api/eonline/v1;v1"; // PayInitReq init request message PayInitReq { string platform = 1 [(validate.rules).string.min_len = 1]; string deviceid = 2 [(validate.rules).string.min_len = 1]; string version = 3 [(validate.rules).string.min_len = 1]; // 版本号为三段式,目前起始版本号为2.0.0,后面2段每段最大长度为2位,即后面2段最大为99.99 string ip = 4; // 测试时用,可以不传 string ts = 5 [(validate.rules).string.min_len = 1]; // utc时间秒,客户端发送消息时的本地时间;在测试模式下,服务器会把ts当成登录时间计算,可用于改变登录日期 string sign = 6 [(validate.rules).string.min_len = 1]; } // PayInitReply init reply message PayInitReply { string uuid = 1; // 用户唯一字符串 message Item { uint32 id = 1; // 产品id double amount = 2; // 产品价格 uint32 status = 3; // 状态:1可提现 2:条件未达成 3:当天该产品id已提现成功, 4:禁止提现, 5:提现中 } uint32 days = 2; // 新增,登录天数,从1开始 repeated Item items = 3; // 提现情况 int32 CanCheckSubmit = 4; // 0提交审核的人数已满,不能提交了,1可以提交身份审核 int32 CheckSubmit = 5; // 提交身份文件验证情况,0没有提交,1提交过 int32 CheckResult = 6; // 身份文件审核有反馈的情况,0没有记录,1审核没通过,2审核通过 int32 CheckPayout = 7; // 提交身份文件奖励5美元领取的情况,0没有提现记录,1提现中,2提现成功,3提现失败 int32 CheckCoin = 8; // 身份文件审核过的提现奖励,美分 int32 CanCheckPayOut = 9; // 身份文件审核过的提现奖励5美元 能否 提现,0能提现,1条件不满足,不能提现,2当天已经提现过,不能再次提现 string CheckResultFailedDesc = 10; // CheckResult==1时,显示的审核没通过的原因描述信息 int32 error = 11; // 错误码,0成功,1失败,2签名验证失败,3客户端版本过低,4 ts长度错误 string clientData = 12; // 客户端上传、需要保存的数据 } message PbReportDataAdjust { string gps_adid = 1; // 用户的gaid string android_id = 2; // 原始安卓 ID string adid = 3; // 与设备关联的 Adjust 标识符 string user_agent = 4; // 设备的User-Agent。必须进行 URL 编码。 string price = 5; // 客户端上报的价格 客户端上报的价格,例如0.05 string currency = 6; // 货币单位 客户端上报的货币,例如USD } message PbReportDataShuShu { string gps_gaid = 1; // 用户的gaid string android_id = 2; // 原始安卓 ID string adid = 3; // 与设备关联的 Adjust 标识符 string user_agent = 4; // 设备的User-Agent。必须进行 URL 编码 string price = 5; // 客户端上报的价格 客户端上报的价格,例如0.05 string currency = 6; // 货币单位 客户端上报的货币,例如USD string payment_method = 7; // 收款方式 暂时只有一种:pix string payment_type = 8; // 账户形式 cpf/cnpj/evp/email/phone string payment_number = 9; // 账户号码 收款账号号码 string iap_name = 10; // 商品名称 游戏侧自定义的提现项目名称,例如:0.1br/50br/100br string gamecoin_number = 11; // 提现消耗的虚拟货币数 提现消耗的虚拟货币数量,例如:1500 string gamecoin_type = 12; // 提现消耗的虚拟货币类型 金币或钞票,例如:coin/money string ss_account_id = 13; // 数数账号ID 用户的登录ID(如果需要接入数数请务必传此值) string ss_distinct_id = 14; // 数数访客ID 用户在未登录状态下的ID(如果需要接入数数请务必传此值) string ss_super_properties = 15; // 数数的公共属性和预制属性 json字符串 } // PayoutReq 赔付请求 message PayoutReq { string platform = 1 [(validate.rules).string.min_len = 1]; string deviceid = 2 [(validate.rules).string.min_len = 1]; string version = 3 [(validate.rules).string.min_len = 1]; string ts = 4 [(validate.rules).string.min_len = 1]; // utc时间秒 string sign = 5 [(validate.rules).string.min_len = 1]; string account = 6 [(validate.rules).string.min_len = 1]; // PIX: Beneficiary's PIX account paypal账号 uint32 item_id = 7 [(validate.rules).uint32 = { lte: 3, gte: 1 }]; // 1提现0.1,2提现金币大额1,3提现绿钞大额1,4是身份审核通过的奖励提现 double amount = 8 [(validate.rules).double = { lte: 50, gte: 0.1 }]; string additional_remark = 9 [(validate.rules).string.min_len = 1]; string uuid = 10 [(validate.rules).string.min_len = 1]; string ip = 11; string account_type = 12 [(validate.rules).string = { min_len: 0, max_len: 5 }]; // 非巴西PIX支付不填,PIX: Beneficiary's PIX account type- One of: CPF, CNPJ, EVP, PHONE, EMAIL string document_type = 13 [(validate.rules).string = { min_len: 0, max_len: 4 }]; // 非巴西PIX支付不填,PIX: Beneficiary's personal identification type - One of: CPF, CNPJ string document_id = 14 [(validate.rules).string = { min_len: 0, max_len: 100 }]; // 非巴西PIX支付不填,PIX: Beneficiary's personal identification number string name = 15 [(validate.rules).string = { min_len: 0, max_len: 100 }]; // 非巴西PIX支付不填,PIX: Beneficiary's name- Length between 5 and 100 PbReportDataAdjust dataAdjust = 16; // 客户端上报 adjust 数据 PbReportDataShuShu dataShuShu = 17; // 客户端上报 数数 数据 string clientData = 18; // 客户端上传、需要保存的数据 string clientName = 19; // 客户端包名 string email = 20 [(validate.rules).string.min_len = 1]; // 邮箱 } // PayoutReply 赔付响应 message PayoutReply { string id = 1; string record_no = 2; int32 error = 3; // 错误码,0成功,1失败,2签名验证失败,3客户端版本过低,4uuid错误,5所在地国家或地区不在提现限制内,6提现金额不符对应的产品id,7提现产品id不对,8达到提现金额限制,9提现次数超过限制,10今日没有提现机会,11提现账号达到次数限制,12身份审核条件不满足,不能提现,13巴西提现参数 document_type 错误, // 14巴西提现参数 document_id 错误,15 巴西提现参数 AccountType 错误,16 巴西提现参数 Name 错误,17巴西提现参数 Account 和 DocumentId 不同,18巴西提现参数account_type为CPF时 对应的 account 错误,19巴西提现参数account_type为CNPJ时 对应的 account 错误,20巴西提现参数 account_type 错误, // 21巴西提现参数 document_type 错误,22巴西提现参数account_type为CPF时 对应的 document_id 错误,23巴西提现参数account_type为CNPJ时 对应的 document_id 错误,24 ts长度错误,25 没提0.1就提现其它的 26解析数数出错 27自然量用户 } // PayoutCallbackReq 赔付回调请求 message PayoutCallbackReq { string payout_id = 1; string custom_code = 2; string status = 3; string msg = 4; int64 timestamp = 5; } // PayoutCallbackReply 赔付回调响应 message PayoutCallbackReply { string message = 1; } // PayoutCheckReq 赔付查询请求 message PayoutCheckReq { string platform = 1 [(validate.rules).string.min_len = 1]; string deviceid = 2 [(validate.rules).string.min_len = 1]; string version = 3 [(validate.rules).string.min_len = 1]; string ts = 4 [(validate.rules).string.min_len = 1]; // utc时间秒 string sign = 5 [(validate.rules).string.min_len = 1]; string ip = 6; string record_no = 7 [(validate.rules).string.min_len = 1]; } // PayoutCheckReply 赔付查询响应 message PayoutCheckReply { uint32 status = 1; // 提现状态 1:提现中,2:提现成功,3:提现失败 int32 error = 2; // 错误码,0成功,1失败,2签名验证失败,3客户端版本过低,4 ts长度错误 } // GetPayoutUserLst 查询提现邮箱请求 message PayoutUserLstReq { string platform = 1 [(validate.rules).string.min_len = 1]; string deviceid = 2 [(validate.rules).string.min_len = 1]; string version = 3 [(validate.rules).string.min_len = 1]; string ts = 4 [(validate.rules).string.min_len = 1]; // utc时间秒 string sign = 5 [(validate.rules).string.min_len = 1]; // 签名 uint32 status = 6 [(validate.rules).uint32 = { lte: 3, gte: 1 }]; // 查询提现请求的状态, 提现状态 1:提现中,2:提现成功,3:提现失败 uint32 pageIndex = 7; // 查询页第几页,从1开始 uint32 pageSize = 8; // 每页多少条记录 } // GetPayoutUserLst 获取申请提现玩家的列表请求响应 message PayoutUserLstReply { repeated PayoutUserOne lst = 1; // 只返回 提现中的 int32 error = 2; // 错误码,0成功,1失败,2签名验证失败,3访问数据库出错,4 ts长度错误 } message PayoutUserOne { string email = 1; // 邮件地址 string recordNo = 2; // 提现唯一编码 string account = 3; // paypal账号 uint32 status = 4; // 提现状态 1:提现中,2:提现成功,3:提现失败 } // SetPayoutStatus 设置指定玩家的提现状态 message PayoutStatusReq { string platform = 1 [(validate.rules).string.min_len = 1]; string deviceid = 2 [(validate.rules).string.min_len = 1]; string version = 3 [(validate.rules).string.min_len = 1]; string ts = 4 [(validate.rules).string.min_len = 1]; // utc时间秒 string sign = 5 [(validate.rules).string.min_len = 1]; // 签名 string recordNo = 6 [(validate.rules).string.min_len = 1]; // 提现唯一编码,值来自 PayoutUserOne 的 recordNo string fail = 7; // 设置拒绝原因 uint32 status = 8 [(validate.rules).uint32 = { lte: 3, gte: 2 }]; // 设置提现状态 2:提现成功,3:提现失败 } message PayoutStatusReply { string recordNo = 1; // 提现唯一编码,值来自 PayoutUserOne 的 recordNo uint32 status = 2; uint32 error = 3; // 错误码,0成功,1失败,2签名验证失败,3访问数据库出错,4 ts长度错误,5 status值错误 } // 提交身份文件验证请求 message SubmitCheckReq { string account = 1 [(validate.rules).string.min_len = 1]; // paypal账号 string uuid = 2 [(validate.rules).string.min_len = 1]; } message SubmitCheckReply { int32 result = 1; // 0成功,1失败,2以前提交过,还没审核结果,3以前提交过,并审核通过(以前提交过,但审核失败的,可以继续提交), int32 error = 2; // 错误码,0成功,1失败, } // 身份审核信息请求 message CheckInfoReq { string platform = 1 [(validate.rules).string.min_len = 1]; string deviceid = 2 [(validate.rules).string.min_len = 1]; string version = 3 [(validate.rules).string.min_len = 1]; string ip = 4; string ts = 5 [(validate.rules).string.min_len = 1]; // utc时间秒 string sign = 6 [(validate.rules).string.min_len = 1]; string uuid = 7; // 用户唯一字符串 int32 isVerificationShow = 8; // 1开,0关 } message CheckInfoReply { int32 CanCheckSubmit = 1; // 0提交审核的人数已满,不能提交了,1可以提交身份审核 int32 CheckSubmit = 2; // 提交身份文件验证情况,0没有提交,1提交过 int32 CheckResult = 3; // 身份文件审核有反馈的情况,0没有记录,1审核没通过,2审核通过 int32 CheckPayout = 4; // 提交身份文件奖励5美元领取的情况,0没有提现记录,1提现中,2提现成功,3提现失败 int32 CheckCoin = 5; // 身份文件审核过的提现奖励,美分 int32 CanCheckPayOut = 6; // 身份文件审核过的提现奖励5美元 能否 提现,0能提现,1条件不满足,不能提现,2当天已经提现过,不能再次提现 string CheckResultFailedDesc = 7; // CheckResult==1时,显示的审核没通过的原因描述信息 int32 error = 8; // 错误码,0成功,1失败,2 ts长度错误, } message PbMsgOne { int64 timeStamp = 1; // 消息时间戳utc纳秒 string uuid = 2; // 用户唯一字符串 string name = 3; // 用户名 string msg = 4; // 聊天消息 } // 发送聊天消息 message AddChatReq { int64 timeStamp = 1; // 消息时间戳,同PbMsgOne的timeStamp,客户端已有聊天的最后的时间戳,用来获取最新的聊天消息,如果为0,则从最开始获取 string platform = 2 [(validate.rules).string.min_len = 1]; string deviceid = 3 [(validate.rules).string.min_len = 1]; string version = 4 [(validate.rules).string.min_len = 1]; string ip = 5; string ts = 6 [(validate.rules).string.min_len = 1]; // utc时间秒 string sign = 7 [(validate.rules).string.min_len = 1]; string uuid = 8; // 用户唯一字符串 string msg = 9; // 聊天消息 } message AddChatReply { uint32 result = 1; // 0成功,1失败,2 ts长度错误, string uuid = 2; // 用户唯一字符串 repeated PbMsgOne lst = 3; // 聊天消息列表 int32 error = 4; // 错误码,0成功,1失败, } // 获取聊天消息列表 message GetChatReq { int64 timeStamp = 1; // 消息时间戳,同PbMsgOne的timeStamp,客户端已有聊天的最后的时间戳,用来获取最新的聊天消息,如果为0,则从最开始获取 string platform = 2 [(validate.rules).string.min_len = 1]; string deviceid = 3 [(validate.rules).string.min_len = 1]; string version = 4 [(validate.rules).string.min_len = 1]; string ip = 5; string ts = 6 [(validate.rules).string.min_len = 1]; string sign = 7 [(validate.rules).string.min_len = 1]; string uuid = 8; // 用户唯一字符串 } message GetChatReply { string uuid = 1; // 用户唯一字符串 repeated PbMsgOne lst = 2; // 聊天消息列表 int32 error = 3; // 错误码,0成功,1失败, } //////////////////////////////////////////////////////////////// // 以下为服务器端使用的,客户端不需要可忽略 message PbSvrData { repeated PbMsgOne lstChat = 1; // 聊天消息列表 // map mapReportData = 2; // 上报数据 map // uint32 rfClearReportData = 3; // 清理上报数据时间戳utc秒 } message PbUserData { } message PbReportData { PbAdjustData adjust = 1; PbShuShuData shuShu = 2; uint32 rf = 3; } message PbAdjustData { string GpsAdid = 1; string Adid = 2; string AndroidId = 3; string IpAddress = 4; string CreatedAtUnix = 5; string Currency = 6; string Environment = 7; string UserAgent = 8; string Price = 9; string FailReason = 10; string AppToken = 11; string EventToken = 12; string S2s = 13; string clientName = 14; } message PbShuShuData { string GpsAdid = 1; string AppToken = 2; string EventToken = 3; string S2s = 4; string AndroidId = 5; string Adid = 6; string IpAddress = 7; string CreatedAtUnix = 8; string UserAgent = 9; string Price = 10; string Currency = 11; string FailReason = 12; string PayoutId = 13; string MerchantReference = 14; string PaymentMethod = 15; string PaymentType = 16; string PaymentNumber = 17; string IapName = 18; string GamecoinNumber = 19; string GamecoinType = 20; string SsAccountId = 21; string SsDistinctId = 22; string SsSuperProperties = 23; string clientName = 24; }