package pay import ( "common/remark" "common/resultStatus" "common/webServer" "goutil/intUtil" "paycenter/internal" "time" ) func init() { //注册接口 webServer.RegisterFunction(new(PayApi)) } func init() { moduleName := "PayApi" desc := "用户接口" author := "tangping" mendor := "" date := "2025年1月8日15:49:03" remark.RegisterModuleRemark(moduleName, desc, author, mendor, date) } // PayApi 用户接口 type PayApi struct { } // ---------------------------------------- 接口 -------------------------------------------------- func init() { moduleName := "PayApi" methodName := "PlaceAnOrder" skipVerifyTokenPage := true methodDesc := "下单" methodAuthor := "tangping" methodMendor := "" methodDate := "2025年1月8日15:51:34" methodInParam := []string{"int32:充值模版id,string:玩家id,int32:区服id"} methodOutParam := ` { "Code '类型:int'": "响应结果的状态值", "Message '类型:string'": "响应结果的状态值所对应的描述信息", "Data '类型:interface{}'": "响应结果的数据" { "OrderID '类型:int64'": "订单id", "prepayId '类型:int64'": "预支付会话id", } }` remark.RegisterMethodRemark(moduleName, methodName, methodDesc, methodAuthor, methodMendor, methodDate, methodInParam, methodOutParam, skipVerifyTokenPage) } func (a *PayApi) PlaceAnOrder(modelID int32, playerID string, serverID int64) (responseObj *webServer.ResponseObject) { responseObj = webServer.GetInitResponseObj() //校验参数 if modelID == 0 || playerID == "" || serverID == 0 { responseObj.SetResultStatus(resultStatus.APIDataError) return } //获取对应充值配置 orderId, err := intUtil.ShuffleIntDigits(time.Now().UnixNano()) if err != nil { responseObj.SetResultStatus(resultStatus.DataError) return } //下微信订单 prepayId, err := internal.Prepay(orderId, "描述!!!!!!!!!!") if err != nil { responseObj.SetResultStatus(resultStatus.APIDataError) return } //处理数据 order := &Order{ OrderID: orderId, PrepayId: prepayId, OrderMoney: 100, OrderStatus: 1, PlayerID: playerID, ServerID: serverID, UserID: playerID, OrderDate: time.Now(), } //添加到数据库 AddOrder(order) resultMap := make(map[string]any) resultMap["orderID"] = order.OrderID resultMap["prepayId"] = order.PrepayId responseObj.SetData(resultMap) return }