修改支付发货接口
This commit is contained in:
parent
c67856e7f5
commit
4b629461c1
@ -45,6 +45,7 @@ var Server struct {
|
||||
RemoteAddr string
|
||||
GameConfPath string
|
||||
TELOGDIR string
|
||||
GoogleVerify bool
|
||||
}
|
||||
|
||||
func init() {
|
||||
|
||||
@ -1,10 +1,14 @@
|
||||
package game
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
"server/GoUtil"
|
||||
"server/MergeConst"
|
||||
mergeCluster "server/cluster"
|
||||
"server/conf"
|
||||
cardCfg "server/conf/card"
|
||||
chargeCfg "server/conf/charge"
|
||||
mailCfg "server/conf/mail"
|
||||
@ -398,18 +402,47 @@ func CreateOrderSn(p *Player, ChargeId int, Platform, Channel string) (string, e
|
||||
return OrderSn, nil
|
||||
}
|
||||
|
||||
func GoogleVerify(p *Player, OrderSn, PayOrderSn string, Status int) (*db.SqlChargeOrderStruct, error) {
|
||||
func GoogleVerify(p *Player, OrderSn, ProduceId, Token string) (*db.SqlChargeOrderStruct, error) {
|
||||
|
||||
Order, err := db.GetPlayerChargeData(OrderSn)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if !conf.Server.GoogleVerify {
|
||||
Order.PayStatus = MergeConst.ORDER_STATUS_PAY
|
||||
return Order, nil
|
||||
}
|
||||
if Order.PayStatus != MergeConst.ORDER_STATUS_IDLE {
|
||||
return nil, fmt.Errorf("订单已经支付")
|
||||
}
|
||||
// TODO 验证订单
|
||||
PackageName := "com.DefaultCompany.PetHomeMergeStory"
|
||||
accessToken := "ya29.a0ARW5m75hnUnTbdLYAMW_0GTZSC1JY0GkPZ2fVqXGexVnPoDLoTviRTMtGVUmkG18F9tf2mmLeaRh7gPYYRAm145rtifW_J8_WUn0rhdOEpqU23vAsdCo1v2aArMsjw2dPHBf5ZCYBPirW_3ckL3MC1VzI4akvY3gt3EMz7U0aCgYKAR0SARISFQHGX2MipUmvPZgSya_iDJWbczKpnA0175"
|
||||
url := fmt.Sprintf("https://www.googleapis.com/androidpublisher/v3/applications/%s/purchases/products/%s/tokens/%s?access_token=%s",
|
||||
PackageName, ProduceId, Token, accessToken)
|
||||
resp, err := http.Get(url)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
if resp.StatusCode != http.StatusOK {
|
||||
return nil, fmt.Errorf("failed to get data: %s", resp.Status)
|
||||
}
|
||||
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
res := make(map[string]interface{})
|
||||
log.Debug(string(body))
|
||||
err = json.Unmarshal(body, &res)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
Order.PayTime = GoUtil.Now()
|
||||
Order.PayChannelOrderId = PayOrderSn
|
||||
Order.PayStatus = Status
|
||||
Order.PayChannelOrderId = res["orderId"].(string)
|
||||
Order.PayStatus = res["consumptionState"].(int)
|
||||
Order.ProductName = ProduceId
|
||||
err = db.UpdatePlayerChargeData(Order)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
@ -2184,9 +2184,7 @@ func ReqShippingOrder(args []interface{}) error {
|
||||
req := &msg.ReqShippingOrder{}
|
||||
proto.Unmarshal(buf, req)
|
||||
OrderSn := req.OrderSn
|
||||
PayOrderSn := req.PayOrderSn
|
||||
Status := int(req.Status)
|
||||
OrderData, err := GoogleVerify(player, OrderSn, PayOrderSn, Status)
|
||||
OrderData, err := GoogleVerify(player, OrderSn, req.ProduceId, req.Token)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -2198,8 +2196,8 @@ func ReqShippingOrder(args []interface{}) error {
|
||||
player.PlayMod.save()
|
||||
player.Kafka("order", map[string]interface{}{
|
||||
"order_sn": OrderSn,
|
||||
"pay_order_sn": PayOrderSn,
|
||||
"status": Status,
|
||||
"pay_order_sn": OrderData.PayChannelOrderId,
|
||||
"status": OrderData.PayStatus,
|
||||
})
|
||||
player.PushClientRes(&msg.ResShippingOrder{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user