Merge branch 'sdk' into online
This commit is contained in:
commit
0051ff6cea
@ -2,7 +2,6 @@ package game
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
|
||||||
"math"
|
"math"
|
||||||
"server/MergeConst"
|
"server/MergeConst"
|
||||||
"server/conf"
|
"server/conf"
|
||||||
@ -21,7 +20,6 @@ import (
|
|||||||
"server/msg"
|
"server/msg"
|
||||||
"server/pkg/github.com/name5566/leaf/log"
|
"server/pkg/github.com/name5566/leaf/log"
|
||||||
"sort"
|
"sort"
|
||||||
"time"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -114,11 +112,6 @@ func (player *Player) TriggerShippingOrderOrigin(req *msg.ReqShippingOrder) {
|
|||||||
log.Debug("charge shipping order already shipped OrderSn:%s", OrderSn)
|
log.Debug("charge shipping order already shipped OrderSn:%s", OrderSn)
|
||||||
return
|
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)
|
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()
|
player.lock.Lock()
|
||||||
defer player.lock.Unlock()
|
defer player.lock.Unlock()
|
||||||
@ -140,6 +133,11 @@ func (player *Player) TriggerShippingOrderOrigin(req *msg.ReqShippingOrder) {
|
|||||||
OrderData.ProductName = req.ProduceId
|
OrderData.ProductName = req.ProduceId
|
||||||
db.UpdatePlayerChargeData(OrderData)
|
db.UpdatePlayerChargeData(OrderData)
|
||||||
player.PlayMod.save()
|
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{}{
|
orderDataMap := map[string]interface{}{
|
||||||
"AppId": conf.Server.AppID,
|
"AppId": conf.Server.AppID,
|
||||||
"ServerId": conf.Server.ServerID,
|
"ServerId": conf.Server.ServerID,
|
||||||
@ -160,93 +158,7 @@ func (player *Player) TriggerShippingOrderOrigin(req *msg.ReqShippingOrder) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (player *Player) TriggerShippingOrder(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() {
|
func (p *Player) TriggerComfortOrder() {
|
||||||
|
|||||||
@ -12,7 +12,7 @@ import (
|
|||||||
|
|
||||||
const (
|
const (
|
||||||
FEISHU_WEBHOOK = "https://gadmin.bywaystudios.com/api/alibaba/game/notify"
|
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
|
// AAqFpbuPhFSEx
|
||||||
@ -55,7 +55,7 @@ func SendFeishuFatal(PlayerId int, FuncName string, msg string) error {
|
|||||||
return nil
|
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{}{
|
payload := map[string]interface{}{
|
||||||
@ -65,6 +65,7 @@ func SendFeishuOrder(PlayerId int, OrderId string, Price float64, ProductName st
|
|||||||
"ProductName": ProductName,
|
"ProductName": ProductName,
|
||||||
"EventRecovery": time.Unix(PayTime, 0).Format("2006-01-02 15:04:05"),
|
"EventRecovery": time.Unix(PayTime, 0).Format("2006-01-02 15:04:05"),
|
||||||
"EventAge": time.Unix(VerityTime, 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)
|
payloadBytes, err := json.Marshal(payload)
|
||||||
|
|||||||
@ -23,7 +23,7 @@ func TestOrderStart(t *testing.T) {
|
|||||||
|
|
||||||
func TestOrderFinish(t *testing.T) {
|
func TestOrderFinish(t *testing.T) {
|
||||||
p1 := new(game.Player)
|
p1 := new(game.Player)
|
||||||
p1.InitPlayer("3625212")
|
p1.InitPlayer("bbb004")
|
||||||
game.G_GameLogicPtr.SetPlayer(p1)
|
game.G_GameLogicPtr.SetPlayer(p1)
|
||||||
ChessMod := p1.GetChessMod()
|
ChessMod := p1.GetChessMod()
|
||||||
err := ChessMod.FinishOrder([]int{1, 2, 3})
|
err := ChessMod.FinishOrder([]int{1, 2, 3})
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user