创新互联百度小程序教程:detectrisk
- detectrisk
- 接口说明
- 请求地址
- 方法参数
- query 参数
- post 参数
- 返回值说明
- data 字段描述
- 返回值示例
- 返回值示例
- 检测作弊用户参考代码
detectrisk
接口说明
检测用户是否是作弊用户。

我们提供的服务有:成都网站设计、做网站、微信公众号开发、网站优化、网站认证、长洲ssl等。为上1000家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的长洲网站制作公司
请求地址
POST https://openapi.baidu.com/rest/2.0/smartapp/detectrisk?access_token=ACCESS_TOKEN
方法参数
query 参数
| 参数名 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| access_token | String | 是 | 接口调用凭证 |
post 参数
| 参数名 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| appkey | String | 是 | 小程序 appkey,智能小程序 AppKey 示例:4fecoAqgCIUtzIyA4FAPgoyrc4oUc25c |
| xtoken | JSON | 是 | 小程序通过swan-getSystemRiskInfo获取的内容,格式:{“key”:”xxxx”,”value”:”xxxx”} |
| type | String | 是 | 运营活动的类型,该值由风控平台分配。目前只有一种 marketing |
| clientip | String | 是 | 客户端的 IP,非小程序服务本地 IP,示例:127.0.0.1 |
| ts | Int | 是 | 服务器的时间戳,秒级别,示例:1598528349 |
| ev | String | 否 | 事件类型,预先分配事件 ID 定义。 1、点击活动按钮(或者活动操作),活动相关操作默认选择此事件 2、 进入活动页面 3、注册 4、登录 5、分享 6、点赞 7、评论 8、 提现 9、下单/提单 10、支付 11、业务自定义动作 12、浏览 feed 13、开宝箱 14、领取红包 15、分享 feed 16、做任务 17、签到 18、排行榜 19、邀请 20、新客红包 21、摇一摇 22、语音红包 23、视频红包 24、金融授信 25、答题 |
| useragent | String | 否 | 客户端请求小程序 Server 的 useragent,示例:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36 |
| phone | String | 否 | 加密后的电话号码,加密方法:sha1 |
返回值说明
| 名称 | 类型 | 描述 |
|---|---|---|
| errno | Int | 错误码 0:正确返回,非 0:异常返回 |
| errmsg | String | 错误信息 |
| request_id | String | 请求 ID,标识一次请求 |
| data | Object | 详细数据,errno 为 0 的情况下才有意义 |
data 字段描述
| 名称 | 类型 | 描述 |
|---|---|---|
| level | String | 风险级别,目前有四个,风险等级依次降低(其中 1 最高,4 最低) 1 - 高危 2 - 嫌疑 3 - 普通 4 - 正常。 建议开发者将风险等级为 1、2 的做拦截处理 |
| tag | Array | 对应的描述 |
返回值示例
{"data": {"level": "3","tag": ["空"]},"errmsg": "succ","errno": 0,"request_id": "3922098303","timestamp": 1561110003}
返回值示例
| 错误码 | 描述 |
|---|---|
| 400 | 请求参数错误 |
| 20020100 | 解析失败,请检查xtoken参数是否正确 |
| 20020200 | 服务端内部异常,请稍候重试 |
检测作弊用户参考代码
- PHP
- GOLANG
/*** @desc php curl方式检测用户是否是作弊用户*/// 参考 accessToken 获取文档;$accessToken = "xxx";// 小程序 appKey,从 B 端平台获取;$appKey = "xxxx";// 获取方式参考文档中 "post 参数" 解释$xtokenArr = array("key" => "XXX","value" => "XXX");// 用户 ip$clientIp = "xxx.xxx.xxx.xxx";// 11位明文手机号$phone = "130xxxxxxxx";// 从请求 header 中获取$useragent = "xxxxxxx";// ev 1 为点击按钮获取,请按照文档设置合理的数值$ev = "1";$ret = dectectRisk($accessToken, $appKey, $xtokenArr, $clientIp, $phone, $useragent, $ev);var_dump($ret);/*** @desc 发起检测用户是否是作弊用户请求*/function dectectRisk($accessToken, $appKey, $xtokenArr, $clientIp, $phone, $useragent, $ev){$url = "https://openapi.baidu.com/rest/2.0/smartapp/detectrisk?access_token={$accessToken}";$encryptedPhone = sha1($phone);$postDataArr = array('appkey' => $appKey,'xtoken' => json_encode($xtokenArr),// 风控类型 目前只有 marketing'type' => "marketing",'clientip' => $clientIp,'ts' => time(),'ev' => $ev,'useragent' => $useragent,'phone' => $encryptedPhone,);$resp = curlPost($url, $postDataArr);return $resp;}/*** @desc curl POST请求,可以按照自己实际编程环境替换* @param string $url 请求的url地址* @param array $postDataArr 传递的数组参数* @return string 检测结果json字符串*/function curlPost($url, $postDataArr){$headerArr =array("Content-type:application/x-www-form-urlencoded");$curl = curl_init();curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,FALSE);curl_setopt($curl, CURLOPT_POST, 1);curl_setopt($curl, CURLOPT_POSTFIELDS, $postDataArr);curl_setopt($curl,CURLOPT_HTTPHEADER,$headerArr);curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);$output = curl_exec($curl);curl_close($curl);return $output;}
// Go http PostForm 方式检测用户是否是作弊用户package mainimport ("crypto/sha1""fmt""net/url""strconv""strings""time""encoding/json""io/ioutil""log""net/http")// 返回的信息type detectriskResp struct {Errno int `json:"errno"`Errmsg string `json:"errmsg"`RequestId string `json:"request_id"`Timestamp int64 `json:"timestamp"`Data struct {Level string `json:"level"`Tag []string `json:"tag"`} `json:"data"`}func main() {// 获取方式参考文档中 "post 参数" 解释xtokenMap := map[string]string{"key": "XXX","value": "XXX",}xtokenByte, err := json.Marshal(xtokenMap)if err != nil {log.Fatalln(err)return}// 参考 accessToken 获取文档;accessToken := "xxx"// 小程序 appKey,从 B 端平台获取;appKey := "xxxx"// 用户 ipclientIp := "xxx.xxx.xxx.xxx"// 11位明文手机号phone := "130xxxxxxxx"// 11位明文手机号useragent := "xxxxxxx"// ev 1 为点击按钮获取,请按照文档设置合理的数值ev := "1"xtoken := string(xtokenByte)resp, err := dectectRisk(accessToken, appKey, xtoken, clientIp, ev, useragent, phone)fmt.Println(resp, err)}// dectectRisk 发起检测用户是否是作弊用户请求func dectectRisk(accessToken, appKey, xtoken, clientIp, ev, useragent, phone string) (*detectriskResp, error) {urlPath := "https://openapi.baidu.com/rest/2.0/smartapp/detectrisk?access_token=" + accessTokenh := sha1.New()h.Write([]byte(phone))phoneSha1 := fmt.Sprintf("%x", h.Sum(nil))timeNowStr := strconv.FormatInt(time.Now().Unix(), 10)data := make(url.Values)data.Add("appkey", appKey)data.Add("xtoken", xtoken)// 风控类型 目前只有 marketingdata.Add("type", "marketing")data.Add("clientip", clientIp)data.Add("ts", timeNowStr)data.Add("ev", ev)data.Add("useragent", useragent)data.Add("phone", phoneSha1)resp, err := netPost(urlPath, &data)if err != nil {log.Println(err)return nil, err}return resp, nil}// netPost POST请求,可以按照自己实际编程环境替换func netPost(urlPath string, data *url.Values) (*detectriskResp, error) {req, err := http.NewRequest("POST", urlPath, strings.NewReader(data.Encode()))req.Header.Add("content-type", "application/x-www-form-urlencoded")if err != nil {log.Println(err)return nil, err}client := &http.Client{Timeout: 5 * time.Second}resp, err := client.Do(req)if err != nil || resp.Body == nil {log.Println(err)return nil, err}defer resp.Body.Close()result, err := ioutil.ReadAll(resp.Body)if err != nil {log.Println(err)return nil, err}respData := &detectriskResp{}err = json.Unmarshal(result, respData)if err != nil {log.Println(err)return nil, err}return respData, nil}
本文标题:创新互联百度小程序教程:detectrisk
标题路径:http://www.jxjierui.cn/article/cdihede.html


咨询
建站咨询
