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('\n\x0c\x63oupon.proto\x12\x06\x63oupon\"?\n\nCouponInfo\x12\x10\n\x08\x43ouponId\x18\x01 \x01(\x03\x12\x11\n\tCouponNum\x18\x02 \x01(\x03\x12\x0c\n\x04\x43ode\x18\x03 \x01(\t\"\xae\x01\n\x11SendCouponRequest\x12\x0b\n\x03\x62id\x18\x01 \x01(\x03\x12\x0b\n\x03\x61id\x18\x02 \x01(\x03\x12\x0b\n\x03sid\x18\x03 \x01(\x03\x12\x0f\n\x07transId\x18\x04 \x01(\x03\x12\x0f\n\x07\x66romJob\x18\x05 \x01(\x08\x12\x0c\n\x04uids\x18\x06 \x03(\x03\x12%\n\tcouponids\x18\x07 \x03(\x0b\x32\x12.coupon.CouponInfo\x12\x0c\n\x04obid\x18\x08 \x01(\x03\x12\r\n\x05isBag\x18\t \x01(\x08\"<\n\tBoolReply\x12\x0f\n\x07\x65rrCode\x18\x01 \x01(\x03\x12\x0e\n\x06\x65rrMsg\x18\x02 \x01(\t\x12\x0e\n\x06result\x18\x03 \x01(\x08\x32\x44\n\x06\x63oupon\x12:\n\nSendCoupon\x12\x19.coupon.SendCouponRequest\x1a\x11.coupon.BoolReplyb\x06proto3') ) _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:\python36\python3.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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM