fix(order): 优化回调订单信息获取逻辑
- 新增根据poolOrderId查询订单信息方法GetOrderByPoolOrderId - 回调处理时,当通过localId获取订单失败时,改用poolOrderId查询订单 - 若poolOrderId查询无结果,则记录错误日志并返回失败响应 - 保持回调后续逻辑一致,避免因订单ID获取失败导致异常 - 多处第三方供应商回调服务代码同步此逻辑优化 - 细化错误日志内容,方便定位和排查问题
This commit is contained in:
@@ -303,6 +303,16 @@ func GetAllAmountByMap(ctx context.Context, params map[string]string) float64 {
|
||||
return allAmount
|
||||
}
|
||||
|
||||
func GetOrderByPoolOrderId(ctx context.Context, poolOrderId string) OrderInfo {
|
||||
o := orm.NewOrm()
|
||||
orderInfo := OrderInfo{}
|
||||
_, err := o.QueryTable(ORDER_INFO).Filter("pool_order_id", poolOrderId).Limit(1).All(&orderInfo)
|
||||
if err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("get order info by bankOrderId fail: ", zap.Error(err))
|
||||
}
|
||||
return orderInfo
|
||||
}
|
||||
|
||||
func GetOrderByBankOrderId(ctx context.Context, bankOrderId string) OrderInfo {
|
||||
o := orm.NewOrm()
|
||||
var orderInfo OrderInfo
|
||||
|
||||
@@ -131,12 +131,17 @@ func (c *CarelessImpl) PayNotify() {
|
||||
}
|
||||
otelTrace.Logger.WithContext(ctx).Info("无心回调通知", zap.Any("req", req))
|
||||
localId, err := orderPoolService.GetLocalIdByOrderId(ctx, req.MchOrderNo)
|
||||
var orderInfo order.OrderInfo
|
||||
if err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("获取本地订单ID失败", zap.Error(err))
|
||||
c.Ctx.WriteString("FAIL")
|
||||
return
|
||||
orderInfo = order.GetOrderByPoolOrderId(ctx, req.MchOrderNo)
|
||||
if orderInfo.Id == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("获取本地订单ID失败", zap.Error(err))
|
||||
c.Ctx.WriteString("FAIL")
|
||||
return
|
||||
}
|
||||
} else {
|
||||
orderInfo = order.GetOrderByBankOrderId(ctx, localId)
|
||||
}
|
||||
orderInfo := order.GetOrderByBankOrderId(ctx, localId)
|
||||
|
||||
if orderInfo.BankOrderId == "" || len(orderInfo.BankOrderId) == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("【茄子】回调的订单号不存在,订单号=", zap.String("attach", req.MchKey))
|
||||
|
||||
@@ -160,12 +160,17 @@ func (c *EggplantImpl) PayNotify() {
|
||||
)
|
||||
|
||||
localId, err := orderPoolService.GetLocalIdByOrderId(ctx, params.OrderId)
|
||||
var orderInfo order.OrderInfo
|
||||
if err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("获取本地订单ID失败", zap.Error(err))
|
||||
c.Ctx.WriteString("FAIL")
|
||||
return
|
||||
orderInfo = order.GetOrderByPoolOrderId(ctx, params.OrderId)
|
||||
if orderInfo.Id == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("获取本地订单ID失败", zap.Error(err))
|
||||
c.Ctx.WriteString("FAIL")
|
||||
return
|
||||
}
|
||||
} else {
|
||||
orderInfo = order.GetOrderByBankOrderId(ctx, localId)
|
||||
}
|
||||
orderInfo := order.GetOrderByBankOrderId(ctx, localId)
|
||||
|
||||
if orderInfo.BankOrderId == "" || len(orderInfo.BankOrderId) == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("【茄子】回调的订单号不存在,订单号=", zap.String("attach", params.OrderId))
|
||||
|
||||
13
internal/service/supplier/third_party/fat_six.go
vendored
13
internal/service/supplier/third_party/fat_six.go
vendored
@@ -150,12 +150,17 @@ func (f *FatSixImpl) PayNotify() {
|
||||
}
|
||||
otelTrace.Logger.WithContext(ctx).Info("fat_six 回调", zap.Any("resp", resp))
|
||||
localId, err := orderPoolService.GetLocalIdByOrderId(ctx, resp.MerOrderTid)
|
||||
var orderInfo order.OrderInfo
|
||||
if err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("【祥云】获取本地订单ID失败", zap.Error(err))
|
||||
f.Ctx.WriteString("fail")
|
||||
return
|
||||
orderInfo = order.GetOrderByPoolOrderId(ctx, resp.MerOrderTid)
|
||||
if orderInfo.Id == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("【祥云】获取本地订单ID失败", zap.Error(err))
|
||||
f.Ctx.WriteString("fail")
|
||||
return
|
||||
}
|
||||
} else {
|
||||
orderInfo = order.GetOrderByBankOrderId(ctx, localId)
|
||||
}
|
||||
orderInfo := order.GetOrderByBankOrderId(ctx, localId)
|
||||
|
||||
if orderInfo.Status != "wait" {
|
||||
f.Ctx.WriteString("success")
|
||||
|
||||
@@ -160,12 +160,17 @@ func (c *FavorableCloudsCardImpl) PayNotify() {
|
||||
}
|
||||
|
||||
localId, err := orderPoolService.GetLocalIdByOrderId(ctx, req.MerOrderTid)
|
||||
var orderInfo order.OrderInfo
|
||||
if err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("【祥云】获取本地订单ID失败", zap.Error(err))
|
||||
c.Ctx.WriteString("fail")
|
||||
return
|
||||
orderInfo = order.GetOrderByPoolOrderId(ctx, req.MerOrderTid)
|
||||
if orderInfo.Id == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("【祥云】获取本地订单ID失败", zap.Error(err))
|
||||
c.Ctx.WriteString("fail")
|
||||
return
|
||||
}
|
||||
} else {
|
||||
orderInfo = order.GetOrderByBankOrderId(ctx, localId)
|
||||
}
|
||||
orderInfo := order.GetOrderByBankOrderId(ctx, localId)
|
||||
|
||||
if orderInfo.BankOrderId == "" || len(orderInfo.BankOrderId) == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("【祥云】回调的订单号不存在,订单号=", zap.String("localId", localId))
|
||||
|
||||
13
internal/service/supplier/third_party/flyfish.go
vendored
13
internal/service/supplier/third_party/flyfish.go
vendored
@@ -140,12 +140,17 @@ func (c *FlyFishImpl) PayNotify() {
|
||||
}
|
||||
|
||||
localId, err := orderPoolService.GetLocalIdByOrderId(ctx, respData.PayOsn)
|
||||
var orderInfo order.OrderInfo
|
||||
if err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("获取本地订单ID失败", zap.Error(err))
|
||||
c.Ctx.WriteString("FAIL")
|
||||
return
|
||||
orderInfo = order.GetOrderByPoolOrderId(ctx, respData.PayOsn)
|
||||
if orderInfo.Id == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("获取本地订单ID失败", zap.Error(err))
|
||||
c.Ctx.WriteString("FAIL")
|
||||
return
|
||||
}
|
||||
} else {
|
||||
orderInfo = order.GetOrderByBankOrderId(ctx, localId)
|
||||
}
|
||||
orderInfo := order.GetOrderByBankOrderId(ctx, localId)
|
||||
|
||||
if orderInfo.BankOrderId == "" || len(orderInfo.BankOrderId) == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("【飞鱼】回调的订单号不存在,订单号=", zap.String("bankOrderId", respData.PayOsn))
|
||||
|
||||
@@ -140,12 +140,17 @@ func (c *FlyFishV2Impl) PayNotify() {
|
||||
}
|
||||
|
||||
localId, err := orderPoolService.GetLocalIdByOrderId(ctx, formData.OrderId)
|
||||
var orderInfo order.OrderInfo
|
||||
if err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("获取本地订单ID失败", zap.Error(err))
|
||||
c.Ctx.WriteString("FAIL")
|
||||
return
|
||||
orderInfo = order.GetOrderByPoolOrderId(ctx, formData.OrderId)
|
||||
if orderInfo.Id == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("获取本地订单ID失败", zap.Error(err))
|
||||
c.Ctx.WriteString("FAIL")
|
||||
return
|
||||
}
|
||||
} else {
|
||||
orderInfo = order.GetOrderByBankOrderId(ctx, localId)
|
||||
}
|
||||
orderInfo := order.GetOrderByBankOrderId(ctx, localId)
|
||||
|
||||
if orderInfo.BankOrderId == "" || len(orderInfo.BankOrderId) == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("【飞鱼】回调的订单号不存在,订单号=", zap.String("bankOrderId", orderInfo.BankOrderId))
|
||||
|
||||
13
internal/service/supplier/third_party/jinke.go
vendored
13
internal/service/supplier/third_party/jinke.go
vendored
@@ -147,12 +147,17 @@ func (f *JinkeImpl) PayNotify() {
|
||||
))
|
||||
otelTrace.Logger.WithContext(ctx).Info("金科回调", zap.Any("resp", resp))
|
||||
localId, err := orderPoolService.GetLocalIdByOrderId(ctx, resp.OutTradeNo)
|
||||
var orderInfo order.OrderInfo
|
||||
if err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("【金科】获取本地订单ID失败", zap.Error(err))
|
||||
f.Ctx.WriteString("FAIL")
|
||||
return
|
||||
orderInfo = order.GetOrderByPoolOrderId(ctx, resp.OutTradeNo)
|
||||
if orderInfo.Id == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("【金科】获取本地订单ID失败", zap.Error(err))
|
||||
f.Ctx.WriteString("FAIL")
|
||||
return
|
||||
}
|
||||
} else {
|
||||
orderInfo = order.GetOrderByBankOrderId(ctx, localId)
|
||||
}
|
||||
orderInfo := order.GetOrderByBankOrderId(ctx, localId)
|
||||
if orderInfo.Status != "wait" {
|
||||
f.Ctx.WriteString("SUCCESS")
|
||||
return
|
||||
|
||||
@@ -134,14 +134,18 @@ func (c *LianInsImpl) PayNotify() {
|
||||
}
|
||||
otelTrace.Logger.WithContext(ctx).Info("回调通知", zap.Any("req", req))
|
||||
localId, err := orderPoolService.GetLocalIdByOrderId(ctx, req.TradeNo)
|
||||
var orderInfo order.OrderInfo
|
||||
if err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("获取本地订单ID失败", zap.Error(err))
|
||||
c.Ctx.WriteString("fail")
|
||||
return
|
||||
orderInfo = order.GetOrderByPoolOrderId(ctx, req.TradeNo)
|
||||
if orderInfo.Id == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("获取本地订单ID失败", zap.Error(err))
|
||||
c.Ctx.WriteString("fail")
|
||||
return
|
||||
}
|
||||
} else {
|
||||
orderInfo = order.GetOrderByBankOrderId(ctx, localId)
|
||||
}
|
||||
|
||||
orderInfo := order.GetOrderByBankOrderId(ctx, localId)
|
||||
|
||||
if orderInfo.BankOrderId == "" || len(orderInfo.BankOrderId) == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("回调的订单号不存在,订单号", zap.String("tradeNo", req.TradeNo))
|
||||
c.Ctx.WriteString("fail")
|
||||
|
||||
13
internal/service/supplier/third_party/luban.go
vendored
13
internal/service/supplier/third_party/luban.go
vendored
@@ -155,14 +155,19 @@ func (c *LubanImpl) PayNotify() {
|
||||
Sign: c.GetString("sign"),
|
||||
}
|
||||
localId, err := orderPoolService.GetLocalIdByOrderId(ctx, req.MchOrderNo)
|
||||
var orderInfo order.OrderInfo
|
||||
if err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("获取本地订单ID失败", zap.Error(err))
|
||||
c.Ctx.WriteString("fail")
|
||||
return
|
||||
orderInfo = order.GetOrderByPoolOrderId(ctx, req.MchOrderNo)
|
||||
if orderInfo.Id == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("获取本地订单ID失败", zap.Error(err))
|
||||
c.Ctx.WriteString("fail")
|
||||
return
|
||||
}
|
||||
} else {
|
||||
orderInfo = order.GetOrderByBankOrderId(ctx, localId)
|
||||
}
|
||||
|
||||
otelTrace.Logger.WithContext(ctx).Info("鲁班回调通知", zap.Any("req", req))
|
||||
orderInfo := order.GetOrderByBankOrderId(ctx, localId)
|
||||
|
||||
if orderInfo.BankOrderId == "" || len(orderInfo.BankOrderId) == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("【鲁班】回调的订单号不存在,订单号=", zap.String("attach", req.MchOrderNo))
|
||||
|
||||
@@ -132,14 +132,19 @@ func (c *MagicFishImpl) PayNotify() {
|
||||
return
|
||||
}
|
||||
localId, err := orderPoolService.GetLocalIdByOrderId(ctx, req.MchOrderNo)
|
||||
var orderInfo order.OrderInfo
|
||||
if err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("获取本地订单ID失败", zap.Error(err))
|
||||
c.Ctx.WriteString("FAIL")
|
||||
return
|
||||
orderInfo = order.GetOrderByPoolOrderId(ctx, req.MchOrderNo)
|
||||
if orderInfo.Id == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("获取本地订单ID失败", zap.Error(err))
|
||||
c.Ctx.WriteString("FAIL")
|
||||
return
|
||||
}
|
||||
} else {
|
||||
orderInfo = order.GetOrderByBankOrderId(ctx, localId)
|
||||
}
|
||||
|
||||
otelTrace.Logger.WithContext(ctx).Info("魔鱼回调通知", zap.Any("req", req))
|
||||
orderInfo := order.GetOrderByBankOrderId(ctx, localId)
|
||||
|
||||
if orderInfo.BankOrderId == "" || len(orderInfo.BankOrderId) == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("【魔鱼】回调的订单号不存在,订单号=", zap.String("attach", req.MchOrderNo))
|
||||
|
||||
13
internal/service/supplier/third_party/myself.go
vendored
13
internal/service/supplier/third_party/myself.go
vendored
@@ -124,12 +124,17 @@ func (c *MyselfCardImpl) PayNotify() {
|
||||
))
|
||||
defer span.End()
|
||||
localId, err := orderPoolService.GetLocalIdByOrderId(ctx, params["orderNo"])
|
||||
var orderInfo order.OrderInfo
|
||||
if err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("获取本地订单ID失败", zap.Error(err))
|
||||
c.Ctx.WriteString("Fail")
|
||||
return
|
||||
orderInfo = order.GetOrderByPoolOrderId(ctx, params["orderNo"])
|
||||
if orderInfo.Id == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("获取本地订单ID失败", zap.Error(err))
|
||||
c.Ctx.WriteString("Fail")
|
||||
return
|
||||
}
|
||||
} else {
|
||||
orderInfo = order.GetOrderByBankOrderId(ctx, localId) // OrderId
|
||||
}
|
||||
orderInfo := order.GetOrderByBankOrderId(ctx, localId) // OrderId
|
||||
if orderInfo.BankOrderId == "" || len(orderInfo.BankOrderId) == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("回调的订单号不存在,订单号=", zap.String("orderNo", localId))
|
||||
c.Ctx.WriteString("Fail")
|
||||
|
||||
15
internal/service/supplier/third_party/nuclear.go
vendored
15
internal/service/supplier/third_party/nuclear.go
vendored
@@ -164,13 +164,18 @@ func (c *NuclearImpl) PayNotify() {
|
||||
)
|
||||
|
||||
localId, err := orderPoolService.GetLocalIdByOrderId(ctx, response.OrderId)
|
||||
var orderInfo order.OrderInfo
|
||||
if err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("获取本地订单ID失败", zap.Error(err))
|
||||
c.Ctx.WriteString("Fail")
|
||||
return
|
||||
orderInfo = order.GetOrderByPoolOrderId(ctx, response.OrderId)
|
||||
if orderInfo.Id == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("获取本地订单ID失败", zap.Error(err))
|
||||
c.Ctx.WriteString("Fail")
|
||||
return
|
||||
}
|
||||
} else {
|
||||
//通form表单里提取数据
|
||||
orderInfo = order.GetOrderByBankOrderId(ctx, localId)
|
||||
}
|
||||
//通form表单里提取数据
|
||||
orderInfo := order.GetOrderByBankOrderId(ctx, localId)
|
||||
if orderInfo.BankOrderId == "" || len(orderInfo.BankOrderId) == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("【nuclear】回调的订单号不存在")
|
||||
c.Ctx.WriteString("FAIL")
|
||||
|
||||
15
internal/service/supplier/third_party/origin.go
vendored
15
internal/service/supplier/third_party/origin.go
vendored
@@ -146,13 +146,18 @@ func (c *OriginImpl) PayNotify() {
|
||||
}
|
||||
|
||||
localId, err := orderPoolService.GetLocalIdByOrderId(ctx, response.MchOrderNo)
|
||||
var orderInfo order.OrderInfo
|
||||
if err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("获取本地订单ID失败", zap.Error(err))
|
||||
c.Ctx.WriteString("Fail")
|
||||
return
|
||||
orderInfo = order.GetOrderByPoolOrderId(ctx, response.MchOrderNo)
|
||||
if orderInfo.Id == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("获取本地订单ID失败", zap.Error(err))
|
||||
c.Ctx.WriteString("Fail")
|
||||
return
|
||||
}
|
||||
} else {
|
||||
//通form表单里提取数据
|
||||
orderInfo = order.GetOrderByBankOrderId(ctx, localId)
|
||||
}
|
||||
//通form表单里提取数据
|
||||
orderInfo := order.GetOrderByBankOrderId(ctx, localId)
|
||||
if orderInfo.BankOrderId == "" || len(orderInfo.BankOrderId) == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("【nuclear】回调的订单号不存在")
|
||||
c.Ctx.WriteString("FAIL")
|
||||
|
||||
@@ -50,7 +50,7 @@ func (s *SendCardTaskTypeNuclear) getRandomId(ctx context.Context) (string, stri
|
||||
nuclearRandomId := utils.GetMd5Lower(utils.GenerateId())
|
||||
// 生成浏览器指纹哈希
|
||||
fingerprintHash := fingerprint.GenerateRandomBrowserFingerprintHash()
|
||||
err = redisClient.Set(ctx, "nuclear_random_ids:"+nuclearRandomId, fingerprintHash, 0)
|
||||
err = redisClient.Set(ctx, "nuclear_random_ids:"+nuclearRandomId, fingerprintHash, time.Hour*time.Duration(rand.Uint64N(24)+1))
|
||||
if err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("Failed to set nuclear ID", zap.Error(err))
|
||||
}
|
||||
|
||||
13
internal/service/supplier/third_party/sdpay.go
vendored
13
internal/service/supplier/third_party/sdpay.go
vendored
@@ -132,12 +132,17 @@ func (f *SdPayImpl) PayNotify() {
|
||||
span.SetAttributes(attribute.String("bankOrderId", resp.OrderSN), attribute.String("status", resp.OrderStatus))
|
||||
|
||||
localId, err := orderPoolService.GetLocalIdByOrderId(ctx, resp.OrderSN)
|
||||
var orderInfo order.OrderInfo
|
||||
if err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("获取本地订单ID失败", zap.Error(err))
|
||||
f.Ctx.WriteString("fail")
|
||||
return
|
||||
orderInfo = order.GetOrderByPoolOrderId(ctx, resp.OrderSN)
|
||||
if orderInfo.Id == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("获取本地订单ID失败", zap.Error(err))
|
||||
f.Ctx.WriteString("fail")
|
||||
return
|
||||
}
|
||||
} else {
|
||||
orderInfo = order.GetOrderByBankOrderId(ctx, localId)
|
||||
}
|
||||
orderInfo := order.GetOrderByBankOrderId(ctx, localId)
|
||||
if orderInfo.Status != "wait" {
|
||||
otelTrace.Logger.WithContext(ctx).Info("订单已处理", zap.String("bankOrderId", orderInfo.BankOrderId))
|
||||
f.Ctx.WriteString("SUCCESS")
|
||||
|
||||
13
internal/service/supplier/third_party/sesame.go
vendored
13
internal/service/supplier/third_party/sesame.go
vendored
@@ -133,12 +133,17 @@ func (f *SesameImpl) PayNotify() {
|
||||
}
|
||||
otelTrace.Logger.WithContext(ctx).Info("芝麻 回调", zap.Any("resp", resp))
|
||||
localId, err := orderPoolService.GetLocalIdByOrderId(ctx, resp.OrderId)
|
||||
var orderInfo order.OrderInfo
|
||||
if err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("【芝麻】获取本地订单ID失败", zap.Error(err))
|
||||
f.Ctx.WriteString("fail")
|
||||
return
|
||||
orderInfo = order.GetOrderByPoolOrderId(ctx, resp.OrderId)
|
||||
if orderInfo.Id == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("【芝麻】获取本地订单ID失败", zap.Error(err))
|
||||
f.Ctx.WriteString("fail")
|
||||
return
|
||||
}
|
||||
} else {
|
||||
orderInfo = order.GetOrderByBankOrderId(ctx, localId)
|
||||
}
|
||||
orderInfo := order.GetOrderByBankOrderId(ctx, localId)
|
||||
|
||||
if orderInfo.Status != "wait" {
|
||||
f.Ctx.WriteString("success")
|
||||
|
||||
13
internal/service/supplier/third_party/shanfu.go
vendored
13
internal/service/supplier/third_party/shanfu.go
vendored
@@ -161,12 +161,17 @@ func (c *ShanFuImpl) PayNotify() {
|
||||
//通form表单里提取数据
|
||||
otelTrace.Logger.WithContext(ctx).Info("【闪付】回调数据", zap.Any("params", params))
|
||||
localId, err := orderPoolService.GetLocalIdByOrderId(ctx, convertor.ToString(params["orderid"]))
|
||||
var orderInfo order.OrderInfo
|
||||
if err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("获取本地订单ID失败", zap.Error(err))
|
||||
c.Ctx.WriteString("FAIL")
|
||||
return
|
||||
orderInfo = order.GetOrderByPoolOrderId(ctx, convertor.ToString(params["orderid"]))
|
||||
if orderInfo.Id == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("获取本地订单ID失败", zap.Error(err))
|
||||
c.Ctx.WriteString("FAIL")
|
||||
return
|
||||
}
|
||||
} else {
|
||||
orderInfo = order.GetOrderByBankOrderId(ctx, localId)
|
||||
}
|
||||
orderInfo := order.GetOrderByBankOrderId(ctx, localId)
|
||||
if orderInfo.BankOrderId == "" || len(orderInfo.BankOrderId) == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("【闪付】回调的订单号不存在,订单号=", zap.String("attach", convertor.ToString(params["orderid"])))
|
||||
c.Ctx.WriteString("FAIL")
|
||||
|
||||
@@ -135,12 +135,17 @@ func (f *ShengtianImpl) PayNotify() {
|
||||
}
|
||||
otelTrace.Logger.WithContext(ctx).Info("盛天 回调", zap.Any("resp", resp))
|
||||
localId, err := orderPoolService.GetLocalIdByOrderId(ctx, resp.MchOrderNo)
|
||||
var orderInfo order.OrderInfo
|
||||
if err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("【祥云】获取本地订单ID失败", zap.Error(err))
|
||||
f.Ctx.WriteString("fail")
|
||||
return
|
||||
orderInfo = order.GetOrderByPoolOrderId(ctx, resp.MchOrderNo)
|
||||
if orderInfo.Id == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("获取本地订单ID失败", zap.Error(err))
|
||||
f.Ctx.WriteString("FAIL")
|
||||
return
|
||||
}
|
||||
} else {
|
||||
orderInfo = order.GetOrderByBankOrderId(ctx, localId)
|
||||
}
|
||||
orderInfo := order.GetOrderByBankOrderId(ctx, localId)
|
||||
|
||||
if orderInfo.Status != "wait" {
|
||||
f.Ctx.WriteString("success")
|
||||
|
||||
14
internal/service/supplier/third_party/up.go
vendored
14
internal/service/supplier/third_party/up.go
vendored
@@ -136,13 +136,17 @@ func (f *UpImpl) PayNotify() {
|
||||
}
|
||||
otelTrace.Logger.WithContext(ctx).Info("up回调", zap.Any("resp", resp))
|
||||
localId, err := orderPoolService.GetLocalIdByOrderId(ctx, resp.OrderId)
|
||||
var orderInfo order.OrderInfo
|
||||
if err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("【wtr】获取本地订单ID失败", zap.Error(err))
|
||||
f.Ctx.WriteString("fail")
|
||||
return
|
||||
orderInfo = order.GetOrderByPoolOrderId(ctx, resp.OrderId)
|
||||
if orderInfo.Id == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("获取本地订单ID失败", zap.Error(err))
|
||||
f.Ctx.WriteString("FAIL")
|
||||
return
|
||||
}
|
||||
} else {
|
||||
orderInfo = order.GetOrderByBankOrderId(ctx, localId)
|
||||
}
|
||||
|
||||
orderInfo := order.GetOrderByBankOrderId(ctx, localId)
|
||||
if orderInfo.Status != "wait" {
|
||||
f.Ctx.WriteString("OK")
|
||||
return
|
||||
|
||||
14
internal/service/supplier/third_party/wanxin.go
vendored
14
internal/service/supplier/third_party/wanxin.go
vendored
@@ -135,13 +135,17 @@ func (f *WanXinImpl) PayNotify() {
|
||||
}
|
||||
otelTrace.Logger.WithContext(ctx).Info("wanxin 回调", zap.Any("resp", resp))
|
||||
localId, err := orderPoolService.GetLocalIdByOrderId(ctx, resp.OutOrderNum)
|
||||
var orderInfo order.OrderInfo
|
||||
if err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("【祥云】获取本地订单ID失败", zap.Error(err))
|
||||
f.Ctx.WriteString("fail")
|
||||
return
|
||||
orderInfo = order.GetOrderByPoolOrderId(ctx, resp.OutOrderNum)
|
||||
if orderInfo.Id == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("获取本地订单ID失败", zap.Error(err))
|
||||
f.Ctx.WriteString("FAIL")
|
||||
return
|
||||
}
|
||||
} else {
|
||||
orderInfo = order.GetOrderByBankOrderId(ctx, localId)
|
||||
}
|
||||
|
||||
orderInfo := order.GetOrderByBankOrderId(ctx, localId)
|
||||
if orderInfo.Status != "wait" {
|
||||
f.Ctx.WriteString("success")
|
||||
return
|
||||
|
||||
14
internal/service/supplier/third_party/wowspay.go
vendored
14
internal/service/supplier/third_party/wowspay.go
vendored
@@ -148,14 +148,18 @@ func (w *WowsPayImpl) PayNotify() {
|
||||
otelTrace.Logger.WithContext(ctx).Info("resp", zap.Any("resp", resp), zap.String("result", result))
|
||||
|
||||
localId, err := orderPoolService.GetLocalIdByOrderId(ctx, resp.OrderId)
|
||||
var orderInfo order.OrderInfo
|
||||
if err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("【祥云】获取本地订单ID失败", zap.Error(err))
|
||||
w.Ctx.WriteString("fail")
|
||||
return
|
||||
orderInfo = order.GetOrderByPoolOrderId(ctx, resp.OrderId)
|
||||
if orderInfo.Id == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("获取本地订单ID失败", zap.Error(err))
|
||||
w.Ctx.WriteString("FAIL")
|
||||
return
|
||||
}
|
||||
} else {
|
||||
orderInfo = order.GetOrderByBankOrderId(ctx, localId)
|
||||
}
|
||||
|
||||
orderInfo := order.GetOrderByBankOrderId(ctx, localId)
|
||||
|
||||
status, err := resp.Status.Int64()
|
||||
if err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("状态转换失败", zap.Error(err))
|
||||
|
||||
13
internal/service/supplier/third_party/wtr.go
vendored
13
internal/service/supplier/third_party/wtr.go
vendored
@@ -137,13 +137,18 @@ func (f *WtrImpl) PayNotify() {
|
||||
}
|
||||
otelTrace.Logger.WithContext(ctx).Info("wtr回调", zap.Any("resp", resp))
|
||||
localId, err := orderPoolService.GetLocalIdByOrderId(ctx, resp.OrderId)
|
||||
var orderInfo order.OrderInfo
|
||||
if err != nil {
|
||||
otelTrace.Logger.WithContext(ctx).Error("【wtr】获取本地订单ID失败", zap.Error(err))
|
||||
f.Ctx.WriteString("fail")
|
||||
return
|
||||
orderInfo = order.GetOrderByPoolOrderId(ctx, resp.OrderId)
|
||||
if orderInfo.Id == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("获取本地订单ID失败", zap.Error(err))
|
||||
f.Ctx.WriteString("FAIL")
|
||||
return
|
||||
}
|
||||
} else {
|
||||
orderInfo = order.GetOrderByBankOrderId(ctx, localId)
|
||||
}
|
||||
|
||||
orderInfo := order.GetOrderByBankOrderId(ctx, localId)
|
||||
if orderInfo.Status != "wait" {
|
||||
f.Ctx.WriteString("success")
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user