• python使用grpc调用rpc接口


    proto文件:

    syntax = "proto3";
    package coupon;
    
    
    //
    //message UnsetUseC2URequest {
    //    int64 bid = 1;
    //    int64 uid = 2;
    //    int64 sid = 3;
    //    int64 transId = 4;
    //    repeated int64 c2uIds = 5;
    //}
    //
    //message UnsetUseC2UReply {
    //  int64   errCode = 1;
    //  string  errMsg  = 2;
    //  bool result = 3;
    //}
    //
    ////检查发送的券是否可撤销
    //message CheckCancelSendC2UByTradeRequest{
    //    int64 bid = 1;
    //    int64 uid = 2;
    //    int64 sid = 3;
    //    int64 transId = 4;
    //}
    //
    //message CheckCancelSendC2UByTradeReply{
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    bool result = 3;  //true表示可以撤销。false表示不可以撤销。
    //
    //}
    //
    //// 检查交易发送的券是否可撤销
    //message CheckCancelSendC2UByConsumeTradeRequest{
    //    int64 bid = 1;
    //    int64 uid = 2;
    //    int64 sid = 3;
    //    int64 transId = 4;
    //}
    //
    //message CheckCancelSendC2UByConsumeTradeReply{
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    string result = 3; //true表示可以撤销。false表示不可以撤销
    //}
    //
    //message UidAndTransId{
    //    int64 uid = 1;
    //    int64 transId = 2;
    //}
    //message CheckCancelSendC2UByTradeMultiRequest{
    //    int64 bid = 1;
    //    int64 sid = 2;
    //    repeated UidAndTransId  params = 3; //json(array(array('uid'=>, 'transId'=>), ..))
    //}
    //
    //message CheckCancelSendC2UByTradeMultiReply{
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    string result = 3; // json 
    //}
    //message RecoverCouponsByC2uIdsRequest{
    //    int64 bid = 1;
    //    int64 uid = 2;
    //    repeated int64 c2uids = 3;
    //    string type = 4;
    //}
    //
    //message RecoverCouponsByC2uIdsReply{
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    bool result = 3; //true表示注销成功,false表示注销失败
    //}
    //
    //message UpdateC2URequest{
    //   int64 bid = 1;
    //   int64 uid = 2;
    //   string data = 3; //json
    //   string conditions = 4; //json
    //}
    //message UpdateC2UReply{
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    bool result = 3; //true表示操作成功
    //}
    //
    //// 添加券账户信息
    //message AddC2URequest{
    //    int64 bid = 1;
    //    int64 uid = 2;
    //    string data = 3; //json
    //    string shardKey = 4; //json  可能是无用的 bhy
    //}
    //
    //message AddC2UReply{
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    bool result = 3; //true表示操作成功
    //}
    //
    ////删除券账户信息
    //message DeleteC2URequest{
    //    int64 bid = 1;
    //    int64 uid = 2;
    //    string conditions = 3; //json
    //}
    //
    //message DeleteC2UReply{
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    bool result = 3; //true表示操作成功
    //}
    //
    ////根据条件获取券账户
    //message ListC2UByConditionsRequest{
    //    int64 bid = 1;
    //    int64 uid = 2;
    //    string conditions = 3; //json
    //}
    //
    //message ListC2UByConditionsReply{
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    string result = 3; //json
    //}
    //
    ////从mysql 获取券账户 
    //message ListC2UByMySQLRequest{
    //    string conditions = 1; //json
    //    string pageOptions = 2; //json
    //    string order = 3; //json
    //    repeated string fields = 4; //fields
    //}
    //
    //message ListC2UByMySQLReply{
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    string result = 3; //json
    //}
    //
    //message ListC2UFutureCanUseRequest{
    //   int64 bid = 1;
    //   int64 uid = 2;
    //   int64 sid = 3;
    //   int64 cType = 4;
    //   string pageOptions = 5; //json
    //   bool isMerge = 6; 
    //}
    //
    //message ListC2UFutureCanUseReply{
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    string result = 3; //json
    //}
    //
    //message ListC2UFutureCanUseForPosRequest{
    //   int64 bid = 1;
    //   int64 uid = 2;
    //   int64 sid = 3;
    //   int64 cType = 4;
    //   string pageOptions = 5; //json
    //   bool isMerge = 6; 
    //}
    //
    //message ListC2UFutureCanUseForPosReply{
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    string result = 3; //json
    //}
    //
    //message GetC2uForPosConsumeRequest{
    //   int64 bid = 1;
    //   int64 uid = 2;
    //   int64 sid = 3;
    //   string pageOptions = 4; //json
    //}
    //
    //message GetC2uForPosConsumeReply{ 
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    string result = 3; //json
    //}
    //
    //message UserGetCouponRequest {
    //    int64 bid = 1;
    //    int64 uid = 2;
    //    string data = 3; //json
    //}
    //
    //message UserGetCouponReply{ 
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    string result = 3; //json
    //}
    //
    //message IsCouponSendComplateRequest {
    //    int64 bid = 1;
    //    int64 uid = 2;
    //    string aids = 3; //json
    //}
    //
    //message IsCouponSendComplateReply{ 
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    bool result = 3;
    //}
    //
    //message UserCanUseConditionsRequest{
    //    int64 bid = 1;
    //    int64 uid = 2;
    //    string conditions = 3; //json
    //    string order = 4; //json
    //    string pageOptions = 5; //json
    //    bool isMerge = 6; 
    //}
    //
    //message UserCanUseConditionsReply{ 
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    string result = 3; //json
    //}
    //
    //message UserOverCouponRequest{
    //    int64 bid = 1;
    //    int64 uid = 2;
    //    string conditions = 3; //json
    //    string pageOptions = 4; //json
    //}
    //
    //message UserOverCouponReply{ 
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    string result = 3; //json
    //}
    //
    //message UpdateCouponRequest{
    //    int64 bid = 1;
    //    int64 couponId = 2;
    //    string couponData = 3; //json
    //}
    //
    //message UpdateCouponReply{ 
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    bool result = 3; 
    //}
    //
    //message DeleteCouponRequest{
    //    int64 bid = 1;
    //    int64 couponId = 2;
    //}
    //
    //message DeleteCouponReply{ 
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    bool result = 3; 
    //}
    //
    //message ListAllCouponByConditionsRequest{
    //    int64 bid = 1;
    //    string conditions = 2; //json
    //    string pageOptions = 3; //json
    //    string order = 4; //json
    //    string fields = 5; //fields
    //    int64 sid = 6;
    //}
    //
    //message ListAllCouponByConditionsReply{ 
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    bool result = 3; 
    //}
    //
    //message CountCouponNumsRequest{
    //    int64 bid = 1;
    //    int64 cType = 2;
    //    string cName = 3;
    //    int64 sid = 4;
    //}
    //
    //message CountCouponNumsReply{ 
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    int64 result = 3; 
    //}
    //
    //message CouponQuoteByActivityRequest{
    //    int64 bid = 1;
    //    int64 aid = 2;
    //    repeated int64 couponids = 3; 
    //}
    //
    //message CouponQuoteByActivityReply{ 
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    bool result = 3; 
    //}
    //
    //message CouponUnquoteByActivityRequest{
    //    int64 bid = 1;
    //    int64 aid = 2;
    //    repeated int64 couponids = 3; 
    //}
    //
    //message CouponUnquoteByActivityReply{ 
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    bool result = 3; 
    //}
    //
    //message ListCouponsByCouponIdsRequest{
    //    int64 bid = 1;
    //    repeated int64 couponIds = 2; 
    //}
    //message ListCouponsByCouponIdsReply{
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    string result = 3; 
    //}
    //
    //message UseMassCouponRequest{
    //    int64 bid = 1;
    //    string data = 2; //json
    //    string condition = 3; //json
    //}
    //
    //message UseMassCouponReply{
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    bool result = 3; 
    //}
    //
    //message AddPackRequest{
    //    string coupon = 1; //json
    //    string subCoupons = 2; //json
    //}
    //
    //message AddPackReply{
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    bool result = 3; 
    //}
    //
    //message UpdatePackRequest{
    //    int64 bid = 1;
    //    int64 packId = 2;
    //    string couponData = 3; //json
    //}
    //
    //message UpdatePackReply{
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    bool result = 3; 
    //}
    //
    //message checkSubCouponsRequest{
    //    int64 bid = 1;
    //    int64 packId = 2;
    //    string couponIdArray = 3; //json
    //}
    //
    //message checkSubCouponsReply{
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    string result = 3; 
    //}
    //
    //message DeletePackRequest{
    //    int64 bid = 1;
    //    int64 packId = 2;
    //}
    //
    //message DeletePackReply{
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    bool result = 3; 
    //}
    //
    //message PackRefreshSubCouponsRequest{
    //    int64 bid = 1;
    //    int64 packId = 2;
    //}
    //
    //message PackRefreshSubCouponsReply{
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    string result = 3; 
    //}
    //
    //message ListCouponByConditionsRequest{
    //    string conditions = 1;
    //    string pageOptions = 2;
    //    string order = 3;
    //    string fields = 4;
    //}
    //
    //message ListCouponByConditionsReply{
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    string result = 3; 
    //}
    //
    //// 查询当前用户所有的优惠券列表(相同券需要合并)
    //message ListC2URequest {
    //   int64 bid = 1;
    //   int64 uid = 2;
    //   string conditions = 3; //查询条件json字符串,php调用传json
    //     
    //}
    //
    //message ListC2UReply {
    //  int64   errCode = 1;
    //  string  errMsg  = 2;
    //  string  result = 3; //券账户字段json字符串,php调用的时候解析json
    //}
    //
    //// 查询当前用户所有可用的优惠券列表
    //message ListC2UCanUseRequest {
    //   int64 bid = 1;
    //   int64 uid = 2;
    //   int64 sid = 3;
    //   int64 cType = 4;
    //   string pageOptions = 5; //php 传递 json
    //   bool isMerge = 6;
    //   int64 aid = 7;
    //   string from = 8;
    //   bool allNotUse = 9; 
    //}
    //
    //message ListC2UCanUseReply {
    //  int64   errCode = 1;
    //  string  errMsg  = 2;
    //  string  result = 3; //券账户字段json字符串,php调用的时候解析json
    //}
    //
    //// 根据状态参数查询当前用户优惠券列表
    //message ListC2UCurrentCouponsRequest {
    //   int64 bid = 1;
    //   int64 uid = 2;
    //   int64 sid = 3;
    //   int64 cType = 4;
    //   string pageOptions = 5; //php 传递 json
    //   bool isMerge = 6;
    //   int64 aid = 7;
    //   string from = 8;
    //   bool allNotUse = 9; 
    //   int32 useStatus = 10;
    //}
    //
    //message ListC2UCurrentCouponsReply {
    //  int64   errCode = 1;
    //  string  errMsg  = 2;
    //  string  result = 3; //券账户字段json字符串,php调用的时候解析json
    //}
    //
    //// 通过c2uIds 拉取用户账户信息
    //message ListC2UByC2UIdsRequest {
    //   int64 bid = 1;
    //   int64 uid = 2;
    //   repeated int64 c2uIds = 3;
    //}
    //
    //message ListC2UByC2UIdsReply {
    //    int64   errCode = 1;
    //    string  errMsg  = 2;    
    //    string result = 3;
    //}
    
    message CouponInfo{
        int64 CouponId = 1;
        int64 CouponNum = 2;
        string Code = 3;
    }
    
    message SendCouponRequest {
        int64 bid = 1;
        int64 aid = 2;
        int64 sid = 3;
        int64 transId = 4;
        bool fromJob =5;
        repeated int64 uids = 6;
        repeated CouponInfo couponids = 7; 
        int64 obid = 8; // 默认0
        bool isBag = 9; // 是否券包
    }
    
    message BoolReply {
        int64 errCode = 1; //0值表示调用接口成功
        string errMsg = 2;
        bool result = 3; 
    }
    //
    ////消费使用券
    //message UseC2URequest {
    //    int64 bid = 1;
    //    int64 uid = 2;
    //    int64 sid = 3;
    //    int64 transId = 4;
    //    repeated int64 c2uIds = 5;
    //    string tradeType = 6;
    //         
    //}
    //
    //message UseC2UReply {
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    string result = 3;
    //}
    //
    ////撤销发送券
    //message CancelSendC2UByTradeRequest {
    //    int64 bid = 1;
    //    int64 uid = 2;
    //    int64 sid = 3;
    //    int64 transId = 4;
    //    string delType = 5;
    //    int64 couponsNum = 6;
    //    int64  sourceType = 7; 
    //    int64 repealTcId = 8;
    //
    //}
    //
    //message CancelSendC2UByTradeReply {
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    string result = 3;
    //}
    //
    ////合并用户的券帐户
    //message MergeCouponAccountRequest {
    //   int64 bid = 1; 
    //   int64 fromUid = 2;
    //   int64 toUid = 3;
    //   int64 mid = 4;
    //}
    //
    //message MergeCouponAccountReply {
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    int32 result = 3;
    //}   
    //
    //message RedisC2USelectRequest {
    //   int64 bid = 1;
    //   string c2uKey = 2;
    //   string fields = 3;
    //   string conditions = 4;  
    //}
    //
    //message RedisC2USelectReply {
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    string result = 3;
    //}
    //
    //message RedisC2UUpdateRequest {
    //   int64 bid = 1;
    //   string c2uKey = 2;
    //   string data = 3;
    //   string conditions = 4;  
    //}
    //
    //message RedisC2UUpdateReply {
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    bool result = 3;
    //}
    //
    //message RedisC2URemoveRequest {
    //   int64 bid = 1;
    //   string c2uKey = 2;
    //   string conditions = 3;
    //}
    //
    //message RedisC2URemoveReply {
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    bool result = 3;
    //}
    //
    ////添加数据
    //message RedisC2UAddRequest {
    //   int64 bid = 1;
    //   string c2uKey = 2;
    //   string data = 3;
    //   string conditions = 4;  
    //}
    //
    //message RedisC2UAddReply {
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    bool result = 3;
    //}
    //
    ////券模板redis获取
    //message RedisSelectCouponRequest {
    //   int64 bid = 1;
    //   string fields = 2;
    //   string conditions = 3;
    //}
    //
    //message RedisSelectCouponReply {
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    string result = 3;
    //}
    //
    //message RedisUpdateCouponRequest {
    //   int64 bid = 1;
    //   string data = 2;
    //   string conditions = 3;  
    //}
    //
    //message RedisUpdateCouponReply {
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    bool result = 3;
    //}
    //
    //message RedisRemoveCouponRequest {
    //   int64 bid = 1;
    //   string conditions = 2;
    //}
    //
    //message RedisRemoveCouponReply {
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    bool result = 3;
    //}
    //
    ////添加数据
    //message RedisAddCouponRequest {
    //   int64 bid = 1;
    //   string data = 2;
    //   string conditions = 3;  
    //}
    //
    //message RedisAddCouponReply {
    //    int64 errCode = 1; //0值表示调用接口成功
    //    string errMsg = 2;
    //    bool result = 3;
    //}
    //
    service coupon {
    //
    //    // 撤销消费使用券
    //    rpc UnsetUseC2U (UnsetUseC2URequest) returns (UnsetUseC2UReply) {}
    //
    //    // 检查发送的券是否可撤销
    //    rpc CheckCancelSendC2UByTrade(CheckCancelSendC2UByTradeRequest) returns (CheckCancelSendC2UByTradeReply) {}
    //
    //    // 查询当前用户所有的优惠券列表(相同券需要合并)
    //    rpc ListC2U (ListC2URequest) returns (ListC2UReply) {}
    //
    //    // 查询当前用户所有可用的优惠券列表
    //    rpc ListC2UCanUse (ListC2UCanUseRequest) returns (ListC2UCanUseReply) {}
    //
    //    // 通过c2uIds 拉取用户账户信息
    //    rpc ListC2UByC2UIds(ListC2UByC2UIdsRequest) returns (ListC2UByC2UIdsReply) {}
    //
    //    // 检查交易发送的券是否可撤销
    //    rpc CheckCancelSendC2UByConsumeTrade (CheckCancelSendC2UByConsumeTradeRequest) returns (CheckCancelSendC2UByConsumeTradeReply) {}
    //
    //    // 检查发送的券是否可撤销
    //    rpc CheckCancelSendC2UByTradeMulti (CheckCancelSendC2UByTradeMultiRequest) returns (CheckCancelSendC2UByTradeMultiReply) {}
    //
    //    // 从指定用户账户中收回指定券 - 已使用的券无法被收回,将自动跳过
    //    rpc RecoverCouponsByC2uIds (RecoverCouponsByC2uIdsRequest) returns (RecoverCouponsByC2uIdsReply) {}
    //
    //    // 更新券账户信息
    //    rpc UpdateC2U (UpdateC2URequest) returns (UpdateC2UReply) {}
    //
    //    // 添加券账户信息
    //    rpc AddC2U (AddC2URequest) returns (AddC2UReply) {}
    //
    //    // 删除券账户
    //    rpc DeleteC2U (DeleteC2URequest) returns (DeleteC2UReply) {}
    //
    //    // 根据条件获取券账户
    //    rpc ListC2UByConditions (ListC2UByConditionsRequest) returns (ListC2UByConditionsReply) {}
    //
    //    // 根据条件获取券账户 从mysql 直接获取
    //    rpc ListC2UByMySQL (ListC2UByMySQLRequest) returns (ListC2UByMySQLReply) {}
    //
    //    // 查询当前用户所有未来可用的优惠券列表 
    //    rpc ListC2UFutureCanUse (ListC2UFutureCanUseRequest) returns (ListC2UFutureCanUseReply) {}
    //
    //    // 查询当前用户所有未来可用的优惠券列表
    //    rpc ListC2UFutureCanUseForPos (ListC2UFutureCanUseForPosRequest) returns (ListC2UFutureCanUseForPosReply) {}
    //
    //    // 软pos消费页面Pos_ConsumeController的indexAction调用的方法
    //    rpc GetC2uForPosConsume (GetC2uForPosConsumeRequest) returns (GetC2uForPosConsumeReply) {}
    //
    //    // 用户领取卡券
    //    rpc UserGetCoupon (UserGetCouponRequest) returns (UserGetCouponReply) {}
    //
    //    // 查看券包有没有发完
    //    rpc IsCouponSendComplate(IsCouponSendComplateRequest) returns (IsCouponSendComplateReply) {}
    //    // 查询当前用户所有可用的优惠券搜索
    //    rpc UserCanUseConditions (UserCanUseConditionsRequest) returns (UserCanUseConditionsReply) {}
    //    //userOverCoupon
    //    rpc UserOverCoupon (UserOverCouponRequest) returns (UserOverCouponReply) {}
    //
    //    //coupon:更新券模板
    //    rpc UpdateCoupon (UpdateCouponRequest) returns (UpdateCouponReply) {}
    //
    //    //coupon:删除券模板
    //    rpc DeleteCoupon (DeleteCouponRequest) returns (DeleteCouponReply) {}
    //
    //    //coupon:根据条件获取
    //    rpc ListAllCouponByConditions(ListAllCouponByConditionsRequest) returns (ListAllCouponByConditionsReply) {}
    //
    //    //coupon: 统计优惠券数量
    //    rpc CountCouponNums (CountCouponNumsRequest) returns (CountCouponNumsReply) {}
    //
    //    //coupon:券被活动引用(优惠券cAids字段增加该活动aid) 支持券包,如果是券包,将券包下的子券也标记为引用
    //    rpc CouponQuoteByActivity(CouponQuoteByActivityRequest) returns(CouponQuoteByActivityReply) {}
    //    //coupon:券被活动取消引用 支持券包,如果是券包,将券包下的子券也取消引用
    //    rpc CouponUnquoteByActivity(CouponUnquoteByActivityRequest) returns(CouponUnquoteByActivityReply) {}
    //
    //    //coupon: 根据couponIds获取券
    //    rpc ListCouponsByCouponIds (ListCouponsByCouponIdsRequest) returns (ListCouponsByCouponIdsReply) {}
    //
    //    //coupon:useMassCoupon
    //    rpc UseMassCoupon (UseMassCouponRequest) returns (UseMassCouponReply) {}
    //
    //    //coupon: 创建卡包
    //    rpc AddPack(AddPackRequest) returns (AddPackReply) {}
    //
    //    //coupon: 更新卡包
    //    rpc UpdatePack (UpdatePackRequest) returns (UpdatePackReply) {}
    //
    //    //coupon:检查子券
    //    rpc CheckSubCoupons (checkSubCouponsRequest) returns (checkSubCouponsReply) {}
    //
    //    //coupon:删除卡包
    //    rpc DeletePack (DeletePackRequest) returns (DeletePackReply) {}
    //
    //    //coupon:刷新券包下的券
    //    rpc PackRefreshSubCoupons (PackRefreshSubCouponsRequest) returns (PackRefreshSubCouponsReply) {}
    //
    //    //coupon:根据条件获取
    //    rpc ListCouponByConditions (ListCouponByConditionsRequest) returns (ListCouponByConditionsReply) {}
    //
        // SendCoupon : 发券
        rpc SendCoupon (SendCouponRequest) returns (BoolReply);
    //
    //    //UseC2U 消费使用券
    //    rpc UseC2U (UseC2URequest) returns (UseC2UReply) {}
    //
    //    //CancelSendC2UByTrade 撤销发送券
    //    rpc CancelSendC2UByTrade (CancelSendC2UByTradeRequest) returns (CancelSendC2UByTradeReply) {}
    //
    //    //合并用户的券帐户
    //    rpc MergeCouponAccount (MergeCouponAccountRequest) returns (MergeCouponAccountReply) {}
    //
    //    //redis添加券账户
    //    rpc RedisC2UAdd(RedisC2UAddRequest) returns (RedisC2UAddReply) {}
    //
    //    //redis查询券账户
    //    rpc RedisC2USelect(RedisC2USelectRequest) returns (RedisC2USelectReply) {}
    //
    //    //redis更新券账户
    //    rpc RedisC2UUpdate(RedisC2UUpdateRequest) returns (RedisC2UUpdateReply) {}
    //
    //    //redis删除券账户
    //    rpc RedisC2URemove(RedisC2URemoveRequest) returns (RedisC2URemoveReply) {}
    //
    //    // 根据状态查询当前用户的优惠券列表
    //    rpc ListC2UCurrentCoupons(ListC2UCurrentCouponsRequest) returns (ListC2UCurrentCouponsReply) {}
    //
    //    //券模板获取
    //    rpc RedisSelectCoupon(RedisSelectCouponRequest) returns (RedisSelectCouponReply) {}
    //
    //    //券模板更新
    //    rpc RedisUpdateCoupon(RedisUpdateCouponRequest) returns (RedisUpdateCouponReply) {}
    //
    //    //券模板删除
    //    rpc RedisRemoveCoupon(RedisRemoveCouponRequest) returns (RedisRemoveCouponReply) {}
    //
    //    //券模板添加
    //    rpc RedisAddCoupon(RedisAddCouponRequest) returns (RedisAddCouponReply) {}
    //
    //
    }
    View Code

    命令行,生成python rpc架构文件:

    python3 -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. coupon.proto

    生成后的两个文件:

    coupon_pb2.py

    # Generated by the protocol buffer compiler.  DO NOT EDIT!
    # source: coupon.proto
    
    import sys
    _b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
    from google.protobuf import descriptor as _descriptor
    from google.protobuf import message as _message
    from google.protobuf import reflection as _reflection
    from google.protobuf import symbol_database as _symbol_database
    from google.protobuf import descriptor_pb2
    # @@protoc_insertion_point(imports)
    
    _sym_db = _symbol_database.Default()
    
    
    
    
    DESCRIPTOR = _descriptor.FileDescriptor(
      name='coupon.proto',
      package='coupon',
      syntax='proto3',
      serialized_pb=_b('
    x0cx63oupon.protox12x06x63oupon"?
    
    CouponInfox12x10
    x08x43ouponIdx18x01 x01(x03x12x11
    	CouponNumx18x02 x01(x03x12x0c
    x04x43odex18x03 x01(	"xaex01
    x11SendCouponRequestx12x0b
    x03x62idx18x01 x01(x03x12x0b
    x03x61idx18x02 x01(x03x12x0b
    x03sidx18x03 x01(x03x12x0f
    x07transIdx18x04 x01(x03x12x0f
    x07x66romJobx18x05 x01(x08x12x0c
    x04uidsx18x06 x03(x03x12%
    	couponidsx18x07 x03(x0bx32x12.coupon.CouponInfox12x0c
    x04obidx18x08 x01(x03x12
    x05isBagx18	 x01(x08"<
    	BoolReplyx12x0f
    x07x65rrCodex18x01 x01(x03x12x0e
    x06x65rrMsgx18x02 x01(	x12x0e
    x06resultx18x03 x01(x08x32x44
    x06x63ouponx12:
    
    SendCouponx12x19.coupon.SendCouponRequestx1ax11.coupon.BoolReplybx06proto3')
    )
    
    
    
    
    _COUPONINFO = _descriptor.Descriptor(
      name='CouponInfo',
      full_name='coupon.CouponInfo',
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
        _descriptor.FieldDescriptor(
          name='CouponId', full_name='coupon.CouponInfo.CouponId', index=0,
          number=1, type=3, cpp_type=2, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None, file=DESCRIPTOR),
        _descriptor.FieldDescriptor(
          name='CouponNum', full_name='coupon.CouponInfo.CouponNum', index=1,
          number=2, type=3, cpp_type=2, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None, file=DESCRIPTOR),
        _descriptor.FieldDescriptor(
          name='Code', full_name='coupon.CouponInfo.Code', index=2,
          number=3, type=9, cpp_type=9, label=1,
          has_default_value=False, default_value=_b("").decode('utf-8'),
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None, file=DESCRIPTOR),
      ],
      extensions=[
      ],
      nested_types=[],
      enum_types=[
      ],
      options=None,
      is_extendable=False,
      syntax='proto3',
      extension_ranges=[],
      oneofs=[
      ],
      serialized_start=24,
      serialized_end=87,
    )
    
    
    _SENDCOUPONREQUEST = _descriptor.Descriptor(
      name='SendCouponRequest',
      full_name='coupon.SendCouponRequest',
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
        _descriptor.FieldDescriptor(
          name='bid', full_name='coupon.SendCouponRequest.bid', index=0,
          number=1, type=3, cpp_type=2, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None, file=DESCRIPTOR),
        _descriptor.FieldDescriptor(
          name='aid', full_name='coupon.SendCouponRequest.aid', index=1,
          number=2, type=3, cpp_type=2, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None, file=DESCRIPTOR),
        _descriptor.FieldDescriptor(
          name='sid', full_name='coupon.SendCouponRequest.sid', index=2,
          number=3, type=3, cpp_type=2, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None, file=DESCRIPTOR),
        _descriptor.FieldDescriptor(
          name='transId', full_name='coupon.SendCouponRequest.transId', index=3,
          number=4, type=3, cpp_type=2, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None, file=DESCRIPTOR),
        _descriptor.FieldDescriptor(
          name='fromJob', full_name='coupon.SendCouponRequest.fromJob', index=4,
          number=5, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None, file=DESCRIPTOR),
        _descriptor.FieldDescriptor(
          name='uids', full_name='coupon.SendCouponRequest.uids', index=5,
          number=6, type=3, cpp_type=2, label=3,
          has_default_value=False, default_value=[],
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None, file=DESCRIPTOR),
        _descriptor.FieldDescriptor(
          name='couponids', full_name='coupon.SendCouponRequest.couponids', index=6,
          number=7, type=11, cpp_type=10, label=3,
          has_default_value=False, default_value=[],
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None, file=DESCRIPTOR),
        _descriptor.FieldDescriptor(
          name='obid', full_name='coupon.SendCouponRequest.obid', index=7,
          number=8, type=3, cpp_type=2, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None, file=DESCRIPTOR),
        _descriptor.FieldDescriptor(
          name='isBag', full_name='coupon.SendCouponRequest.isBag', index=8,
          number=9, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None, file=DESCRIPTOR),
      ],
      extensions=[
      ],
      nested_types=[],
      enum_types=[
      ],
      options=None,
      is_extendable=False,
      syntax='proto3',
      extension_ranges=[],
      oneofs=[
      ],
      serialized_start=90,
      serialized_end=264,
    )
    
    
    _BOOLREPLY = _descriptor.Descriptor(
      name='BoolReply',
      full_name='coupon.BoolReply',
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
        _descriptor.FieldDescriptor(
          name='errCode', full_name='coupon.BoolReply.errCode', index=0,
          number=1, type=3, cpp_type=2, label=1,
          has_default_value=False, default_value=0,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None, file=DESCRIPTOR),
        _descriptor.FieldDescriptor(
          name='errMsg', full_name='coupon.BoolReply.errMsg', index=1,
          number=2, type=9, cpp_type=9, label=1,
          has_default_value=False, default_value=_b("").decode('utf-8'),
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None, file=DESCRIPTOR),
        _descriptor.FieldDescriptor(
          name='result', full_name='coupon.BoolReply.result', index=2,
          number=3, type=8, cpp_type=7, label=1,
          has_default_value=False, default_value=False,
          message_type=None, enum_type=None, containing_type=None,
          is_extension=False, extension_scope=None,
          options=None, file=DESCRIPTOR),
      ],
      extensions=[
      ],
      nested_types=[],
      enum_types=[
      ],
      options=None,
      is_extendable=False,
      syntax='proto3',
      extension_ranges=[],
      oneofs=[
      ],
      serialized_start=266,
      serialized_end=326,
    )
    
    _SENDCOUPONREQUEST.fields_by_name['couponids'].message_type = _COUPONINFO
    DESCRIPTOR.message_types_by_name['CouponInfo'] = _COUPONINFO
    DESCRIPTOR.message_types_by_name['SendCouponRequest'] = _SENDCOUPONREQUEST
    DESCRIPTOR.message_types_by_name['BoolReply'] = _BOOLREPLY
    _sym_db.RegisterFileDescriptor(DESCRIPTOR)
    
    CouponInfo = _reflection.GeneratedProtocolMessageType('CouponInfo', (_message.Message,), dict(
      DESCRIPTOR = _COUPONINFO,
      __module__ = 'coupon_pb2'
      # @@protoc_insertion_point(class_scope:coupon.CouponInfo)
      ))
    _sym_db.RegisterMessage(CouponInfo)
    
    SendCouponRequest = _reflection.GeneratedProtocolMessageType('SendCouponRequest', (_message.Message,), dict(
      DESCRIPTOR = _SENDCOUPONREQUEST,
      __module__ = 'coupon_pb2'
      # @@protoc_insertion_point(class_scope:coupon.SendCouponRequest)
      ))
    _sym_db.RegisterMessage(SendCouponRequest)
    
    BoolReply = _reflection.GeneratedProtocolMessageType('BoolReply', (_message.Message,), dict(
      DESCRIPTOR = _BOOLREPLY,
      __module__ = 'coupon_pb2'
      # @@protoc_insertion_point(class_scope:coupon.BoolReply)
      ))
    _sym_db.RegisterMessage(BoolReply)
    
    
    
    _COUPON = _descriptor.ServiceDescriptor(
      name='coupon',
      full_name='coupon.coupon',
      file=DESCRIPTOR,
      index=0,
      options=None,
      serialized_start=328,
      serialized_end=396,
      methods=[
      _descriptor.MethodDescriptor(
        name='SendCoupon',
        full_name='coupon.coupon.SendCoupon',
        index=0,
        containing_service=None,
        input_type=_SENDCOUPONREQUEST,
        output_type=_BOOLREPLY,
        options=None,
      ),
    ])
    _sym_db.RegisterServiceDescriptor(_COUPON)
    
    DESCRIPTOR.services_by_name['coupon'] = _COUPON
    
    # @@protoc_insertion_point(module_scope)
    View Code

    coupon_pb2_grpc.py

    # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
    import grpc
    
    import coupon_pb2 as coupon__pb2
    
    
    class couponStub(object):
      """
      //消费使用券
      message UseC2URequest {
      int64 bid = 1;
      int64 uid = 2;
      int64 sid = 3;
      int64 transId = 4;
      repeated int64 c2uIds = 5;
      string tradeType = 6;
    
      }
    
      message UseC2UReply {
      int64 errCode = 1; //0值表示调用接口成功
      string errMsg = 2;
      string result = 3;
      }
    
      //撤销发送券
      message CancelSendC2UByTradeRequest {
      int64 bid = 1;
      int64 uid = 2;
      int64 sid = 3;
      int64 transId = 4;
      string delType = 5;
      int64 couponsNum = 6;
      int64  sourceType = 7; 
      int64 repealTcId = 8;
    
      }
    
      message CancelSendC2UByTradeReply {
      int64 errCode = 1; //0值表示调用接口成功
      string errMsg = 2;
      string result = 3;
      }
    
      //合并用户的券帐户
      message MergeCouponAccountRequest {
      int64 bid = 1; 
      int64 fromUid = 2;
      int64 toUid = 3;
      int64 mid = 4;
      }
    
      message MergeCouponAccountReply {
      int64 errCode = 1; //0值表示调用接口成功
      string errMsg = 2;
      int32 result = 3;
      }   
    
      message RedisC2USelectRequest {
      int64 bid = 1;
      string c2uKey = 2;
      string fields = 3;
      string conditions = 4;  
      }
    
      message RedisC2USelectReply {
      int64 errCode = 1; //0值表示调用接口成功
      string errMsg = 2;
      string result = 3;
      }
    
      message RedisC2UUpdateRequest {
      int64 bid = 1;
      string c2uKey = 2;
      string data = 3;
      string conditions = 4;  
      }
    
      message RedisC2UUpdateReply {
      int64 errCode = 1; //0值表示调用接口成功
      string errMsg = 2;
      bool result = 3;
      }
    
      message RedisC2URemoveRequest {
      int64 bid = 1;
      string c2uKey = 2;
      string conditions = 3;
      }
    
      message RedisC2URemoveReply {
      int64 errCode = 1; //0值表示调用接口成功
      string errMsg = 2;
      bool result = 3;
      }
    
      //添加数据
      message RedisC2UAddRequest {
      int64 bid = 1;
      string c2uKey = 2;
      string data = 3;
      string conditions = 4;  
      }
    
      message RedisC2UAddReply {
      int64 errCode = 1; //0值表示调用接口成功
      string errMsg = 2;
      bool result = 3;
      }
    
      //券模板redis获取
      message RedisSelectCouponRequest {
      int64 bid = 1;
      string fields = 2;
      string conditions = 3;
      }
    
      message RedisSelectCouponReply {
      int64 errCode = 1; //0值表示调用接口成功
      string errMsg = 2;
      string result = 3;
      }
    
      message RedisUpdateCouponRequest {
      int64 bid = 1;
      string data = 2;
      string conditions = 3;  
      }
    
      message RedisUpdateCouponReply {
      int64 errCode = 1; //0值表示调用接口成功
      string errMsg = 2;
      bool result = 3;
      }
    
      message RedisRemoveCouponRequest {
      int64 bid = 1;
      string conditions = 2;
      }
    
      message RedisRemoveCouponReply {
      int64 errCode = 1; //0值表示调用接口成功
      string errMsg = 2;
      bool result = 3;
      }
    
      //添加数据
      message RedisAddCouponRequest {
      int64 bid = 1;
      string data = 2;
      string conditions = 3;  
      }
    
      message RedisAddCouponReply {
      int64 errCode = 1; //0值表示调用接口成功
      string errMsg = 2;
      bool result = 3;
      }
    
      """
    
      def __init__(self, channel):
        """Constructor.
    
        Args:
          channel: A grpc.Channel.
        """
        self.SendCoupon = channel.unary_unary(
            '/coupon.coupon/SendCoupon',
            request_serializer=coupon__pb2.SendCouponRequest.SerializeToString,
            response_deserializer=coupon__pb2.BoolReply.FromString,
            )
    
    
    class couponServicer(object):
      """
      //消费使用券
      message UseC2URequest {
      int64 bid = 1;
      int64 uid = 2;
      int64 sid = 3;
      int64 transId = 4;
      repeated int64 c2uIds = 5;
      string tradeType = 6;
    
      }
    
      message UseC2UReply {
      int64 errCode = 1; //0值表示调用接口成功
      string errMsg = 2;
      string result = 3;
      }
    
      //撤销发送券
      message CancelSendC2UByTradeRequest {
      int64 bid = 1;
      int64 uid = 2;
      int64 sid = 3;
      int64 transId = 4;
      string delType = 5;
      int64 couponsNum = 6;
      int64  sourceType = 7; 
      int64 repealTcId = 8;
    
      }
    
      message CancelSendC2UByTradeReply {
      int64 errCode = 1; //0值表示调用接口成功
      string errMsg = 2;
      string result = 3;
      }
    
      //合并用户的券帐户
      message MergeCouponAccountRequest {
      int64 bid = 1; 
      int64 fromUid = 2;
      int64 toUid = 3;
      int64 mid = 4;
      }
    
      message MergeCouponAccountReply {
      int64 errCode = 1; //0值表示调用接口成功
      string errMsg = 2;
      int32 result = 3;
      }   
    
      message RedisC2USelectRequest {
      int64 bid = 1;
      string c2uKey = 2;
      string fields = 3;
      string conditions = 4;  
      }
    
      message RedisC2USelectReply {
      int64 errCode = 1; //0值表示调用接口成功
      string errMsg = 2;
      string result = 3;
      }
    
      message RedisC2UUpdateRequest {
      int64 bid = 1;
      string c2uKey = 2;
      string data = 3;
      string conditions = 4;  
      }
    
      message RedisC2UUpdateReply {
      int64 errCode = 1; //0值表示调用接口成功
      string errMsg = 2;
      bool result = 3;
      }
    
      message RedisC2URemoveRequest {
      int64 bid = 1;
      string c2uKey = 2;
      string conditions = 3;
      }
    
      message RedisC2URemoveReply {
      int64 errCode = 1; //0值表示调用接口成功
      string errMsg = 2;
      bool result = 3;
      }
    
      //添加数据
      message RedisC2UAddRequest {
      int64 bid = 1;
      string c2uKey = 2;
      string data = 3;
      string conditions = 4;  
      }
    
      message RedisC2UAddReply {
      int64 errCode = 1; //0值表示调用接口成功
      string errMsg = 2;
      bool result = 3;
      }
    
      //券模板redis获取
      message RedisSelectCouponRequest {
      int64 bid = 1;
      string fields = 2;
      string conditions = 3;
      }
    
      message RedisSelectCouponReply {
      int64 errCode = 1; //0值表示调用接口成功
      string errMsg = 2;
      string result = 3;
      }
    
      message RedisUpdateCouponRequest {
      int64 bid = 1;
      string data = 2;
      string conditions = 3;  
      }
    
      message RedisUpdateCouponReply {
      int64 errCode = 1; //0值表示调用接口成功
      string errMsg = 2;
      bool result = 3;
      }
    
      message RedisRemoveCouponRequest {
      int64 bid = 1;
      string conditions = 2;
      }
    
      message RedisRemoveCouponReply {
      int64 errCode = 1; //0值表示调用接口成功
      string errMsg = 2;
      bool result = 3;
      }
    
      //添加数据
      message RedisAddCouponRequest {
      int64 bid = 1;
      string data = 2;
      string conditions = 3;  
      }
    
      message RedisAddCouponReply {
      int64 errCode = 1; //0值表示调用接口成功
      string errMsg = 2;
      bool result = 3;
      }
    
      """
    
      def SendCoupon(self, request, context):
        """
        // 撤销消费使用券
        rpc UnsetUseC2U (UnsetUseC2URequest) returns (UnsetUseC2UReply) {}
    
        // 检查发送的券是否可撤销
        rpc CheckCancelSendC2UByTrade(CheckCancelSendC2UByTradeRequest) returns (CheckCancelSendC2UByTradeReply) {}
    
        // 查询当前用户所有的优惠券列表(相同券需要合并)
        rpc ListC2U (ListC2URequest) returns (ListC2UReply) {}
    
        // 查询当前用户所有可用的优惠券列表
        rpc ListC2UCanUse (ListC2UCanUseRequest) returns (ListC2UCanUseReply) {}
    
        // 通过c2uIds 拉取用户账户信息
        rpc ListC2UByC2UIds(ListC2UByC2UIdsRequest) returns (ListC2UByC2UIdsReply) {}
    
        // 检查交易发送的券是否可撤销
        rpc CheckCancelSendC2UByConsumeTrade (CheckCancelSendC2UByConsumeTradeRequest) returns (CheckCancelSendC2UByConsumeTradeReply) {}
    
        // 检查发送的券是否可撤销
        rpc CheckCancelSendC2UByTradeMulti (CheckCancelSendC2UByTradeMultiRequest) returns (CheckCancelSendC2UByTradeMultiReply) {}
    
        // 从指定用户账户中收回指定券 - 已使用的券无法被收回,将自动跳过
        rpc RecoverCouponsByC2uIds (RecoverCouponsByC2uIdsRequest) returns (RecoverCouponsByC2uIdsReply) {}
    
        // 更新券账户信息
        rpc UpdateC2U (UpdateC2URequest) returns (UpdateC2UReply) {}
    
        // 添加券账户信息
        rpc AddC2U (AddC2URequest) returns (AddC2UReply) {}
    
        // 删除券账户
        rpc DeleteC2U (DeleteC2URequest) returns (DeleteC2UReply) {}
    
        // 根据条件获取券账户
        rpc ListC2UByConditions (ListC2UByConditionsRequest) returns (ListC2UByConditionsReply) {}
    
        // 根据条件获取券账户 从mysql 直接获取
        rpc ListC2UByMySQL (ListC2UByMySQLRequest) returns (ListC2UByMySQLReply) {}
    
        // 查询当前用户所有未来可用的优惠券列表 
        rpc ListC2UFutureCanUse (ListC2UFutureCanUseRequest) returns (ListC2UFutureCanUseReply) {}
    
        // 查询当前用户所有未来可用的优惠券列表
        rpc ListC2UFutureCanUseForPos (ListC2UFutureCanUseForPosRequest) returns (ListC2UFutureCanUseForPosReply) {}
    
        // 软pos消费页面Pos_ConsumeController的indexAction调用的方法
        rpc GetC2uForPosConsume (GetC2uForPosConsumeRequest) returns (GetC2uForPosConsumeReply) {}
    
        // 用户领取卡券
        rpc UserGetCoupon (UserGetCouponRequest) returns (UserGetCouponReply) {}
    
        // 查看券包有没有发完
        rpc IsCouponSendComplate(IsCouponSendComplateRequest) returns (IsCouponSendComplateReply) {}
        // 查询当前用户所有可用的优惠券搜索
        rpc UserCanUseConditions (UserCanUseConditionsRequest) returns (UserCanUseConditionsReply) {}
        //userOverCoupon
        rpc UserOverCoupon (UserOverCouponRequest) returns (UserOverCouponReply) {}
    
        //coupon:更新券模板
        rpc UpdateCoupon (UpdateCouponRequest) returns (UpdateCouponReply) {}
    
        //coupon:删除券模板
        rpc DeleteCoupon (DeleteCouponRequest) returns (DeleteCouponReply) {}
    
        //coupon:根据条件获取
        rpc ListAllCouponByConditions(ListAllCouponByConditionsRequest) returns (ListAllCouponByConditionsReply) {}
    
        //coupon: 统计优惠券数量
        rpc CountCouponNums (CountCouponNumsRequest) returns (CountCouponNumsReply) {}
    
        //coupon:券被活动引用(优惠券cAids字段增加该活动aid) 支持券包,如果是券包,将券包下的子券也标记为引用
        rpc CouponQuoteByActivity(CouponQuoteByActivityRequest) returns(CouponQuoteByActivityReply) {}
        //coupon:券被活动取消引用 支持券包,如果是券包,将券包下的子券也取消引用
        rpc CouponUnquoteByActivity(CouponUnquoteByActivityRequest) returns(CouponUnquoteByActivityReply) {}
    
        //coupon: 根据couponIds获取券
        rpc ListCouponsByCouponIds (ListCouponsByCouponIdsRequest) returns (ListCouponsByCouponIdsReply) {}
    
        //coupon:useMassCoupon
        rpc UseMassCoupon (UseMassCouponRequest) returns (UseMassCouponReply) {}
    
        //coupon: 创建卡包
        rpc AddPack(AddPackRequest) returns (AddPackReply) {}
    
        //coupon: 更新卡包
        rpc UpdatePack (UpdatePackRequest) returns (UpdatePackReply) {}
    
        //coupon:检查子券
        rpc CheckSubCoupons (checkSubCouponsRequest) returns (checkSubCouponsReply) {}
    
        //coupon:删除卡包
        rpc DeletePack (DeletePackRequest) returns (DeletePackReply) {}
    
        //coupon:刷新券包下的券
        rpc PackRefreshSubCoupons (PackRefreshSubCouponsRequest) returns (PackRefreshSubCouponsReply) {}
    
        //coupon:根据条件获取
        rpc ListCouponByConditions (ListCouponByConditionsRequest) returns (ListCouponByConditionsReply) {}
    
        SendCoupon : 发券
    
        //UseC2U 消费使用券
        rpc UseC2U (UseC2URequest) returns (UseC2UReply) {}
    
        //CancelSendC2UByTrade 撤销发送券
        rpc CancelSendC2UByTrade (CancelSendC2UByTradeRequest) returns (CancelSendC2UByTradeReply) {}
    
        //合并用户的券帐户
        rpc MergeCouponAccount (MergeCouponAccountRequest) returns (MergeCouponAccountReply) {}
    
        //redis添加券账户
        rpc RedisC2UAdd(RedisC2UAddRequest) returns (RedisC2UAddReply) {}
    
        //redis查询券账户
        rpc RedisC2USelect(RedisC2USelectRequest) returns (RedisC2USelectReply) {}
    
            //redis更新券账户
        rpc RedisC2UUpdate(RedisC2UUpdateRequest) returns (RedisC2UUpdateReply) {}
    
            //redis删除券账户
        rpc RedisC2URemove(RedisC2URemoveRequest) returns (RedisC2URemoveReply) {}
    
        // 根据状态查询当前用户的优惠券列表
        rpc ListC2UCurrentCoupons(ListC2UCurrentCouponsRequest) returns (ListC2UCurrentCouponsReply) {}
    
        //券模板获取
        rpc RedisSelectCoupon(RedisSelectCouponRequest) returns (RedisSelectCouponReply) {}
    
        //券模板更新
        rpc RedisUpdateCoupon(RedisUpdateCouponRequest) returns (RedisUpdateCouponReply) {}
    
        //券模板删除
        rpc RedisRemoveCoupon(RedisRemoveCouponRequest) returns (RedisRemoveCouponReply) {}
    
        //券模板添加
        rpc RedisAddCoupon(RedisAddCouponRequest) returns (RedisAddCouponReply) {}
    
    
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')
    
    
    def add_couponServicer_to_server(servicer, server):
      rpc_method_handlers = {
          'SendCoupon': grpc.unary_unary_rpc_method_handler(
              servicer.SendCoupon,
              request_deserializer=coupon__pb2.SendCouponRequest.FromString,
              response_serializer=coupon__pb2.BoolReply.SerializeToString,
          ),
      }
      generic_handler = grpc.method_handlers_generic_handler(
          'coupon.coupon', rpc_method_handlers)
      server.add_generic_rpc_handlers((generic_handler,))
    View Code

    自己新建一个文件,来调用接口:

    # -*- coding: utf-8 -*-
    import grpc
    import coupon_pb2,coupon_pb2_grpc
    
    _HOST = '60.205.x.x'
    _PORT = '28083'
    
    def run():
        conn = grpc.insecure_channel(_HOST + ':' + _PORT,)
        client = coupon_pb2_grpc.couponStub(channel=conn)
    
       #couponInfo是个数组结构体 info
    = coupon_pb2.CouponInfo() info.CouponId = 12345692#1 券模版id info.CouponNum = 1 #发券数量 #1061693987532739

    args = coupon_pb2.SendCouponRequest() args.bid = 1991243684#2589123516 args.aid = 11111111 args.sid = 3691394527#222 args.uids.append(31609394374409511) #因uids是数组,所以这里单个要用append增加值,多个用extend([111,3333]) args.couponids.extend([info]) #info是个结构体 print(args) response = client.SendCoupon(args) print(response.errCode) #正确,返回0 print(response.errMsg) if __name__ == '__main__': run()

    输出结果:

    D:python36python3.exe D:/untitled4/sendCoupon-grpc.py
    bid: 1991243684
    aid: 11111111
    sid: 3691394527
    uids: 31609394374409511
    couponids {
      CouponId: 12345692
      CouponNum: 1
    }
    
    0
    
    
    Process finished with exit code 0
  • 相关阅读:
    SpringCloud系列——TX-LCN分布式事务管理
    SpringCloud系列——限流、熔断、降级
    SpringBoot系列——Logback日志,输出到文件以及实时输出到web页面
    常用的js、java编码解码方法
    WebSocket数据加密——AES与RSA混合加密
    使用Fiddler重定向App的网络请求
    C# 调用 taskkill命令结束服务进程
    Install .Net Core For CentOS
    cron表达式详解[转]
    WinServer远程部署系统打包批处理文件
  • 原文地址:https://www.cnblogs.com/yhleng/p/9512555.html
Copyright © 2020-2023  润新知