v1.2.2 适配天远查

This commit is contained in:
liangzai 2025-01-04 21:24:26 +08:00
parent e851f89608
commit 9965bb76d2
2 changed files with 17 additions and 5 deletions

View File

@ -9,6 +9,7 @@ import (
"github.com/zeromicro/go-zero/core/logx" "github.com/zeromicro/go-zero/core/logx"
"github.com/zeromicro/go-zero/core/stores/sqlx" "github.com/zeromicro/go-zero/core/stores/sqlx"
"math" "math"
"qnc-server/app/user/cmd/api/internal/middleware"
"qnc-server/app/user/cmd/api/internal/svc" "qnc-server/app/user/cmd/api/internal/svc"
"qnc-server/app/user/cmd/api/internal/types" "qnc-server/app/user/cmd/api/internal/types"
"qnc-server/app/user/model" "qnc-server/app/user/model"
@ -37,6 +38,11 @@ func (l *PaymentLogic) Payment(req *types.PaymentReq) (resp *types.PaymentResp,
if getUidErr != nil { if getUidErr != nil {
return nil, errors.Wrapf(xerr.NewErrCode(xerr.SERVER_COMMON_ERROR), "生成订单, 获取用户信息失败, %+v", getUidErr) 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) redisKey := fmt.Sprintf("%d:%s", userID, req.Id)
cache, cacheErr := l.svcCtx.Redis.GetCtx(l.ctx, redisKey) cache, cacheErr := l.svcCtx.Redis.GetCtx(l.ctx, redisKey)
if cacheErr != nil { 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) prepayID, createOrderErr = l.svcCtx.WechatPayService.CreateWechatOrder(l.ctx, amount, product.ProductName, outTradeNo)
} else if req.PayMethod == "alipay" { } else if req.PayMethod == "alipay" {
outTradeNo = l.svcCtx.AlipayService.GenerateOutTradeNo() 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" { } else if req.PayMethod == "appleiap" {
outTradeNo = l.svcCtx.ApplePayService.GenerateOutTradeNo() outTradeNo = l.svcCtx.ApplePayService.GenerateOutTradeNo()
prepayID = l.svcCtx.ApplePayService.GetIappayAppID(product.ProductEn) prepayID = l.svcCtx.ApplePayService.GetIappayAppID(product.ProductEn)

View File

@ -59,7 +59,13 @@ func (a *AliPayService) CreateAlipayAppOrder(amount float64, subject string, out
} }
// CreateAlipayH5Order 创建支付宝H5支付订单 // 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 client := a.AlipayClient
totalAmount := lzUtils.ToAlipayAmount(amount) totalAmount := lzUtils.ToAlipayAmount(amount)
// 构造H5支付请求 // 构造H5支付请求
@ -70,7 +76,7 @@ func (a *AliPayService) CreateAlipayH5Order(amount float64, subject string, outT
TotalAmount: totalAmount, TotalAmount: totalAmount,
ProductCode: "QUICK_WAP_PAY", // H5支付专用产品码 ProductCode: "QUICK_WAP_PAY", // H5支付专用产品码
NotifyURL: a.config.NotifyUrl, // 异步回调通知地址 NotifyURL: a.config.NotifyUrl, // 异步回调通知地址
ReturnURL: a.config.ReturnURL, ReturnURL: returnURL,
}, },
} }
// 获取H5支付请求字符串这里会签名 // 获取H5支付请求字符串这里会签名
@ -83,7 +89,7 @@ func (a *AliPayService) CreateAlipayH5Order(amount float64, subject string, outT
} }
// CreateAlipayOrder 根据平台类型创建支付宝支付订单 // 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 判断平台 // 根据 ctx 中的 platform 判断平台
platform, platformOk := ctx.Value("platform").(string) platform, platformOk := ctx.Value("platform").(string)
if !platformOk { if !platformOk {
@ -95,7 +101,7 @@ func (a *AliPayService) CreateAlipayOrder(ctx context.Context, amount float64, s
return a.CreateAlipayAppOrder(amount, subject, outTradeNo) return a.CreateAlipayAppOrder(amount, subject, outTradeNo)
case "h5": case "h5":
// 调用H5支付的创建方法并传入 returnUrl // 调用H5支付的创建方法并传入 returnUrl
return a.CreateAlipayH5Order(amount, subject, outTradeNo) return a.CreateAlipayH5Order(amount, subject, outTradeNo, brand)
default: default:
return "", fmt.Errorf("不支持的支付平台: %s", platform) return "", fmt.Errorf("不支持的支付平台: %s", platform)
} }