97 lines
2.4 KiB
Go
97 lines
2.4 KiB
Go
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
|
|
}
|