67 lines
1.6 KiB
Go
67 lines
1.6 KiB
Go
package biz
|
|
|
|
import (
|
|
"encoding/json"
|
|
"xy_sh/internal/config"
|
|
"xy_sh/internal/entities"
|
|
"xy_sh/pkg/crypto"
|
|
)
|
|
|
|
// Biz 业务逻辑层
|
|
type Biz struct {
|
|
cfg *config.Config
|
|
}
|
|
|
|
// NewBiz 创建业务逻辑实例
|
|
func NewBiz(cfg *config.Config) *Biz {
|
|
return &Biz{cfg: cfg}
|
|
}
|
|
|
|
// EncryptResponse 加密响应数据
|
|
func (b *Biz) EncryptResponse(data interface{}) (string, error) {
|
|
jsonBytes, err := json.Marshal(data)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return crypto.SM4ECBEncrypt(jsonBytes, b.cfg.SM4Key)
|
|
}
|
|
|
|
// DecryptRequest 解密请求数据
|
|
func (b *Biz) DecryptRequest(encryptedData string) ([]byte, error) {
|
|
return crypto.SM4ECBDecrypt(encryptedData, b.cfg.SM4Key)
|
|
}
|
|
|
|
// ProcessOrder 处理下单请求
|
|
func (b *Biz) ProcessOrder(req *entities.OrderRequest) (*entities.OrderResponse, error) {
|
|
return &entities.OrderResponse{
|
|
OrderNo: "HM" + generateOrderNo(),
|
|
Status: 0,
|
|
ExpireTime: "2025-12-31 23:59:59",
|
|
}, nil
|
|
}
|
|
|
|
// ProcessQuery 处理订单查询请求
|
|
func (b *Biz) ProcessQuery(req *entities.QueryRequest) (*entities.QueryResponse, error) {
|
|
return &entities.QueryResponse{
|
|
OrderNo: req.OrderNo,
|
|
Status: 0,
|
|
}, nil
|
|
}
|
|
|
|
// ProcessWechatRecharge 处理微信立减金充值请求
|
|
func (b *Biz) ProcessWechatRecharge(req *entities.WechatRechargeRequest) (*entities.WechatRechargeResponse, error) {
|
|
return &entities.WechatRechargeResponse{
|
|
OrderNo: req.OrderNo,
|
|
Status: 0,
|
|
}, nil
|
|
}
|
|
|
|
// ProcessCallback 处理回调通知
|
|
func (b *Biz) ProcessCallback(req *entities.CallbackRequest) error {
|
|
return nil
|
|
}
|
|
|
|
// generateOrderNo 生成订单号(示例)
|
|
func generateOrderNo() string {
|
|
return "0000000000000000"
|
|
} |