This commit is contained in:
李子铭 2025-03-05 15:09:23 +08:00
parent 6ac3b3a4cd
commit f7def09458
4 changed files with 84 additions and 121 deletions

View File

@ -2,12 +2,10 @@ syntax = "proto3";
package api.v1;
option go_package = "voucher/api/v1;v1";
import "validate/validate.proto";
message CmbOrderRequest {
//
message CmbRequest {
//
// ID32
string mid = 1 [json_name = "mid", (validate.rules).string = {min_len: 1,max_len: 32}];
// ID32
@ -24,7 +22,28 @@ message CmbOrderRequest {
string encryptBody = 7 [json_name = "encryptBody", (validate.rules).string = {min_len: 10}];
//
string sign = 8 [json_name = "sign", (validate.rules).string = {min_len: 10}];
}
message CmbReply {
//
// 1000 1001
string respCode = 1 [json_name = "respCode"];
//
string respMsg = 2 [json_name = "respMsg"];
// yyyyMMddHHmmss
string date = 3 [json_name = "date"];
//
string keyAlias = 5 [json_name = "keyAlias"];
//
string cmbKeyAlias = 6 [json_name = "cmbKeyAlias"];
// API的说明文档
string encryptBody = 7 [json_name = "encryptBody"];
//
string sign = 8 [json_name = "sign"];
}
message CmbOrderRequest {
//
// 14
string transactionId = 9 [json_name = "transactionId", (validate.rules).string = {min_len: 1,max_len: 50}];
@ -38,22 +57,6 @@ message CmbOrderRequest {
string timestamp = 13 [json_name = "timestamp", (validate.rules).string = {min_len: 1,max_len: 20}];
}
message CmbOrderReply {
//
// 1000 1001
string respCode = 1 [json_name = "respCode"];
//
string respMsg = 2 [json_name = "respMsg"];
// yyyyMMddHHmmss
string date = 3 [json_name = "date"];
//
string keyAlias = 5 [json_name = "keyAlias"];
//
string cmbKeyAlias = 6 [json_name = "cmbKeyAlias"];
// API的说明文档
string encryptBody = 7 [json_name = "encryptBody"];
//
string sign = 8 [json_name = "sign"];
//
// 50
string codeNo = 9 [json_name = "codeNo"];
@ -61,45 +64,11 @@ message CmbOrderReply {
message CmbQueryProductRequest {
//
// ID32
string mid = 1 [json_name = "mid", (validate.rules).string = {min_len: 1,max_len: 32}];
// ID32
string aid = 2 [json_name = "aid", (validate.rules).string = {min_len: 1,max_len: 32}];
// yyyyMMddHHmmss
string date = 3 [json_name = "date", (validate.rules).string = {min_len: 14}];
// 32
string random = 4 [json_name = "random", (validate.rules).string = {min_len: 1,max_len: 32}];
//
string keyAlias = 5 [json_name = "keyAlias", (validate.rules).string = {min_len: 2}];
//
string cmbKeyAlias = 6 [json_name = "cmbKeyAlias", (validate.rules).string = {min_len: 2}];
// API的说明文档
string encryptBody = 7 [json_name = "encryptBody", (validate.rules).string = {min_len: 10}];
//
string sign = 8 [json_name = "sign", (validate.rules).string = {min_len: 10}];
//
//
string activityId = 9 [json_name = "activityId", (validate.rules).string = {min_len: 1,max_len: 32}];
}
message CmbQueryProductReply {
//
// 1000 1001
string respCode = 1 [json_name = "respCode"];
//
string respMsg = 2 [json_name = "respMsg"];
// yyyyMMddHHmmss
string date = 3 [json_name = "date"];
//
string keyAlias = 5 [json_name = "keyAlias"];
//
string cmbKeyAlias = 6 [json_name = "cmbKeyAlias"];
// API的说明文档
string encryptBody = 7 [json_name = "encryptBody"];
//
string sign = 8 [json_name = "sign"];
//
//
string activityName = 9 [json_name = "activityName"];
@ -123,25 +92,8 @@ message CmbQueryProductReply {
string detail = 18 [json_name = "detail"];
}
message CmbNotifyRequest {
//
// ID32
string mid = 1 [json_name = "mid", (validate.rules).string = {min_len: 1,max_len: 32}];
// ID32
string aid = 2 [json_name = "aid", (validate.rules).string = {min_len: 1,max_len: 32}];
// yyyyMMddHHmmss
string date = 3 [json_name = "date", (validate.rules).string = {min_len: 14}];
// 32
string random = 4 [json_name = "random", (validate.rules).string = {min_len: 1,max_len: 32}];
//
string keyAlias = 5 [json_name = "keyAlias", (validate.rules).string = {min_len: 2}];
//
string cmbKeyAlias = 6 [json_name = "cmbKeyAlias", (validate.rules).string = {min_len: 2}];
// API的说明文档
string encryptBody = 7 [json_name = "encryptBody", (validate.rules).string = {min_len: 10}];
//
string sign = 8 [json_name = "sign", (validate.rules).string = {min_len: 10}];
message CmbNotifyRequest {
// codeNo
string ticket = 9 [json_name = "ticket"];
// 0使1使

View File

@ -36,8 +36,11 @@ func NewHTTPServer(
r.POST("/v1/wechat/notify", voucherService.WechatNotify)
cmb := r.Group("/cmb")
cmb.POST("/v1/orderMock", voucherService.CmbOrderMock)
cmb.POST("/v1/order", voucherService.CmbOrder)
cmb.POST("/v1/query", voucherService.CmbQuery)
cmb.POST("/v1/product_query_mock", voucherService.CmbProductQueryMock)
cmb.POST("/v1/product_query", voucherService.CmbProductQuery)
return srv

View File

@ -9,36 +9,27 @@ import (
func (s *VoucherService) CmbOrder(ctx http.Context) error {
reply := &v1.CmbOrderReply{
RespCode: "",
RespMsg: "",
Date: "",
KeyAlias: "",
CmbKeyAlias: "",
EncryptBody: "",
Sign: "",
CodeNo: "",
var req v1.CmbOrderReply
if err := ctx.BindForm(&req); err != nil {
return err
}
orderNo, err := s.cmbOrder(ctx)
if err != nil {
reply.RespCode = "1001"
reply.RespMsg = err.Error()
} else {
reply.RespCode = "1000"
reply.RespMsg = "成功"
reply.CodeNo = orderNo
reply := &v1.CmbReply{
//RespCode: "1000",
//RespMsg: "成功",
//Date: "",
//KeyAlias: "",
//CmbKeyAlias: "",
//EncryptBody: "",
//Sign: "",
}
// todo 签名
reply.Sign = ""
return ctx.JSON(200, reply)
}
func (s *VoucherService) cmbOrder(ctx http.Context) (string, error) {
var req v1.CmbOrderRequest
var req v1.CmbRequest
if err := ctx.BindForm(&req); err != nil {
return "", err
}
@ -50,9 +41,9 @@ func (s *VoucherService) cmbOrder(ctx http.Context) (string, error) {
// todo 签名验证
boReq := &bo.OrderCreateReqBo{
OutBizNo: req.TransactionId,
ProductNo: req.ActivityId,
Account: req.CmbUid,
//OutBizNo: req.TransactionId,
//ProductNo: req.ActivityId,
//Account: req.CmbUid,
AccountType: vo.OrderAccountTypeOpenId,
}
@ -64,25 +55,8 @@ func (s *VoucherService) cmbOrder(ctx http.Context) (string, error) {
return orderNo, nil
}
func (s *VoucherService) CmbQuery(ctx http.Context) error {
return ctx.JSON(200, nil)
}
func (s *VoucherService) CmbProductQuery(ctx http.Context) error {
err := s.cmbProductQuery(ctx)
if err != nil {
return ctx.JSON(200, &v1.CmbOrderReply{
RespCode: "1001",
RespMsg: err.Error(),
})
}
return ctx.JSON(200, nil)
}
func (s *VoucherService) cmbProductQuery(ctx http.Context) error {
var req v1.CmbQueryProductRequest
if err := ctx.BindForm(&req); err != nil {
return err
@ -99,13 +73,13 @@ func (s *VoucherService) cmbProductQuery(ctx http.Context) error {
// 数据构造 加签 返回
rep := &v1.CmbQueryProductReply{
RespCode: "",
RespMsg: "",
Date: "",
KeyAlias: "",
CmbKeyAlias: "",
EncryptBody: "",
Sign: "",
//RespCode: "",
//RespMsg: "",
//Date: "",
//KeyAlias: "",
//CmbKeyAlias: "",
//EncryptBody: "",
//Sign: "",
ActivityName: "",
ActivityId: *q.StockId,
Amount: "",

View File

@ -0,0 +1,34 @@
package service
import (
"github.com/go-kratos/kratos/v2/transport/http"
v1 "voucher/api/v1"
)
func (s *VoucherService) CmbOrderMock(ctx http.Context) error {
var req v1.CmbOrderReply
if err := ctx.BindForm(&req); err != nil {
return err
}
reply := &v1.CmbRequest{}
return ctx.JSON(200, reply)
}
func (s *VoucherService) CmbProductQueryMock(ctx http.Context) error {
var req v1.CmbQueryProductRequest
if err := ctx.BindForm(&req); err != nil {
return err
}
if err := req.Validate(); err != nil {
return err
}
reply := &v1.CmbRequest{}
return ctx.JSON(200, reply)
}