diff --git a/internal/interface/client/verification.go b/internal/interface/client/verification.go index d62bc44..8198d4d 100644 --- a/internal/interface/client/verification.go +++ b/internal/interface/client/verification.go @@ -54,7 +54,6 @@ func (receiver *VerificationClient) GetVerification(ctx context.Context, token, }, }) if err != nil { - fmt.Println("AAAAAAAAAAAa", err, verifURL, response) if response.StatusCode == 404 { return &models.Verification{},nil } diff --git a/internal/interface/controller/http/wallet_client/controllers.go b/internal/interface/controller/http/wallet_client/controllers.go index d3d3148..e27a754 100644 --- a/internal/interface/controller/http/wallet_client/controllers.go +++ b/internal/interface/controller/http/wallet_client/controllers.go @@ -59,6 +59,7 @@ func (receiver *WalletController) RequestMoney(ctx *fiber.Ctx) error { if !ok || userID == "" { return receiver.middleWare.NoAuth(ctx) } + token,_ := receiver.middleWare.ExtractToken(ctx) hlogger := log_mw.ExtractLogger(ctx) @@ -80,7 +81,7 @@ func (receiver *WalletController) RequestMoney(ctx *fiber.Ctx) error { Body: &request, UserID: userID, ClientIP: ctx.IP(), - }) + }, account, token) if err != nil { return receiver.middleWare.ErrorOld(ctx, err) } @@ -97,8 +98,9 @@ func (receiver *WalletController) RequestMoney(ctx *fiber.Ctx) error { return ctx.Status(fiber.StatusOK).JSON(&models.GetPaymentLinkResponse{Link: link}) } -func (receiver *WalletController) GetPaymentLink(ctx context.Context, request *models.GetPaymentLinkRequest) (string, errors.Error) { - if _, userErr := receiver.authClient.GetUser(ctx, request.UserID); userErr != nil { +func (receiver *WalletController) GetPaymentLink(ctx context.Context, request *models.GetPaymentLinkRequest, account *models.Account, token string) (string, errors.Error) { + auth, userErr := receiver.authClient.GetUser(ctx , request.UserID) + if userErr != nil { receiver.logger.Error("failed to get user on on ", zap.Error(userErr), zap.String("userID", request.UserID), @@ -107,25 +109,36 @@ func (receiver *WalletController) GetPaymentLink(ctx context.Context, request *m return "", userErr } + if auth.PhoneNumber == "+7" { + auth.PhoneNumber = "" + } + + verification, err := receiver.verifyClient.GetVerification(ctx, token, request.UserID) + if err != nil { + verification = &models.Verification{ + TaxNumber: "", + } + } + switch request.Body.Type { case models.PaymentTypeBankCard: - return receiver.GetPaymentLinkBankCard(ctx, request) + return receiver.GetPaymentLinkBankCard(ctx, request, account, auth, verification) case models.PaymentTypeYoomoney: - return receiver.GetPaymentLinkYooMoney(ctx, request) + return receiver.GetPaymentLinkYooMoney(ctx, request, account, auth, verification) case models.PaymentTypeSberPay: - return receiver.GetPaymentLinkSberPay(ctx, request) + return receiver.GetPaymentLinkSberPay(ctx, request, account, auth, verification) case models.PaymentTypeTinkoff: - return receiver.GetPaymentLinkTinkoff(ctx, request) + return receiver.GetPaymentLinkTinkoff(ctx, request, account, auth, verification) case models.PaymentTypeSBP: - return receiver.GetPaymentLinkSBP(ctx, request) + return receiver.GetPaymentLinkSBP(ctx, request, account, auth, verification) case models.PaymentTypeSberB2B: - return receiver.GetPaymentLinkB2B(ctx, request) + return receiver.GetPaymentLinkB2B(ctx, request, account, auth, verification) } return "", errors.NewWithMessage("invalid payment method type", errors.ErrInvalidArgs) } -func (receiver *WalletController) GetPaymentLinkBankCard(ctx context.Context, request *models.GetPaymentLinkRequest) (string, errors.Error) { +func (receiver *WalletController) GetPaymentLinkBankCard(ctx context.Context, request *models.GetPaymentLinkRequest, account *models.Account, auth *models.User, ver *models.Verification) (string, errors.Error) { link, err := receiver.paymentClient.GetPaymentLinkBankCard(ctx, &treasurer.GetPaymentLinkRequest{ MainSettings: &treasurer.MainPaymentSettings{ Currency: request.Body.Currency, @@ -134,6 +147,12 @@ func (receiver *WalletController) GetPaymentLinkBankCard(ctx context.Context, re ClientIP: request.ClientIP, CallbackHostGRPC: []string{receiver.grpc.Domen}, ReturnURL: request.Body.ReturnURL, + Customer: &treasurer.Customer{ + FullName: account.Name.Orgname + ". " + account.Name.FirstName + " " + account.Name.Secondname, + INN: ver.TaxNumber, + Email: auth.Login, + Phone: auth.PhoneNumber, + }, }, }) if err != nil { @@ -144,7 +163,7 @@ func (receiver *WalletController) GetPaymentLinkBankCard(ctx context.Context, re return link, nil } -func (receiver *WalletController) GetPaymentLinkYooMoney(ctx context.Context, request *models.GetPaymentLinkRequest) (string, errors.Error) { +func (receiver *WalletController) GetPaymentLinkYooMoney(ctx context.Context, request *models.GetPaymentLinkRequest, account *models.Account, auth *models.User, ver *models.Verification) (string, errors.Error) { link, err := receiver.paymentClient.GetPaymentLinkYooMoney(ctx, &treasurer.GetPaymentLinkRequest{ MainSettings: &treasurer.MainPaymentSettings{ Currency: request.Body.Currency, @@ -153,6 +172,12 @@ func (receiver *WalletController) GetPaymentLinkYooMoney(ctx context.Context, re ClientIP: request.ClientIP, CallbackHostGRPC: []string{receiver.grpc.Domen}, ReturnURL: request.Body.ReturnURL, + Customer: &treasurer.Customer{ + FullName: account.Name.Orgname + ", " + account.Name.FirstName + " " + account.Name.Secondname, + INN: ver.TaxNumber, + Email: auth.Login, + Phone: auth.PhoneNumber, + }, }, }) if err != nil { @@ -163,7 +188,7 @@ func (receiver *WalletController) GetPaymentLinkYooMoney(ctx context.Context, re return link, nil } -func (receiver *WalletController) GetPaymentLinkSberPay(ctx context.Context, request *models.GetPaymentLinkRequest) (string, errors.Error) { +func (receiver *WalletController) GetPaymentLinkSberPay(ctx context.Context, request *models.GetPaymentLinkRequest, account *models.Account, auth *models.User, ver *models.Verification) (string, errors.Error) { link, err := receiver.paymentClient.GetPaymentLinkSberPay(ctx, &treasurer.GetPaymentLinkRequest{ MainSettings: &treasurer.MainPaymentSettings{ Currency: request.Body.Currency, @@ -172,6 +197,12 @@ func (receiver *WalletController) GetPaymentLinkSberPay(ctx context.Context, req ClientIP: request.ClientIP, CallbackHostGRPC: []string{receiver.grpc.Domen}, ReturnURL: request.Body.ReturnURL, + Customer: &treasurer.Customer{ + FullName: account.Name.Orgname + ", " + account.Name.FirstName + " " + account.Name.Secondname, + INN: ver.TaxNumber, + Email: auth.Login, + Phone: auth.PhoneNumber, + }, }, }) if err != nil { @@ -182,7 +213,7 @@ func (receiver *WalletController) GetPaymentLinkSberPay(ctx context.Context, req return link, nil } -func (receiver *WalletController) GetPaymentLinkTinkoff(ctx context.Context, request *models.GetPaymentLinkRequest) (string, errors.Error) { +func (receiver *WalletController) GetPaymentLinkTinkoff(ctx context.Context, request *models.GetPaymentLinkRequest, account *models.Account, auth *models.User, ver *models.Verification) (string, errors.Error) { link, err := receiver.paymentClient.GetPaymentLinkTinkoff(ctx, &treasurer.GetPaymentLinkRequest{ MainSettings: &treasurer.MainPaymentSettings{ Currency: request.Body.Currency, @@ -191,6 +222,12 @@ func (receiver *WalletController) GetPaymentLinkTinkoff(ctx context.Context, req ClientIP: request.ClientIP, CallbackHostGRPC: []string{receiver.grpc.Domen}, ReturnURL: request.Body.ReturnURL, + Customer: &treasurer.Customer{ + FullName: account.Name.Orgname + ", " + account.Name.FirstName + " " + account.Name.Secondname, + INN: ver.TaxNumber, + Email: auth.Login, + Phone: auth.PhoneNumber, + }, }, }) if err != nil { @@ -201,7 +238,7 @@ func (receiver *WalletController) GetPaymentLinkTinkoff(ctx context.Context, req return link, nil } -func (receiver *WalletController) GetPaymentLinkSBP(ctx context.Context, request *models.GetPaymentLinkRequest) (string, errors.Error) { +func (receiver *WalletController) GetPaymentLinkSBP(ctx context.Context, request *models.GetPaymentLinkRequest, account *models.Account, auth *models.User, ver *models.Verification) (string, errors.Error) { link, err := receiver.paymentClient.GetPaymentLinkSBP(ctx, &treasurer.GetPaymentLinkRequest{ MainSettings: &treasurer.MainPaymentSettings{ Currency: request.Body.Currency, @@ -210,6 +247,12 @@ func (receiver *WalletController) GetPaymentLinkSBP(ctx context.Context, request ClientIP: request.ClientIP, CallbackHostGRPC: []string{receiver.grpc.Domen}, ReturnURL: request.Body.ReturnURL, + Customer: &treasurer.Customer{ + FullName: account.Name.Orgname + ", " + account.Name.FirstName + " " + account.Name.Secondname, + INN: ver.TaxNumber, + Email: auth.Login, + Phone: auth.PhoneNumber, + }, }, }) if err != nil { @@ -220,7 +263,7 @@ func (receiver *WalletController) GetPaymentLinkSBP(ctx context.Context, request return link, nil } -func (receiver *WalletController) GetPaymentLinkB2B(ctx context.Context, request *models.GetPaymentLinkRequest) (string, errors.Error) { +func (receiver *WalletController) GetPaymentLinkB2B(ctx context.Context, request *models.GetPaymentLinkRequest, account *models.Account, auth *models.User, ver *models.Verification) (string, errors.Error) { link, err := receiver.paymentClient.GetPaymentLinkSberbankB2B(ctx, &treasurer.GetPaymentLinkRequest{ MainSettings: &treasurer.MainPaymentSettings{ Currency: request.Body.Currency, @@ -229,6 +272,12 @@ func (receiver *WalletController) GetPaymentLinkB2B(ctx context.Context, request ClientIP: request.ClientIP, CallbackHostGRPC: []string{receiver.grpc.Domen}, ReturnURL: request.Body.ReturnURL, + Customer: &treasurer.Customer{ + FullName: account.Name.Orgname + ", " + account.Name.FirstName + " " + account.Name.Secondname, + INN: ver.TaxNumber, + Email: auth.Login, + Phone: auth.PhoneNumber, + }, }, }) if err != nil {