| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- 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
- }
|