订单优化

This commit is contained in:
hahwu 2025-01-21 16:08:19 +08:00
parent 02c916c11b
commit fad68b78dc
2 changed files with 19 additions and 4 deletions

View File

@ -23,6 +23,7 @@ import (
proto "server/msg"
"server/pkg/github.com/name5566/leaf/log"
"sort"
"strings"
)
// 处理玩家异步请求
@ -420,6 +421,11 @@ func GoogleVerify(p *Player, OrderSn, ProduceId, Token string) (*db.SqlChargeOrd
if err != nil {
return nil, err
}
// 将输出转换为字符串
outputStr := string(output)
// 替换单引号为双引号
outputStr = strings.Replace(outputStr, "'", "\"", -1)
type VerifyData struct {
PurchaseState int `json:"purchaseState"`
DeveloperPayload string `json:"developerPayload"`
@ -427,7 +433,14 @@ func GoogleVerify(p *Player, OrderSn, ProduceId, Token string) (*db.SqlChargeOrd
ConsumptionState int `json:"consumptionState"`
}
r := &VerifyData{}
json.Unmarshal(output, r)
err = json.Unmarshal([]byte(outputStr), &r)
if err != nil {
log.Debug("output %s", string(output))
return nil, err
}
if r.DeveloperPayload != OrderSn {
return nil, fmt.Errorf("订单号不匹配")
}
if r.ConsumptionState != 1 {
return nil, fmt.Errorf("订单未消费")
}

View File

@ -25,6 +25,9 @@ func TriggerShippingOrder(player *Player, req *msg.ReqShippingOrder) {
n := 0
for {
n++
if n > 5 {
break
}
OrderData, err = GoogleVerify(player, OrderSn, req.ProduceId, req.Token)
if err != nil {
log.Debug("GoogleVerify err:%v", err)
@ -38,10 +41,9 @@ func TriggerShippingOrder(player *Player, req *msg.ReqShippingOrder) {
if OrderData.PayStatus == MergeConst.ORDER_STATUS_PAY {
break
}
if n > 5 {
break
}
}
log.Debug("[order verify success] Uid:%d;OrderSn:%s;PayOrder:%s;", player.M_DwUin, OrderData.OrderId, OrderData.PayChannelOrderId)
player.lock.Lock()
defer player.lock.Unlock()
Charge(player, int(OrderData.ProductId))