创新互联百度小程序教程:detectrisk

  • detectrisk
    • 接口说明
    • 请求地址
    • 方法参数
      • query 参数
      • post 参数
      • 返回值说明
        • data 字段描述
      • 返回值示例
      • 返回值示例
    • 检测作弊用户参考代码

    detectrisk

    接口说明

    检测用户是否是作弊用户。

    我们提供的服务有:成都网站设计、做网站、微信公众号开发、网站优化、网站认证、长洲ssl等。为上1000家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的长洲网站制作公司

    请求地址

     
     
     
    1. POST https://openapi.baidu.com/rest/2.0/smartapp/detectrisk?access_token=ACCESS_TOKEN

    方法参数

    query 参数

    参数名 类型 是否必须 描述
    access_tokenString接口调用凭证

    post 参数

    参数名 类型 是否必须 描述
    appkeyString小程序 appkey,智能小程序 AppKey 示例:4fecoAqgCIUtzIyA4FAPgoyrc4oUc25c
    xtokenJSON小程序通过swan-getSystemRiskInfo获取的内容,格式:{“key”:”xxxx”,”value”:”xxxx”}
    typeString运营活动的类型,该值由风控平台分配。目前只有一种 marketing
    clientipString客户端的 IP,非小程序服务本地 IP,示例:127.0.0.1
    tsInt服务器的时间戳,秒级别,示例:1598528349
    evString事件类型,预先分配事件 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、答题
    useragentString客户端请求小程序 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
    phoneString加密后的电话号码,加密方法:sha1

    返回值说明

    名称 类型 描述
    errnoInt错误码 0:正确返回,非 0:异常返回
    errmsgString错误信息
    request_idString请求 ID,标识一次请求
    dataObject详细数据,errno 为 0 的情况下才有意义

    data 字段描述

    名称 类型 描述
    levelString风险级别,目前有四个,风险等级依次降低(其中 1 最高,4 最低)
    1 - 高危
    2 - 嫌疑
    3 - 普通
    4 - 正常。
    建议开发者将风险等级为 1、2 的做拦截处理
    tagArray对应的描述

    返回值示例

     
     
     
    1. {
    2. "data": {
    3. "level": "3",
    4. "tag": [
    5. "空"
    6. ]
    7. },
    8. "errmsg": "succ",
    9. "errno": 0,
    10. "request_id": "3922098303",
    11. "timestamp": 1561110003
    12. }

    返回值示例

    错误码 描述
    400请求参数错误
    20020100解析失败,请检查xtoken参数是否正确
    20020200服务端内部异常,请稍候重试

    检测作弊用户参考代码

    • PHP
    • GOLANG
     
     
     
    1. /**
    2. * @desc php curl方式检测用户是否是作弊用户
    3. */
    4. // 参考 accessToken 获取文档;
    5. $accessToken = "xxx";
    6. // 小程序 appKey,从 B 端平台获取;
    7. $appKey = "xxxx";
    8. // 获取方式参考文档中 "post 参数" 解释
    9. $xtokenArr = array(
    10. "key" => "XXX",
    11. "value" => "XXX"
    12. );
    13. // 用户 ip
    14. $clientIp = "xxx.xxx.xxx.xxx";
    15. // 11位明文手机号
    16. $phone = "130xxxxxxxx";
    17. // 从请求 header 中获取
    18. $useragent = "xxxxxxx";
    19. // ev 1 为点击按钮获取,请按照文档设置合理的数值
    20. $ev = "1";
    21. $ret = dectectRisk($accessToken, $appKey, $xtokenArr, $clientIp, $phone, $useragent, $ev);
    22. var_dump($ret);
    23. /**
    24. * @desc 发起检测用户是否是作弊用户请求
    25. */
    26. function dectectRisk($accessToken, $appKey, $xtokenArr, $clientIp, $phone, $useragent, $ev){
    27. $url = "https://openapi.baidu.com/rest/2.0/smartapp/detectrisk?access_token={$accessToken}";
    28. $encryptedPhone = sha1($phone);
    29. $postDataArr = array(
    30. 'appkey' => $appKey,
    31. 'xtoken' => json_encode($xtokenArr),
    32. // 风控类型 目前只有 marketing
    33. 'type' => "marketing",
    34. 'clientip' => $clientIp,
    35. 'ts' => time(),
    36. 'ev' => $ev,
    37. 'useragent' => $useragent,
    38. 'phone' => $encryptedPhone,
    39. );
    40. $resp = curlPost($url, $postDataArr);
    41. return $resp;
    42. }
    43. /**
    44. * @desc curl POST请求,可以按照自己实际编程环境替换
    45. * @param string $url 请求的url地址
    46. * @param array $postDataArr 传递的数组参数
    47. * @return string 检测结果json字符串
    48. */
    49. function curlPost($url, $postDataArr){
    50. $headerArr =array("Content-type:application/x-www-form-urlencoded");
    51. $curl = curl_init();
    52. curl_setopt($curl, CURLOPT_URL, $url);
    53. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    54. curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,FALSE);
    55. curl_setopt($curl, CURLOPT_POST, 1);
    56. curl_setopt($curl, CURLOPT_POSTFIELDS, $postDataArr);
    57. curl_setopt($curl,CURLOPT_HTTPHEADER,$headerArr);
    58. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    59. $output = curl_exec($curl);
    60. curl_close($curl);
    61. return $output;
    62. }
     
     
     
    1. // Go http PostForm 方式检测用户是否是作弊用户
    2. package main
    3. import (
    4. "crypto/sha1"
    5. "fmt"
    6. "net/url"
    7. "strconv"
    8. "strings"
    9. "time"
    10. "encoding/json"
    11. "io/ioutil"
    12. "log"
    13. "net/http"
    14. )
    15. // 返回的信息
    16. type detectriskResp struct {
    17. Errno int `json:"errno"`
    18. Errmsg string `json:"errmsg"`
    19. RequestId string `json:"request_id"`
    20. Timestamp int64 `json:"timestamp"`
    21. Data struct {
    22. Level string `json:"level"`
    23. Tag []string `json:"tag"`
    24. } `json:"data"`
    25. }
    26. func main() {
    27. // 获取方式参考文档中 "post 参数" 解释
    28. xtokenMap := map[string]string{
    29. "key": "XXX",
    30. "value": "XXX",
    31. }
    32. xtokenByte, err := json.Marshal(xtokenMap)
    33. if err != nil {
    34. log.Fatalln(err)
    35. return
    36. }
    37. // 参考 accessToken 获取文档;
    38. accessToken := "xxx"
    39. // 小程序 appKey,从 B 端平台获取;
    40. appKey := "xxxx"
    41. // 用户 ip
    42. clientIp := "xxx.xxx.xxx.xxx"
    43. // 11位明文手机号
    44. phone := "130xxxxxxxx"
    45. // 11位明文手机号
    46. useragent := "xxxxxxx"
    47. // ev 1 为点击按钮获取,请按照文档设置合理的数值
    48. ev := "1"
    49. xtoken := string(xtokenByte)
    50. resp, err := dectectRisk(accessToken, appKey, xtoken, clientIp, ev, useragent, phone)
    51. fmt.Println(resp, err)
    52. }
    53. // dectectRisk 发起检测用户是否是作弊用户请求
    54. func dectectRisk(accessToken, appKey, xtoken, clientIp, ev, useragent, phone string) (*detectriskResp, error) {
    55. urlPath := "https://openapi.baidu.com/rest/2.0/smartapp/detectrisk?access_token=" + accessToken
    56. h := sha1.New()
    57. h.Write([]byte(phone))
    58. phoneSha1 := fmt.Sprintf("%x", h.Sum(nil))
    59. timeNowStr := strconv.FormatInt(time.Now().Unix(), 10)
    60. data := make(url.Values)
    61. data.Add("appkey", appKey)
    62. data.Add("xtoken", xtoken)
    63. // 风控类型 目前只有 marketing
    64. data.Add("type", "marketing")
    65. data.Add("clientip", clientIp)
    66. data.Add("ts", timeNowStr)
    67. data.Add("ev", ev)
    68. data.Add("useragent", useragent)
    69. data.Add("phone", phoneSha1)
    70. resp, err := netPost(urlPath, &data)
    71. if err != nil {
    72. log.Println(err)
    73. return nil, err
    74. }
    75. return resp, nil
    76. }
    77. // netPost POST请求,可以按照自己实际编程环境替换
    78. func netPost(urlPath string, data *url.Values) (*detectriskResp, error) {
    79. req, err := http.NewRequest("POST", urlPath, strings.NewReader(data.Encode()))
    80. req.Header.Add("content-type", "application/x-www-form-urlencoded")
    81. if err != nil {
    82. log.Println(err)
    83. return nil, err
    84. }
    85. client := &http.Client{Timeout: 5 * time.Second}
    86. resp, err := client.Do(req)
    87. if err != nil || resp.Body == nil {
    88. log.Println(err)
    89. return nil, err
    90. }
    91. defer resp.Body.Close()
    92. result, err := ioutil.ReadAll(resp.Body)
    93. if err != nil {
    94. log.Println(err)
    95. return nil, err
    96. }
    97. respData := &detectriskResp{}
    98. err = json.Unmarshal(result, respData)
    99. if err != nil {
    100. log.Println(err)
    101. return nil, err
    102. }
    103. return respData, nil
    104. }

    分享文章:创新互联百度小程序教程:detectrisk
    网页网址:http://www.shufengxianlan.com/qtweb/news33/216283.html

    网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

    广告

    声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联