@@ -0,0 +1,64 @@
|
||||
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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user