115 lines
4.1 KiB
Protocol Buffer
115 lines
4.1 KiB
Protocol Buffer
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 {
|
||
|
||
} |