MarketingSystemDataExportTool/grpc/reseller/resellerv1/balance_update_tcc.proto

115 lines
4.1 KiB
Protocol Buffer
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

syntax = "proto3";
package reseller.resellerv1;
import "validate/validate.proto";
option go_package = "./reseller/resellerv1;resellerv1";
// 分销商余额变更分布式事务TCC服务
service BalanceUpdateTcc {
// 冻结金额(由于底层只有一个字段,所以调用后余额就真实发生了改变)
// 此接口权限比较大,对接方请仔细测试,以免造成公司财产损失
rpc Try(BalanceUpdateTccTryReq) returns (BalanceUpdateTccTryResp) {}
// 确认操作(确认的目的是减少定时系统核对一致性的数据量)
rpc Confirm(BalanceUpdateTccConfirmReq) returns (BalanceUpdateTccConfirmResp) {}
// 取消操作(回滚金额)
rpc Cancel(BalanceUpdateTccCancelReq) returns (BalanceUpdateTccCancelResp) {}
}
message BalanceUpdateTccTryReq {
// 原子请求id在相同type下唯一有新业务接入时请联系相关负责人分配type
string request_id = 1 [(validate.rules).string = {min_len:1,max_len:100}];
// 分销商id
int32 reseller_id = 2;
// 金额单位元保留4位小数
double money = 3 [(validate.rules).double.gt = 0];
// 操作,请特别注意不要传错此字段,此接口权限比较大,对接方请仔细测试,以免造成公司财产损失
Operate operate = 4 [(validate.rules).enum.defined_only = true];
// 类型:1-充值、2直连天下订单消费、3冲账、4退款、5扣款、6授信、7卡密订单消费更多类型请看值对象ResellerLogTypeObj
int32 type = 5 [(validate.rules).int32.gt = 0];
// 备注
string remark = 8;
// 执行操作的人0表示系统自动执行、非0则根据executor_type来判断是后台人员还是分销商
int32 executor = 11;
// 执行操作的人的类型0系统 1后台 2分销商
ExecutorType executor_type = 12 [(validate.rules).enum.defined_only = true];
// 异常时回查的http地址
// HTTP协议如果为开头为http时会使用HTTP协议请求地址为query_url + "?requestId=" + request_id。响应结构为{"status":1}1未知2成功3失败当返回失败时会回滚余额的操作
// GRPC协议非http开头时会使用GRPC协议格式为{addr@methodName}其中addr为服务地址methodName为方法名在生成的*_grpc.pb.goGRPC文件中找到FullMethodName的常量值192.168.6.194:9002@/user.userv1.Query/Query
// GRPC接口的请求和响应pb如下
/*
// 请求参数
message QueryReq {
// 原子请求id结构为"业务标识-业务数据id-雪花ID"yum-123-123456789012345678有新业务接入时请联系相关负责人分配业务标识
string request_id = 1;
}
message QueryResp {
// 查询结果1未知2成功3失败当返回失败时会回滚余额的操作
int32 status = 1;
}
*/
string query_url = 13;
// 关联账户ID
uint32 relation_account_id = 14;
// 扣款帐户ID
uint32 account_id = 15;
// 业务单号
string business_no = 16;
// 是否允许冻结状态的余额减少,默认不允许,只有扣款时才有意义
bool is_allow_frozen_decrease = 17;
// 余额变更操作
enum Operate {
BALANCE_OPERATE_DECREASE = 0; // 减少
BALANCE_OPERATE_INCREASE = 1; // 增加
}
// 操作人类型
enum ExecutorType {
BALANCE_EXECUTOR_TYPE_SYSTEM = 0; // 系统自动
BALANCE_EXECUTOR_TYPE_ADMIN = 1; // 后台操作
BALANCE_EXECUTOR_TYPE_RESELLER = 2; // 分销商操作
}
}
message BalanceUpdateTccTryResp {
}
message BalanceUpdateTccConfirmReq {
// 原子请求id
string request_id = 1 [(validate.rules).string = {min_len:1,max_len:100}];
// 更多类型请看值对象中的限制。百胜支付订单为9更多类型请看值对象ResellerLogTypeObj
int32 type = 5 [(validate.rules).int32.gt = 0];
}
message BalanceUpdateTccConfirmResp {
}
message BalanceUpdateTccCancelReq {
// 原子请求id
string request_id = 1 [(validate.rules).string = {min_len:1,max_len:100}];
// 更多类型请看值对象中的限制。百胜支付订单为9更多类型请看值对象ResellerLogTypeObj
int32 type = 5 [(validate.rules).int32.gt = 0];
}
message BalanceUpdateTccCancelResp {
}