v1.2.2 适配天远查
This commit is contained in:
parent
e851f89608
commit
9965bb76d2
@ -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)
|
||||||
|
@ -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)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user