| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- package controller
- import (
- actorRemote "f1-game/internal/actor_remote"
- "f1-game/internal/code"
- "f1-game/internal/component/sdk"
- "f1-game/internal/data"
- nameKey "f1-game/internal/name/key"
- "f1-game/internal/pb"
- "net/http"
- clog "github.com/cherry-game/cherry/logger"
- cprofile "github.com/cherry-game/cherry/profile"
- cgin "github.com/cherry-game/components/gin"
- )
- type PayController struct {
- cgin.BaseController
- }
- func (p *PayController) Init() {
- p.GET("/pay/pid/:pid", p.pid)
- p.GET("/pay/callback/:name", p.callbackName)
- if cprofile.Debug() {
- p.GET("/pay/test_create", p.testCreateOrder)
- p.GET("/pay/test_payment", p.testPayment)
- }
- }
- // pid 根据pid进行支付回调
- func (p *PayController) pid(c *cgin.Context) {
- pid := c.GetInt32(nameKey.PID, 0)
- config := data.SDK.Get(pid)
- p.callback(c, config)
- }
- // callbackName 根据callbackName进行支付回调
- func (p *PayController) callbackName(c *cgin.Context) {
- callName := c.GetString(nameKey.Name, "")
- config := data.SDK.GetWithName(callName)
- p.callback(c, config)
- }
- func (p *PayController) callback(c *cgin.Context, config *data.SdkRow) {
- if config == nil {
- clog.Warnf("sdkConfig == nil. [params = %s, url = %s]", c.GetParams(true), c.Request.URL)
- c.String(http.StatusBadRequest, "request parameter error.")
- return
- }
- invoke, err := sdk.GetInvoke(config.SdkID)
- if err != nil {
- clog.Warnf("Get invoke error. [params = %s, err = %v]", c.GetParams(true), err)
- c.String(http.StatusBadRequest, "request parameter error.")
- return
- }
- invoke.PayCallback(config, c)
- }
- // testCreateOrder 测试 创建订单
- func (p *PayController) testCreateOrder(c *cgin.Context) {
- if !cprofile.Debug() {
- return
- }
- createOrder := &pb.CreateOrder{
- PID: c.GetInt32(nameKey.PID, 0),
- UID: c.GetInt64(nameKey.UID, 0),
- GameNodeID: c.GetString(nameKey.GameNodeID, "0"),
- PlayerID: c.GetInt64(nameKey.PlayerID, 0),
- ChargeID: c.GetInt32(nameKey.ChargeID, 0),
- Amount: c.GetInt32(nameKey.Money, 0),
- ClientOS: c.GetInt32(nameKey.ClientOS, 0),
- Ip: c.ClientIP(),
- Extra: make(map[string]string),
- }
- config := data.SDK.Get(createOrder.PID)
- if config == nil {
- code.JSONResult(c, code.PlayerOrderCreateFail)
- return
- }
- rsp, statusCode := actorRemote.GameOrder.Create(createOrder)
- code.JSONResult(c, statusCode, rsp)
- }
- // testPayment 测试 付款
- func (p *PayController) testPayment(c *cgin.Context) {
- if !cprofile.Debug() {
- return
- }
- orderID := c.GetInt64(nameKey.OrderID, 0)
- if orderID < 1 {
- code.JSONResult(c, code.PlayerOrderIdError)
- return
- }
- statusCode := actorRemote.GameOrder.Payment(&pb.UpdateOrder{
- OrderID: orderID,
- SdkOrderID: "",
- Amount: 0,
- CheckAmount: false,
- Origin: 0,
- })
- code.JSONResult(c, statusCode)
- }
|