57 lines
1.5 KiB
Go
57 lines
1.5 KiB
Go
package game
|
|
|
|
import (
|
|
"server/MergeConst"
|
|
"server/conf"
|
|
"server/db"
|
|
"server/msg"
|
|
"time"
|
|
)
|
|
|
|
func TriggerShippingOrder(player *Player, req *msg.ReqShippingOrder) {
|
|
OrderSn := req.OrderSn
|
|
Status := int(req.Status)
|
|
if Status == MergeConst.ORDER_STATUS_CANCEL { // 取消支付
|
|
CancelOrder(player, OrderSn)
|
|
player.PushClientRes(&msg.ResShippingOrder{
|
|
Code: msg.RES_CODE_SUCCESS,
|
|
Msg: "cancel success",
|
|
})
|
|
return
|
|
}
|
|
OrderData := &db.SqlChargeOrderStruct{}
|
|
var err error
|
|
for {
|
|
OrderData, err = GoogleVerify(player, OrderSn, req.ProduceId, req.Token)
|
|
if err != nil {
|
|
time.Sleep(1 * time.Second)
|
|
continue
|
|
}
|
|
if OrderData.PayStatus != MergeConst.ORDER_STATUS_PAY {
|
|
time.Sleep(1 * time.Second)
|
|
continue
|
|
}
|
|
if OrderData.PayStatus == MergeConst.ORDER_STATUS_PAY {
|
|
break
|
|
}
|
|
}
|
|
player.lock.Lock()
|
|
defer player.lock.Unlock()
|
|
Charge(player, int(OrderData.ProductId))
|
|
OrderData.PayStatus = MergeConst.ORDER_STATUS_SHIP
|
|
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,
|
|
"Price": OrderData.Price,
|
|
"PayType": OrderData.PayType,
|
|
}
|
|
player.Kafka("pay", orderDataMap)
|
|
}
|