goProject/trunk/center/paycenter/internal/pay/api.go

97 lines
2.4 KiB
Go
Raw Normal View History

2025-01-08 17:48:14 +08:00
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
}