voucher/internal/service/cmb_mock.go

57 lines
1.1 KiB
Go

package service
import (
"github.com/go-kratos/kratos/v2/transport/http"
"time"
v1 "voucher/api/v1"
"voucher/internal/pkg/cmb"
)
func (s *VoucherService) CmbOrderMock(ctx http.Context) error {
var req v1.CmbOrderRequest
if err := ctx.BindForm(&req); err != nil {
return err
}
bizJson := req.String()
// 我们的sm2 公钥加密
// 请求到我们这边 使用 我们的私钥解密
encryptBody, err := cmb.Encrypt(s.bc.Cmb.Sm2Puk, bizJson)
if err != nil {
return err
}
date := time.Now().Format("20060102150405")
reply := &v1.CmbRequest{
Mid: s.bc.Cmb.Mid,
Aid: s.bc.Cmb.Aid,
Date: date,
Random: string(cmb.RandomBytes(16)),
KeyAlias: s.bc.Cmb.KeyAlias,
CmbKeyAlias: s.bc.Cmb.CmbKeyAlias,
EncryptBody: encryptBody,
Sign: "",
}
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)
}