mirror of
https://github.com/silenceper/wechat.git
synced 2026-03-01 00:35:26 +08:00
56350c3655
* add: [小程序] 增加 安全风控、内容安全1.0 & 2.0、code换取手机号 * add: check suggest docs * fix * fix Co-authored-by: luoyu <luoyu@medlinker.com>
61 lines
1.7 KiB
Go
61 lines
1.7 KiB
Go
package riskcontrol
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/silenceper/wechat/v2/miniprogram/context"
|
|
"github.com/silenceper/wechat/v2/util"
|
|
)
|
|
|
|
const (
|
|
getUserRiskRankURL = "https://api.weixin.qq.com/wxa/getuserriskrank?access_token=%s"
|
|
)
|
|
|
|
// RiskControl 安全风控
|
|
type RiskControl struct {
|
|
*context.Context
|
|
}
|
|
|
|
// NewRiskControl init
|
|
func NewRiskControl(ctx *context.Context) *RiskControl {
|
|
return &RiskControl{ctx}
|
|
}
|
|
|
|
// UserRiskRankRequest 获取用户安全等级请求
|
|
type UserRiskRankRequest struct {
|
|
AppID string `json:"appid"` // 小程序 app id
|
|
OpenID string `json:"openid"` // 用户的 openid
|
|
Scene uint8 `json:"scene"` // 场景值,0:注册,1:营销作弊
|
|
ClientIP string `json:"client_ip"` // 用户访问源ip
|
|
|
|
Mobile string `json:"mobile_no"` // 用户手机号
|
|
Email string `json:"email_address"` // 用户邮箱地址
|
|
ExtendedInfo string `json:"extended_info"` // 额外补充信息
|
|
IsTest bool `json:"is_test"` // false:正式调用,true:测试调用
|
|
}
|
|
|
|
// UserRiskRank 用户安全等级
|
|
type UserRiskRank struct {
|
|
util.CommonError
|
|
UnionID int64 `json:"union_id"` // 唯一请求标识
|
|
RiskRank uint8 `json:"risk_rank"` // 用户风险等级
|
|
}
|
|
|
|
// GetUserRiskRank 根据提交的用户信息数据获取用户的安全等级 risk_rank,无需用户授权。
|
|
func (riskControl *RiskControl) GetUserRiskRank(in *UserRiskRankRequest) (res UserRiskRank, err error) {
|
|
accessToken, err := riskControl.GetAccessToken()
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
uri := fmt.Sprintf(getUserRiskRankURL, accessToken)
|
|
response, err := util.PostJSON(uri, in)
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
// 使用通用方法返回错误
|
|
err = util.DecodeWithError(response, &res, "GetUserRiskRank")
|
|
return
|
|
}
|