Files
huangguo_server/app/api/rechargectrl/yinse.go
T
rootandClaude Opus 5 8679200f41 Initial commit
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 13:57:10 +08:00

65 lines
1.8 KiB
Go

package rechargectrl
import (
"91porn-server/app/service/proxyser"
"91porn-server/common"
"bytes"
"encoding/json"
"errors"
"fmt"
"io"
"net/http"
"91porn-server/app/service/rechargeser"
"91porn-server/common/log"
"91porn-server/common/rchgutil"
"github.com/gin-gonic/gin"
)
// CallBack 支付回调回调函数
func CallBack(ctx *gin.Context) {
var transNo string = ""
var payMoney int64 = 0
success, err := func() (string, error) {
var err error
name := ctx.Param("name")
rchg := rchgutil.GetNotifyBack(name)
if rchg == nil {
log.Error(fmt.Sprintf("%s callback request path invalid.", name))
return "", errors.New(" request name invalid")
}
ata, _ := ctx.GetRawData()
ctx.Request.Body = io.NopCloser(bytes.NewBuffer(ata))
bodystr := string(ata)
log.Info(fmt.Sprintf("%s callback request url +%s, body:%s,contenttype:%s", name, ctx.Request.URL, bodystr, ctx.ContentType()))
if err = ctx.ShouldBind(rchg); err != nil {
log.Error(fmt.Sprintf("%s callback parameter bind fail error:%+v:", name, err))
return "", err
}
bs, _ := json.Marshal(rchg)
log.Info(fmt.Sprintf("%s callback parameter data:%+v:", name, string(bs)))
rb, err := rchg.Notify()
if err != nil {
return "", err
}
rb.TransNo = rchgutil.RChgIDDisassemble(rb.TransNo)
if err = rechargeser.RechargeCallBack(ctx, rb.OID, rb.PayMoney, rb.TransNo, rb.Code, rb.PaymentAt, rb.SuccessAt); err != nil {
log.Error(fmt.Sprintf("%s RechargeCallBack fail error:%+v:", name, err))
}
transNo = rb.TransNo
payMoney = rb.PayMoney
return rchg.Success(), err
}()
if err != nil {
ctx.String(http.StatusBadRequest, "fail")
return
} else {
//异步处理全民代理分成
common.Go(func() {
proxyser.HandelProxyRechargeCommission(nil, transNo, payMoney)
})
ctx.String(http.StatusOK, success)
}
}