The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

Name

QQ::weixin::work::user

DESCRIPTION

通讯录管理->成员管理

FUNCTION

create(access_token, hash);

创建成员

SYNOPSIS

https://work.weixin.qq.com/api/doc/90000/90135/90195

请求说明:

请求包结构体为:

    {
      "userid": "zhangsan",
      "name": "张三",
      "alias": "jackzhang",
      "mobile": "13800000000",
      "department": [1, 2],
      "order":[10,40],
      "position": "产品经理",
      "gender": "1",
      "email": "zhangsan@gzdev.com",
      "is_leader_in_dept": [1, 0],
      "enable":1,
      "avatar_mediaid": "2-G6nrLmr5EC3MNb_-zL1dDdzkd0p7cNliYu9V5w7o8K0",
      "telephone": "020-123456",
      "address": "广州市海珠区新港中路",
      "extattr": {
        "attrs": [
            {
                "type": 0,
                "name": "文本名称",
                "text": {
                    "value": "文本"
                }
            },
            {
                "type": 1,
                "name": "网页名称",
                "web": {
                    "url": "http://www.test.com",
                    "title": "标题"
                }
            }
        ]
      },
      "to_invite": true,
      "external_position": "高级产品经理",
      "external_profile": {
        "external_corp_name": "企业简称",
        "external_attr": [
            {
                "type": 0,
                "name": "文本名称",
                "text": {
                    "value": "文本"
                }
            },
            {
                "type": 1,
                "name": "网页名称",
                "web": {
                    "url": "http://www.test.com",
                    "title": "标题"
                }
            },
            {
                "type": 2,
                "name": "测试app",
                "miniprogram": {
                    "appid": "wx8bd8012614784fake",
                    "pagepath": "/index",
                    "title": "my miniprogram"
                }
            }
        ]
      }
    }

参数说明:

    参数              必须  说明
    access_token        是       调用接口凭证。获取方法查看“获取access_token”
    userid      是       成员UserID。对应管理端的帐号,企业内必须唯一。不区分大小写,长度为1~64个字节。只能由数字、字母和“_-@.”四种字符组成,且第一个字符必须是数字或字母。
    name        是       成员名称。长度为1~64个utf8字符
    alias       否       成员别名。长度1~32个utf8字符
    mobile      否       手机号码。企业内必须唯一,mobile/email二者不能同时为空
    department  是       成员所属部门id列表,不超过20个
    order       否       部门内的排序值,默认为0,成员次序以创建时间从小到大排列。数量必须和department一致,数值越大排序越前面。有效的值范围是[0, 2^32)
    position    否       职务信息。长度为0~128个字符
    gender      否       性别。1表示男性,2表示女性
    email       否       邮箱。长度6~64个字节,且为有效的email格式。企业内必须唯一,mobile/email二者不能同时为空
    telephone   否       座机。32字节以内,由纯数字或’-‘号组成。
    is_leader_in_dept   否       个数必须和department一致,表示在所在的部门内是否为上级。1表示为上级,0表示非上级。在审批等应用里可以用来标识上级审批人
    avatar_mediaid      否       成员头像的mediaid,通过素材管理接口上传图片获得的mediaid
    enable      否       启用/禁用成员。1表示启用成员,0表示禁用成员
    extattr     否       自定义字段。自定义字段需要先在WEB管理端添加,见扩展属性添加方法,否则忽略未知属性的赋值。与对外属性一致,不过只支持type=0的文本和type=1的网页类型,详细描述查看对外属性
    to_invite   否       是否邀请该成员使用企业微信(将通过微信服务通知或短信或邮件下发邀请,每天自动下发一次,最多持续3个工作日),默认值为true。
    external_profile    否       成员对外属性,字段详情见对外属性
    external_position   否       对外职务,如果设置了该值,则以此作为对外展示的职务,否则以position来展示。长度12个汉字内
    address     否       地址。长度最大128个字符

权限说明

仅通讯录同步助手或第三方通讯录应用可调用。

注意,每个部门下的部门、成员总数不能超过3万个。建议保证创建department对应的部门和创建成员是串行化处理。

RETURN 返回结果

    {
       "errcode": 0,
       "errmsg": "created"
    }

RETURN 参数说明

    参数      说明
    errcode     返回码
    errmsg      对返回码的文本描述内容

get(access_token, userid);

读取成员

SYNOPSIS

https://work.weixin.qq.com/api/doc/90000/90135/90196

请求说明:

参数说明:

    参数              必须  说明
    access_token        是       调用接口凭证
    userid              是       成员UserID。对应管理端的帐号,企业内必须唯一。不区分大小写,长度为1~64个字节

权限说明

应用须拥有指定成员的查看权限。

RETURN 返回结果

    {
      "errcode": 0,
      "errmsg": "ok",
      "userid": "zhangsan",
      "name": "李四",
      "department": [1, 2],
      "order": [1, 2],
      "position": "后台工程师",
      "mobile": "13800000000",
      "gender": "1",
      "email": "zhangsan@gzdev.com",
      "is_leader_in_dept": [1, 0],
      "avatar": "http://wx.qlogo.cn/mmopen/ajNVdqHZLLA3WJ6DSZUfiakYe37PKnQhBIeOQBO4czqrnZDS79FH5Wm5m4X69TBicnHFlhiafvDwklOpZeXYQQ2icg/0",
      "thumb_avatar": "http://wx.qlogo.cn/mmopen/ajNVdqHZLLA3WJ6DSZUfiakYe37PKnQhBIeOQBO4czqrnZDS79FH5Wm5m4X69TBicnHFlhiafvDwklOpZeXYQQ2icg/100",
      "telephone": "020-123456",
      "enable": 1,
      "alias": "jackzhang",
      "address": "广州市海珠区新港中路",
      "extattr": {
        "attrs": [
            {
                "type": 0,
                "name": "文本名称",
                "text": {
                    "value": "文本"
                }
            },
            {
                "type": 1,
                "name": "网页名称",
                "web": {
                    "url": "http://www.test.com",
                    "title": "标题"
                }
            }
        ]
      },
      "status": 1,
      "qr_code": "https://open.work.weixin.qq.com/wwopen/userQRCode?vcode=xxx",
      "external_position": "产品经理",
      "external_profile": {
        "external_corp_name": "企业简称",
        "external_attr": [{
                "type": 0,
                "name": "文本名称",
                "text": {
                    "value": "文本"
                }
            },
            {
                "type": 1,
                "name": "网页名称",
                "web": {
                    "url": "http://www.test.com",
                    "title": "标题"
                }
            },
            {
                "type": 2,
                "name": "测试app",
                "miniprogram": {
                    "appid": "wx8bd80126147dFAKE",
                    "pagepath": "/index",
                    "title": "my miniprogram"
                }
            }
        ]
      }
    }

RETURN 参数说明

    参数          说明
    errcode         返回码
    errmsg          对返回码的文本描述内容
    userid      成员UserID。对应管理端的帐号,企业内必须唯一。不区分大小写,长度为1~64个字节
    name        成员名称,此字段从2019年12月30日起,对新创建第三方应用不再返回,2020年6月30日起,对所有历史第三方应用不再返回,后续第三方仅通讯录应用可获取,第三方页面需要通过通讯录展示组件来展示名字
    mobile      手机号码,第三方仅通讯录应用可获取
    department  成员所属部门id列表,仅返回该应用有查看权限的部门id
    order       部门内的排序值,默认为0。数量必须和department一致,数值越大排序越前面。值范围是[0, 2^32)
    position    职务信息;第三方仅通讯录应用可获取
    gender      性别。0表示未定义,1表示男性,2表示女性
    email       邮箱,第三方仅通讯录应用可获取
    is_leader_in_dept   表示在所在的部门内是否为上级。;第三方仅通讯录应用可获取
    avatar      头像url。 第三方仅通讯录应用可获取
    thumb_avatar        头像缩略图url。第三方仅通讯录应用可获取
    telephone   座机。第三方仅通讯录应用可获取
    enable      成员启用状态。1表示启用的成员,0表示被禁用。注意,服务商调用接口不会返回此字段
    alias       别名;第三方仅通讯录应用可获取
    extattr     扩展属性,第三方仅通讯录应用可获取
    status      激活状态: 1=已激活,2=已禁用,4=未激活。已激活代表已激活企业微信或已关注微工作台(原企业号)。未激活代表既未激活企业微信又未关注微工作台(原企业号)。
    qr_code     员工个人二维码,扫描可添加为外部联系人(注意返回的是一个url,可在浏览器上打开该url以展示二维码);第三方仅通讯录应用可获取
    external_profile    成员对外属性,字段详情见对外属性;第三方仅通讯录应用可获取
    external_position   对外职务,如果设置了该值,则以此作为对外展示的职务,否则以position来展示。
    address     地址。

update(access_token, hash);

更新成员

SYNOPSIS

https://work.weixin.qq.com/api/doc/90000/90135/90197

请求说明:

请求包体:

    {
      "userid": "zhangsan",
      "name": "李四",
      "department": [1],
      "order": [10],
      "position": "后台工程师",
      "mobile": "13800000000",
      "gender": "1",
      "email": "zhangsan@gzdev.com",
      "is_leader_in_dept": [1],
      "enable": 1,
      "avatar_mediaid": "2-G6nrLmr5EC3MNb_-zL1dDdzkd0p7cNliYu9V5w7o8K0",
      "telephone": "020-123456",
      "alias": "jackzhang",
      "address": "广州市海珠区新港中路",
      "extattr": {
        "attrs": [
            {
                "type": 0,
                "name": "文本名称",
                "text": {
                    "value": "文本"
                }
            },
            {
                "type": 1,
                "name": "网页名称",
                "web": {
                    "url": "http://www.test.com",
                    "title": "标题"
                }
            }
        ]
      },
      "external_position": "工程师",
      "external_profile": {
        "external_corp_name": "企业简称",
        "external_attr": [
            {
                "type": 0,
                "name": "文本名称",
                "text": {
                    "value": "文本"
                }
            },
            {
                "type": 1,
                "name": "网页名称",
                "web": {
                    "url": "http://www.test.com",
                    "title": "标题"
                }
            },
            {
                "type": 2,
                "name": "测试app",
                "miniprogram": {
                    "appid": "wx8bd80126147dFAKE",
                    "pagepath": "/index",
                    "title": "my miniprogram"
                }
            }
        ]
      }
    }

参数说明:

    参数              必须  说明
    access_token        是       调用接口凭证
    userid      是       成员UserID。对应管理端的帐号,企业内必须唯一。不区分大小写,长度为1~64个字节
    name        否       成员名称。长度为1~64个utf8字符
    alias       否       别名。长度为1-32个utf8字符
    mobile      否       手机号码。企业内必须唯一。若成员已激活企业微信,则需成员自行修改(此情况下该参数被忽略,但不会报错)
    department  否       成员所属部门id列表,不超过20个
    order       否       部门内的排序值,默认为0。数量必须和department一致,数值越大排序越前面。有效的值范围是[0, 2^32)
    position    否       职务信息。长度为0~128个字符
    gender      否       性别。1表示男性,2表示女性
    email       否       邮箱。长度不超过64个字节,且为有效的email格式。企业内必须唯一。若是绑定了腾讯企业邮的企业微信,则需要在腾讯企业邮中修改邮箱(此情况下该参数被忽略,但不会报错)
    telephone   否       座机。由1-32位的纯数字或’-‘号组成
    is_leader_in_dept   否       上级字段,个数必须和department一致,表示在所在的部门内是否为上级。
    avatar_mediaid      否       成员头像的mediaid,通过素材管理接口上传图片获得的mediaid
    enable      否       启用/禁用成员。1表示启用成员,0表示禁用成员
    extattr     否       自定义字段。自定义字段需要先在WEB管理端添加,见扩展属性添加方法,否则忽略未知属性的赋值。与对外属性一致,不过只支持type=0的文本和type=1的网页类型,详细描述查看对外属性
    external_profile    否       成员对外属性,字段详情见对外属性
    external_position   否       对外职务,如果设置了该值,则以此作为对外展示的职务,否则以position来展示。不超过12个汉字
    address     否       地址。长度最大128个字符

    特别地,如果userid由系统自动生成,则仅允许修改一次。新值可由new_userid字段指定。

权限说明

仅通讯录同步助手或第三方通讯录应用可调用。

注意,每个部门下的部门、成员总数不能超过3万个。

RETURN 返回结果

    {
       "errcode": 0,
       "errmsg": "updated"
    }

RETURN 参数说明

    参数      说明
    errcode     返回码
    errmsg      对返回码的文本描述内容

delete(access_token, userid);

删除成员

SYNOPSIS

https://exmail.qq.com/qy_mng_logic/doc#10016

请求说明:

参数说明:

    参数              必须  说明
    access_token        是       调用接口凭证
    userid              是       成员UserID。成员UserID。对应管理端的帐号

权限说明

仅通讯录同步助手或第三方通讯录应用可调用。 若是绑定了腾讯企业邮,则会同时删除邮箱帐号。

RETURN 返回结果

    {
       "errcode": 0,
       "errmsg": "deleted"
    }

RETURN 参数说明

    参数      说明
    errcode     返回码
    errmsg      对返回码的文本描述内容

batchdelete(access_token, hash);

批量删除成员

SYNOPSIS

https://work.weixin.qq.com/api/doc/90000/90135/90199

请求说明:

请求包结构体为:

    {
        "useridlist": ["zhangsan", "lisi"]
    }

参数说明:

    参数              必须  说明
    access_token        是       调用接口凭证
    useridlist    是     成员UserID列表。对应管理端的帐号。最多支持200个。若存在无效UserID,直接返回错误

权限说明

    仅通讯录同步助手或第三方通讯录应用可调用。

RETURN 返回结果

    {
        "errcode": 0,
        "errmsg": "deleted"
    }

RETURN 参数说明

    参数      说明
    errcode     返回码
    errmsg      对返回码的文本描述内容

simplelist(access_token, department_id, fetch_child);

获取部门成员

SYNOPSIS

https://work.weixin.qq.com/api/doc/90000/90135/90200

请求说明:

参数说明:

    参数              必须  说明
    access_token        是       调用接口凭证
    department_id       是       获取的部门id
    fetch_child 否       是否递归获取子部门下面的成员:1-递归获取,0-只获取本部门

权限说明

应用须拥有指定部门的查看权限。

RETURN 返回结果

    {
        "errcode": 0,
        "errmsg": "ok",
        "userlist": [
          {
             "userid": "zhangsan",
             "name": "李四",
             "department": [1, 2]
          }
      ]
    }

RETURN 参数说明

    参数          说明
    errcode         返回码
    errmsg          对返回码的文本描述内容
    userlist    成员列表
    userid          成员UserID。对应管理端的帐号
    name             成员名称,此字段从2019年12月30日起,对新创建第三方应用不再返回,2020年6月30日起,对所有历史第三方应用不再返回,后续第三方仅通讯录应用可获取,第三方页面需要通过通讯录展示组件来展示名字
    department  成员所属部门列表。列表项为部门ID,32位整型

list(access_token, department_id, fetch_child);

获取部门成员详情

SYNOPSIS

https://work.weixin.qq.com/api/doc/90000/90135/90201

请求说明:

参数说明:

    参数              必须  说明
    access_token        是       调用接口凭证
    department_id       是       获取的部门id
    fetch_child     否   1/0:是否递归获取子部门下面的成员

权限说明

应用须拥有指定部门的查看权限。

RETURN 返回结果

    {
        "errcode": 0,
        "errmsg": "ok",
        "userlist": [
            {
              "userid": "zhangsan",
              "name": "李四",
              "department": [1, 2],
              "order": [1, 2],
              "position": "后台工程师",
              "mobile": "13800000000",
              "gender": "1",
              "email": "zhangsan@gzdev.com",
              "is_leader_in_dept": [1, 0],
              "avatar": "http://wx.qlogo.cn/mmopen/ajNVdqHZLLA3WJ6DSZUfiakYe37PKnQhBIeOQBO4czqrnZDS79FH5Wm5m4X69TBicnHFlhiafvDwklOpZeXYQQ2icg/0",
              "thumb_avatar": "http://wx.qlogo.cn/mmopen/ajNVdqHZLLA3WJ6DSZUfiakYe37PKnQhBIeOQBO4czqrnZDS79FH5Wm5m4X69TBicnHFlhiafvDwklOpZeXYQQ2icg/100",
              "telephone": "020-123456",
              "enable": 1,
              "alias": "jackzhang",
              "status": 1,
              "address": "广州市海珠区新港中路",
              "hide_mobile" : 0,
              "english_name" : "jacky",
              "extattr": {
                "attrs": [
                    {
                        "type": 0,
                        "name": "文本名称",
                        "text": {
                            "value": "文本"
                        }
                    },
                    {
                        "type": 1,
                        "name": "网页名称",
                        "web": {
                            "url": "http://www.test.com",
                            "title": "标题"
                        }
                    }
                ]
              },
              "qr_code": "https://open.work.weixin.qq.com/wwopen/userQRCode?vcode=xxx",
              "external_position": "产品经理",
              "external_profile": {
                "external_corp_name": "企业简称",
                "external_attr": [{
                        "type": 0,
                        "name": "文本名称",
                        "text": {
                            "value": "文本"
                        }
                    },
                    {
                        "type": 1,
                        "name": "网页名称",
                        "web": {
                            "url": "http://www.test.com",
                            "title": "标题"
                        }
                    },
                    {
                        "type": 2,
                        "name": "测试app",
                        "miniprogram": {
                            "appid": "wx8bd80126147dFAKE",
                            "pagepath": "/index",
                            "title": "miniprogram"
                        }
                    }
                ]
              }
            }
        ]
    }

RETURN 参数说明

    参数          说明
    errcode         返回码
    errmsg          对返回码的文本描述内容
    userlist    成员列表
    userid      成员UserID。对应管理端的帐号
    name        成员名称,此字段从2019年12月30日起,对新创建第三方应用不再返回,2020年6月30日起,对所有历史第三方应用不再返回,后续第三方仅通讯录应用可获取,第三方页面需要通过通讯录展示组件来展示名字
    mobile      手机号码,第三方仅通讯录应用可获取
    department  成员所属部门id列表,仅返回该应用有查看权限的部门id
    order       部门内的排序值,32位整数,默认为0。数量必须和department一致,数值越大排序越前面。
    position    职务信息;第三方仅通讯录应用可获取
    gender      性别。0表示未定义,1表示男性,2表示女性
    email       邮箱,第三方仅通讯录应用可获取
    is_leader_in_dept   表示在所在的部门内是否为上级;第三方仅通讯录应用可获取
    avatar      头像url。第三方仅通讯录应用可获取
    thumb_avatar        头像缩略图url。第三方仅通讯录应用可获取
    telephone   座机。第三方仅通讯录应用可获取
    enable      成员启用状态。1表示启用的成员,0表示被禁用。服务商调用接口不会返回此字段
    alias       别名;第三方仅通讯录应用可获取
    status      激活状态: 1=已激活,2=已禁用,4=未激活 已激活代表已激活企业微信或已关注微工作台(原企业号)。未激活代表既未激活企业微信又未关注微工作台(原企业号)。
    extattr     扩展属性,第三方仅通讯录应用可获取
    qr_code     员工个人二维码,扫描可添加为外部联系人;第三方仅通讯录应用可获取
    external_profile    成员对外属性,字段详情见对外属性;第三方仅通讯录应用可获取
    external_position   对外职务。 第三方仅通讯录应用可获取
    address     地址
    hide_mobile 是否隐藏手机号
    english_name        英文名

convert_to_openid(access_token, hash);

userid与openid互换: userid转openid

SYNOPSIS

https://work.weixin.qq.com/api/doc/90000/90135/90202

请求说明:

该接口使用场景为企业支付,在使用企业红包和向员工付款时,需要自行将企业微信的userid转成openid。

注:需要成员使用微信登录企业微信或者关注微工作台(原企业号)才能转成openid;

如果是外部联系人,请使用外部联系人openid转换转换openid

请求包结构体为:

    {
        "userid": "zhangsan"
    }

参数说明:

    参数              必须  说明
    access_token        是       调用接口凭证
    userid      是       企业内的成员id

权限说明

    成员必须处于应用的可见范围内

RETURN 返回结果

    {
        "errcode": 0,
        "errmsg": "ok",
        "openid": "oDjGHs-1yCnGrRovBj2yHij5JAAA"
    }

RETURN 参数说明

    参数      说明
    errcode     返回码
    errmsg      对返回码的文本描述内容
    openid      企业微信成员userid对应的openid

convert_to_userid(access_token, hash);

userid与openid互换: openid转userid

SYNOPSIS

https://work.weixin.qq.com/api/doc/90000/90135/90202

请求说明:

该接口主要应用于使用企业支付之后的结果查询。

开发者需要知道某个结果事件的openid对应企业微信内成员的信息时,可以通过调用该接口进行转换查询。

请求包结构体为:

    {
        "openid": "oDjGHs-1yCnGrRovBj2yHij5JAAA"
    }

参数说明:

    参数              必须  说明
    access_token        是       调用接口凭证
    openid      是       在使用企业支付之后,返回结果的openid

权限说明

    管理组需对openid对应的企业微信成员有查看权限。

RETURN 返回结果

    {
        "errcode": 0,
        "errmsg": "ok",
        "userid": "zhangsan"
    }

RETURN 参数说明

    参数      说明
    errcode     返回码
    errmsg      对返回码的文本描述内容
    userid      该openid在企业微信对应的成员userid

authsucc(access_token, userid);

二次验证

SYNOPSIS

https://work.weixin.qq.com/api/doc/90000/90135/90203

请求说明:

此接口可以满足安全性要求高的企业进行成员加入验证。开启二次验证后,用户加入企业时需要跳转企业自定义的页面进行验证。

企业在开启二次验证时,必须在管理端填写企业二次验证页面的url。

当成员登录企业微信或关注微工作台(原企业号)加入企业时,会自动跳转到企业的验证页面。在跳转到企业的验证页面时,会带上如下参数:code=CODE。

企业收到code后,使用“通讯录同步助手”调用接口“根据code获取成员信息”获取成员的userid。然后在验证成员信息成功后,调用如下接口即可让成员成功加入企业。

参数说明:

    参数              必须  说明
    access_token        是       调用接口凭证
    userid              是       成员UserID。对应管理端的帐号

权限说明

RETURN 返回结果

    {
      "errcode": 0,
      "errmsg": "ok"
    }

RETURN 参数说明

    参数          说明
    errcode         返回码
    errmsg          对返回码的文本描述内容

getuserinfo(access_token, code);

获取访问用户身份

SYNOPSIS

https://work.weixin.qq.com/api/doc/90000/90135/91023

请求说明:

该接口用于根据code获取成员信息

参数说明:

    参数              必须  说明
    access_token        是       调用接口凭证
    code        是       通过成员授权获取到的code,最大为512字节。每次成员授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期。

权限说明

跳转的域名须完全匹配access_token对应应用的可信域名,否则会返回50001错误。

RETURN 返回结果a

    {
      "errcode": 0,
      "errmsg": "ok",
      "UserId":"USERID",
      "DeviceId":"DEVICEID"
    }

RETURN 参数说明a

    参数          说明
    errcode         返回码
    errmsg          对返回码的文本描述内容
    UserId      成员UserID。若需要获得用户详情信息,可调用通讯录接口:读取成员
    DeviceId    手机设备号(由企业微信在安装时随机生成,删除重装会改变,升级不受影响)

RETURN 返回结果b

        {
          "errcode": 0,
          "errmsg": "ok",
          "OpenId":"OPENID",
          "DeviceId":"DEVICEID"
        }

RETURN 参数说明b

        参数              说明
        errcode     返回码
        errmsg      对返回码的文本描述内容
        OpenId  非企业成员的标识,对当前企业唯一
        DeviceId        手机设备号(由企业微信在安装时随机生成,删除重装会改变,升级不受影响)

get_mobile_hashcode(access_token, hash);

获取手机号随机串

SYNOPSIS

https://work.weixin.qq.com/api/doc/90000/90135/91735

请求说明:

支持企业获取手机号随机串,该随机串可直接在企业微信终端搜索手机号对应的微信用户。

请求包结构体为:

    {
      "mobile" : "+8613800000000",
      "state": "123456"
    }

参数说明:

    参数              必须  说明
    access_token        是       调用接口凭证
    mobile      是       手机号
    state       否       企业自定义的state参数,用于区分不同的添加渠道,在调用“获取外部联系人详情”时会返回该参数值

权限说明

    仅限自建应用调用。

RETURN 返回结果

    {
        "errcode": 0,
        "errmsg": "ok",
        "hashcode": "1abcd2xaba3dxab4sdxa"
    }

RETURN 参数说明

    参数      说明
    errcode     返回码
    errmsg      对返回码的文本描述内容
    hashcode    手机号对应的随机串,20个字节,30分钟内有效