mirror of
https://github.com/silenceper/wechat.git
synced 2026-02-04 21:02:25 +08:00
* 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
|
||
}
|