修改发货通知

This commit is contained in:
hahwu 2026-01-27 15:25:53 +08:00
parent 524a0cfa0f
commit 56f400a4ef
3 changed files with 10 additions and 97 deletions

View File

@ -2,7 +2,6 @@ package game
import (
"encoding/json"
"fmt"
"math"
"server/MergeConst"
"server/conf"
@ -21,7 +20,6 @@ import (
"server/msg"
"server/pkg/github.com/name5566/leaf/log"
"sort"
"time"
)
const (
@ -114,11 +112,6 @@ func (player *Player) TriggerShippingOrderOrigin(req *msg.ReqShippingOrder) {
log.Debug("charge shipping order already shipped OrderSn:%s", OrderSn)
return
}
if conf.Server.GameName == "Merge_Pet_online" {
ProduceName := chargeCfg.GetProduceName(OrderData.ProductId)
GoUtil.SendFeishuOrder(int(player.M_DwUin), OrderData.PayChannelOrderId, OrderData.Price, ProduceName, OrderData.PayTime, GoUtil.Now())
}
log.Debug("[order verify success] Uid:%d;OrderSn:%s;PayOrder:%s;Token:%s", player.M_DwUin, OrderData.OrderId, OrderData.PayChannelOrderId, req.Token)
player.lock.Lock()
defer player.lock.Unlock()
@ -140,6 +133,11 @@ func (player *Player) TriggerShippingOrderOrigin(req *msg.ReqShippingOrder) {
OrderData.ProductName = req.ProduceId
db.UpdatePlayerChargeData(OrderData)
player.PlayMod.save()
if conf.Server.GameName == "Merge_Pet_online" {
ChargeMod := player.PlayMod.getChargeMod()
ProduceName := chargeCfg.GetProduceName(OrderData.ProductId)
GoUtil.SendFeishuOrder(int(player.M_DwUin), OrderData.PayChannelOrderId, OrderData.Price, ProduceName, OrderData.PayTime, GoUtil.Now(), ChargeMod.Charge)
}
orderDataMap := map[string]interface{}{
"AppId": conf.Server.AppID,
"ServerId": conf.Server.ServerID,
@ -160,93 +158,7 @@ func (player *Player) TriggerShippingOrderOrigin(req *msg.ReqShippingOrder) {
}
func (player *Player) TriggerShippingOrder(req *msg.ReqShippingOrder) {
OrderSn := req.OrderSn
Status := int(req.Status)
if Status == MergeConst.ORDER_STATUS_CANCEL { // 取消支付
player.CancelOrder(OrderSn)
player.PushClientRes(&msg.ResShippingOrder{
Code: msg.RES_CODE_SUCCESS,
Msg: "cancel success",
})
return
}
OrderData := &db.SqlChargeOrderStruct{}
var err error
n := 0
for {
n++
if n > 14 {
break
}
OrderData, err = player.GoogleVerify(OrderSn, req.ProduceId, req.Token)
if err != nil {
log.Debug("GoogleVerify parmas OrderSn%s; ProduceId:%s; Token:%s", OrderSn, req.ProduceId, req.Token)
log.Debug("GoogleVerify err:%v", err)
if n < 5 {
time.Sleep(1 * time.Second)
continue
}
if n >= 5 && n < 10 {
time.Sleep(10 * time.Second)
continue
}
if n >= 10 {
time.Sleep(30 * time.Second)
continue
}
}
if OrderData.PayStatus != MergeConst.ORDER_STATUS_PAY {
time.Sleep(1 * time.Second)
continue
}
if OrderData.PayStatus == MergeConst.ORDER_STATUS_PAY {
break
}
}
if OrderData == nil {
GoUtil.SendFeishuFatal(int(player.M_DwUin), "GoogleVerify支付校验异常", fmt.Sprintf("GoogleVerify parmas OrderSn%s; ProduceId:%s; Token:%s; err: %v", OrderSn, req.ProduceId, req.Token, err))
log.Debug("[order data nil] Uid:%d;OrderSn:%s;PayOrder:%s;", player.M_DwUin, OrderSn, req.ProduceId)
return
} else {
if conf.Server.GameName == "Merge_Pet_online" {
GoUtil.SendFeishuOrder(int(player.M_DwUin), OrderData.PayChannelOrderId, OrderData.Price, req.ProduceId, OrderData.PayTime, GoUtil.Now())
}
}
log.Debug("[order verify success] Uid:%d;OrderSn:%s;PayOrder:%s;Token:%s", player.M_DwUin, OrderData.OrderId, OrderData.PayChannelOrderId, req.Token)
player.lock.Lock()
defer player.lock.Unlock()
OrderExtraData := &ChargeExtra{}
if OrderData.PayChannelExtra != "" {
err = json.Unmarshal([]byte(OrderData.PayChannelExtra), OrderExtraData)
if err != nil {
log.Debug("GoogleVerify err:%v", err)
return
}
OrderExtraData.ChargeId = OrderData.ProductId
}
if OrderExtraData.Type == 0 {
player.Charge(int(OrderData.ProductId))
} else {
player.SendCharge(OrderExtraData)
}
OrderData.PayStatus = MergeConst.ORDER_STATUS_SHIP
OrderData.ProductName = req.ProduceId
db.UpdatePlayerChargeData(OrderData)
player.PlayMod.save()
orderDataMap := map[string]interface{}{
"AppId": conf.Server.AppID,
"ServerId": conf.Server.ServerID,
"OrderId": OrderData.OrderId,
"PayChannelOrderId": OrderData.PayChannelOrderId,
"ProductId": OrderData.ProductId,
"CreateTime": OrderData.CreateTime,
"PayTime": OrderData.PayTime,
"Token": req.Token,
"Price": OrderData.Price,
"PayType": OrderData.PayType,
}
player.Kafka("pay", orderDataMap)
player.SendClientRes()
}
func (p *Player) TriggerComfortOrder() {

View File

@ -12,7 +12,7 @@ import (
const (
FEISHU_WEBHOOK = "https://gadmin.bywaystudios.com/api/alibaba/game/notify"
FEISHU_ORDER = "https://gadmin.bywaystudios.com/api/feishu/notify/order"
FEISHU_ORDER = "https://gadmin.bywaystudios.com/api/alibaba/notify/order"
)
// AAqFpbuPhFSEx
@ -55,7 +55,7 @@ func SendFeishuFatal(PlayerId int, FuncName string, msg string) error {
return nil
}
func SendFeishuOrder(PlayerId int, OrderId string, Price float64, ProductName string, PayTime, VerityTime int64) error {
func SendFeishuOrder(PlayerId int, OrderId string, Price float64, ProductName string, PayTime, VerityTime int64, Charge float64) error {
// 创建请求体
payload := map[string]interface{}{
@ -65,6 +65,7 @@ func SendFeishuOrder(PlayerId int, OrderId string, Price float64, ProductName st
"ProductName": ProductName,
"EventRecovery": time.Unix(PayTime, 0).Format("2006-01-02 15:04:05"),
"EventAge": time.Unix(VerityTime, 0).Format("2006-01-02 15:04:05"),
"TotalCharge": String(Charge),
}
payloadBytes, err := json.Marshal(payload)

View File

@ -23,7 +23,7 @@ func TestOrderStart(t *testing.T) {
func TestOrderFinish(t *testing.T) {
p1 := new(game.Player)
p1.InitPlayer("3625212")
p1.InitPlayer("bbb004")
game.G_GameLogicPtr.SetPlayer(p1)
ChessMod := p1.GetChessMod()
err := ChessMod.FinishOrder([]int{1, 2, 3})