diff --git a/app/user/cmd/api/internal/logic/pay/paymentlogic.go b/app/user/cmd/api/internal/logic/pay/paymentlogic.go index baa3504..945c09e 100644 --- a/app/user/cmd/api/internal/logic/pay/paymentlogic.go +++ b/app/user/cmd/api/internal/logic/pay/paymentlogic.go @@ -9,6 +9,7 @@ import ( "github.com/zeromicro/go-zero/core/logx" "github.com/zeromicro/go-zero/core/stores/sqlx" "math" + "qnc-server/app/user/cmd/api/internal/middleware" "qnc-server/app/user/cmd/api/internal/svc" "qnc-server/app/user/cmd/api/internal/types" "qnc-server/app/user/model" @@ -37,6 +38,11 @@ func (l *PaymentLogic) Payment(req *types.PaymentReq) (resp *types.PaymentResp, if getUidErr != nil { return nil, errors.Wrapf(xerr.NewErrCode(xerr.SERVER_COMMON_ERROR), "生成订单, 获取用户信息失败, %+v", getUidErr) } + + brand, ok := l.ctx.Value(middleware.BrandKey).(string) + if !ok { + return nil, errors.Wrapf(xerr.NewErrCode(xerr.SERVER_COMMON_ERROR), "生成订单, 获取平台失败, %+v", getUidErr) + } redisKey := fmt.Sprintf("%d:%s", userID, req.Id) cache, cacheErr := l.svcCtx.Redis.GetCtx(l.ctx, redisKey) if cacheErr != nil { @@ -102,7 +108,7 @@ func (l *PaymentLogic) Payment(req *types.PaymentReq) (resp *types.PaymentResp, prepayID, createOrderErr = l.svcCtx.WechatPayService.CreateWechatOrder(l.ctx, amount, product.ProductName, outTradeNo) } else if req.PayMethod == "alipay" { outTradeNo = l.svcCtx.AlipayService.GenerateOutTradeNo() - prepayID, createOrderErr = l.svcCtx.AlipayService.CreateAlipayOrder(l.ctx, amount, product.ProductName, outTradeNo) + prepayID, createOrderErr = l.svcCtx.AlipayService.CreateAlipayOrder(l.ctx, amount, product.ProductName, outTradeNo, brand) } else if req.PayMethod == "appleiap" { outTradeNo = l.svcCtx.ApplePayService.GenerateOutTradeNo() prepayID = l.svcCtx.ApplePayService.GetIappayAppID(product.ProductEn) diff --git a/app/user/cmd/api/internal/service/alipayService.go b/app/user/cmd/api/internal/service/alipayService.go index 7804805..32924c5 100644 --- a/app/user/cmd/api/internal/service/alipayService.go +++ b/app/user/cmd/api/internal/service/alipayService.go @@ -59,7 +59,13 @@ func (a *AliPayService) CreateAlipayAppOrder(amount float64, subject string, out } // CreateAlipayH5Order 创建支付宝H5支付订单 -func (a *AliPayService) CreateAlipayH5Order(amount float64, subject string, outTradeNo string) (string, error) { +func (a *AliPayService) CreateAlipayH5Order(amount float64, subject string, outTradeNo string, brand string) (string, error) { + var returnURL string + if brand == "tyc" { + returnURL = "https://www.tianyuancha.com/report" + } else { + returnURL = a.config.ReturnURL + } client := a.AlipayClient totalAmount := lzUtils.ToAlipayAmount(amount) // 构造H5支付请求 @@ -70,7 +76,7 @@ func (a *AliPayService) CreateAlipayH5Order(amount float64, subject string, outT TotalAmount: totalAmount, ProductCode: "QUICK_WAP_PAY", // H5支付专用产品码 NotifyURL: a.config.NotifyUrl, // 异步回调通知地址 - ReturnURL: a.config.ReturnURL, + ReturnURL: returnURL, }, } // 获取H5支付请求字符串,这里会签名 @@ -83,7 +89,7 @@ func (a *AliPayService) CreateAlipayH5Order(amount float64, subject string, outT } // CreateAlipayOrder 根据平台类型创建支付宝支付订单 -func (a *AliPayService) CreateAlipayOrder(ctx context.Context, amount float64, subject string, outTradeNo string) (string, error) { +func (a *AliPayService) CreateAlipayOrder(ctx context.Context, amount float64, subject string, outTradeNo string, brand string) (string, error) { // 根据 ctx 中的 platform 判断平台 platform, platformOk := ctx.Value("platform").(string) if !platformOk { @@ -95,7 +101,7 @@ func (a *AliPayService) CreateAlipayOrder(ctx context.Context, amount float64, s return a.CreateAlipayAppOrder(amount, subject, outTradeNo) case "h5": // 调用H5支付的创建方法,并传入 returnUrl - return a.CreateAlipayH5Order(amount, subject, outTradeNo) + return a.CreateAlipayH5Order(amount, subject, outTradeNo, brand) default: return "", fmt.Errorf("不支持的支付平台: %s", platform) }