fix outer raven

This commit is contained in:
lwl0608 2024-07-29 19:29:34 +08:00
parent 759a138d06
commit 739cc1dd11
4 changed files with 53 additions and 2 deletions

View File

@ -62,13 +62,15 @@ type CreateOrderReq struct {
WechatAuthCode string `json:"wechat_auth_code"` // 微信auth_code
RedirectUrl string `json:"redirect_url"` // redirect_url
Mid1 int64 `json:"mid"`
ReturnUrl string `json:"return_url"`
RavenQid int64 `json:"raven_qid"` // 瑞文测试id
RavenCallback string `json:"raven_callback"` // 瑞文测试回调数据
CalcPrice int64 // 计算价格
Uid int64 // 关联mid
Oid1 string
Oid2 string
Oid3 string
ReturnUrl string
}
type CreateOrderData struct {

View File

@ -126,7 +126,7 @@ func CreateOrderOuter(ctx *gin.Context) {
}
req.Mid = 100000001
data, ec, err := service.DefaultService.CreateOrder(ctx, req)
data, ec, err := service.DefaultService.CreateOrderOuter(ctx, req)
if ec != errcode.ErrCodeVasSrvOk {
logger.Error("CreateOrder fail, req: %v, ec: %v", util.ToJson(req), ec)
if ec == errcode.ErrCodeVasSrvFail && err != nil {

View File

@ -1,14 +1,18 @@
package logic
import (
"bytes"
"crypto/rand"
"crypto/rsa"
"crypto/x509"
"database/sql"
"encoding/base64"
"encoding/json"
"encoding/pem"
"errors"
"fmt"
"io/ioutil"
"net/http"
"service/api/base"
"service/api/errs"
"service/api/message/response"
@ -207,6 +211,9 @@ func (v *Vas) CreateOrder(ctx *gin.Context, req *vasproto.CreateOrderReq) (data
// 邀请人
case dbstruct.ProductIdMembership:
req.Uid, _ = v.account.GetInviterMid(ctx, req.Mid)
case dbstruct.ProductIdOuterRaven:
req.Oid1 = fmt.Sprintf("%d", req.RavenQid)
req.Oid2 = req.RavenCallback
}
// 获取商品
@ -1654,6 +1661,9 @@ func (v *Vas) PayCallback(ctx *gin.Context, p *vasproto.PayCallbackParamIn) erro
logger.Error("UnlockZoneSuperfanship fail, order: %v, err: %v", util.ToJson(order), err)
return err
}
case product.Id == dbstruct.ProductIdOuterRaven:
notifyRavenDY(order.GetOid2())
return nil
}
// 是否达到铁粉解锁条件
@ -1665,6 +1675,35 @@ func (v *Vas) PayCallback(ctx *gin.Context, p *vasproto.PayCallbackParamIn) erro
return nil
}
func notifyRavenDY(callback string) {
url := "https://analytics.oceanengine.com/api/v2/conversion"
req := map[string]interface{}{
"event_type": "successful_pay",
"context": map[string]interface{}{
"ad": map[string]interface{}{
"callback": callback,
},
},
"timestamp": time.Now().UnixMilli(),
}
reqBs, _ := json.Marshal(req)
resp, err := http.Post(url, "application/json", bytes.NewReader(reqBs))
if err != nil {
logger.Error("%v fail, req: %v, err: %v", url, string(reqBs), err)
return
}
defer resp.Body.Close()
// 读取响应内容
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
logger.Error("%v read fail, req: %v, body: %v, err: %v", url, string(reqBs), string(body), err)
return
}
logger.Info("notifyRavenDY ok, req: %v, resp: %v", string(reqBs), string(body))
return
}
func (v *Vas) GetCoinOrderById(ctx *gin.Context, id string) (*dbstruct.CoinOrder, error) {
return v.store.GetCoinOrderById(ctx, nil, id)
}

View File

@ -1138,6 +1138,16 @@ func (s *Service) CreateOrder(ctx *gin.Context, req *vasproto.CreateOrderReq) (d
return
}
func (s *Service) CreateOrderOuter(ctx *gin.Context, req *vasproto.CreateOrderReq) (data *vasproto.CreateOrderData, ec errcode.ErrCode, err error) {
data, err = _DefaultVas.CreateOrder(ctx, req)
ec, err = errs.DealVasErr(err)
if err != nil {
logger.Error("CreateOrder fail, err: %v", err)
return
}
return
}
func (s *Service) OpCreateOrder(ctx *gin.Context, req *vasproto.OpCreateOrderReq) (ec errcode.ErrCode) {
err := _DefaultVas.OpCreateOrder(ctx, req)
ec, err = errs.DealVasErr(err)