diff --git a/src/server/db/Mysql.go b/src/server/db/Mysql.go index 8562e491..0d07ee97 100644 --- a/src/server/db/Mysql.go +++ b/src/server/db/Mysql.go @@ -448,6 +448,13 @@ func GetPlayerChargeData(OrderSn string) (*SqlChargeOrderStruct, error) { return data, err } +func GetPlayerPayChannelOrderId(OrderSn string) (*SqlChargeOrderStruct, error) { + sql := "select * from t_player_charge where PayChannelOrderId = ?" + data := &SqlChargeOrderStruct{} + err := SqlDb.Get(data, sql, OrderSn) + return data, err +} + func UpdatePlayerChargeData(data *SqlChargeOrderStruct) error { sql := "update t_player_charge set PayTime = ?, PayStatus = ?, PayChannelOrderId = ? where OrderId = ?" _, err := SqlDb.Exec(sql, data.PayTime, data.PayStatus, data.PayChannelOrderId, data.OrderId) diff --git a/src/server/game/PlayerFunc.go b/src/server/game/PlayerFunc.go index 02250fdf..b96f5efc 100644 --- a/src/server/game/PlayerFunc.go +++ b/src/server/game/PlayerFunc.go @@ -438,9 +438,13 @@ func GoogleVerify(p *Player, OrderSn, ProduceId, Token string) (*db.SqlChargeOrd log.Debug("output %s", string(output)) return nil, err } - if r.DeveloperPayload != OrderSn { - return nil, fmt.Errorf("订单号不匹配") + _, err = db.GetPlayerPayChannelOrderId(r.OrderId) + if err == nil { + return nil, fmt.Errorf("订单已支付发货 param: %v", r) } + // if r.DeveloperPayload != OrderSn { + // return nil, fmt.Errorf("订单号不匹配") + // } if r.ConsumptionState != 1 { return nil, fmt.Errorf("订单未消费") }