temp
This commit is contained in:
		| @@ -2,6 +2,11 @@ package IVYZ | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
| 	"encoding/hex" | ||||
| 	"tianyuan-api/apps/api/internal/common" | ||||
| 	"tianyuan-api/apps/api/internal/validator" | ||||
| 	"tianyuan-api/apps/api/internal/westmodel" | ||||
| 	"tianyuan-api/pkg/crypto" | ||||
| 	"tianyuan-api/pkg/errs" | ||||
|  | ||||
| 	"tianyuan-api/apps/api/internal/svc" | ||||
| @@ -25,7 +30,88 @@ func NewIVYZ9363Logic(ctx context.Context, svcCtx *svc.ServiceContext) *IVYZ9363 | ||||
| } | ||||
|  | ||||
| func (l *IVYZ9363Logic) IVYZ9363(req *types.Request) (resp *types.Response, err *errs.AppError) { | ||||
| 	// todo: add your logic here and delete this line | ||||
| 	var status string | ||||
| 	var charges bool | ||||
| 	var remark = "" | ||||
| 	secretKey, ok := l.ctx.Value("secretKey").(string) | ||||
| 	if !ok { | ||||
| 		return &types.Response{}, errs.ErrSystem | ||||
| 	} | ||||
| 	transactionID, ok := l.ctx.Value("transactionID").(string) | ||||
| 	if !ok { | ||||
| 		return &types.Response{}, errs.ErrSystem | ||||
| 	} | ||||
| 	userId, userIdOk := l.ctx.Value("userId").(int64) | ||||
| 	if !userIdOk { | ||||
| 		return &types.Response{}, errs.ErrSystem | ||||
| 	} | ||||
| 	productCode, productCodeOk := l.ctx.Value("productCode").(string) | ||||
| 	if !productCodeOk || productCode == "" { | ||||
| 		return &types.Response{}, errs.ErrSystem | ||||
| 	} | ||||
| 	defer func() { | ||||
| 		if err != nil { | ||||
| 			status = "failed" | ||||
| 			charges = false | ||||
| 		} else { | ||||
| 			status = "success" | ||||
| 			charges = true | ||||
| 		} | ||||
| 		sendApiRequestMessageErr := l.svcCtx.ApiRequestMqsService.SendApiRequestMessage(l.ctx, transactionID, userId, productCode, status, charges, remark) | ||||
| 		if sendApiRequestMessageErr != nil { | ||||
| 			logx.Errorf("发送 API 请求消息失败: %v", err) | ||||
| 		} | ||||
| 	}() | ||||
| 	// 1、解密 | ||||
| 	key, decodeErr := hex.DecodeString(secretKey) | ||||
| 	if decodeErr != nil { | ||||
| 		return nil, errs.ErrSystem | ||||
| 	} | ||||
| 	decryptData, aesDecryptErr := crypto.AesDecrypt(req.Data, key) | ||||
| 	if aesDecryptErr != nil || len(decryptData) == 0 { | ||||
| 		return nil, errs.ErrParamDecryption | ||||
| 	} | ||||
|  | ||||
| 	return | ||||
| 	// 2、校验 | ||||
| 	var data validator.IVYZ9363Request | ||||
| 	if validatorErr := validator.ValidateAndParse(decryptData, &data); validatorErr != nil { | ||||
| 		return nil, errs.ErrParamValidation | ||||
| 	} | ||||
|  | ||||
| 	// 3、西部加密 | ||||
| 	westConfig := l.svcCtx.Config.WestConfig | ||||
| 	encryptedFields, encryptStructFieldsErr := common.EncryptStructFields(data, westConfig.Key) | ||||
| 	if encryptStructFieldsErr != nil { | ||||
| 		logx.Errorf("西部加密错误:%v", encryptStructFieldsErr) | ||||
| 		return nil, errs.ErrSystem | ||||
| 	} | ||||
|  | ||||
| 	// 4、发送请求到西部 | ||||
| 	logx.Infof("交易号:%s", transactionID) | ||||
| 	apiRequest := common.MapStructToAPIRequest(encryptedFields, westmodel.IVYZ9363FieldMapping, "data") | ||||
|  | ||||
| 	westResp, callAPIErr := l.svcCtx.WestDexService.CallAPI("G10GX01", apiRequest) | ||||
| 	if callAPIErr != nil { | ||||
| 		return nil, errs.ErrSystem | ||||
| 	} | ||||
|  | ||||
| 	// 5、响应解析 | ||||
| 	//var respData westmodel.G32BJ05Response | ||||
| 	//unmarshalErr := json.Unmarshal(westResp, &respData) | ||||
| 	//if unmarshalErr != nil { | ||||
| 	//	return nil, errs.ErrSystem | ||||
| 	//} | ||||
| 	// | ||||
| 	//if respData.Data.Code == "00" || respData.Data.Code == "100002" { | ||||
| 	//	l.ctx = context.WithValue(l.ctx, "Charges", true) | ||||
| 	//} else { | ||||
| 	//	return nil, errs.ErrSystem | ||||
| 	//} | ||||
| 	//encryptData, aesEncrypt := crypto.AesEncrypt(westResp, key) | ||||
| 	//if aesEncrypt != nil { | ||||
| 	//	return nil, errs.ErrSystem | ||||
| 	//} | ||||
| 	return &types.Response{ | ||||
| 		Data: string(westResp), | ||||
| 	}, nil | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user