Files
hgmj_server/app/api/rechargectrl/yinse.go
T
rootandClaude Opus 4.7 97f679d130 sync: port tangguo_server upstream changes
Ported 7 commits (3a79d6a..3dcf693) from tangguo_server:
- 版本控制: comment out 2FA in admin.go
- 支付和广告调试: pay/ad refactor across appg/adser/rechargeser/pingctrl
- 对接统计: add bili_sync statistics endpoint
- 代码优化: ginUtil improvements
- 修改es/修改appID/代码调整: cumulative updates

Preserved hgmj-local differences:
- ES table prefix stays 91jd_ (not tangguo_)
- BillPlatformID stays 91短剧 (not 糖果短剧)
- admin googauth label stays @91短剧
- appg.go retains LouFengH5/DataBuriedPoint fields
- rechargeser.go retains reportser event reporting

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-10-08 17:18:41 +08:00

72 lines
1.9 KiB
Go

package rechargectrl
import (
"91jd-server/app/service/proxyser"
"91jd-server/common"
"bytes"
"encoding/json"
"errors"
"fmt"
"io"
"net/http"
"time"
"91jd-server/app/service/rechargeser"
"91jd-server/common/log"
"91jd-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 rb.SuccessAt.IsZero() {
rb.SuccessAt = time.Now()
}
if rb.PaymentAt.IsZero() {
rb.PaymentAt = rb.SuccessAt
}
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)
}
}