欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

WAP手机网页浏览器唤起微信

程序员文章站 2022-09-11 15:34:40
wap手机网页浏览器唤起微信并且转到微信内置浏览器打开指定网址 概要 企业微信对应用安装提供了用户自主授权安装的机制,但是当用户没有企业微信时,用户需要先注册企业微信再安装第三方应用,对于用户流程...

    wap手机网页浏览器唤起微信并且转到微信内置浏览器打开指定网址

    概要

    企业微信对应用安装提供了用户自主授权安装的机制,但是当用户没有企业微信时,用户需要先注册企业微信再安装第三方应用,对于用户流程比较繁琐。
    基于这种情况,企业微信提供二维码功能,服务商只需要先配置好对应的推广二维码(即一系列应用及企业初始化设置),下载生成的二维码,用户扫码就能注册企业微信并默认安装预置的第三方应用。企业微信也提供了注册按钮,可以利用推广二维码生成的参数拼装出注册链接,用户点击该注册链接即可在注册完企业微信并默认安装预置的第三方应用。

    配置流程

    1. 上线应用

    注册模板需要配置已上线的普通应用,所以请先将需要接入到注册流程的应用上线。

    2. 创建推广二维码

    设置入口:服务商管理后台 > 应用推广 > 推广二维码
    根据不同的企业需求,可以将不同应用及设置生成一个推广二维码,添加分为两步。

    步骤1:配置应用

    首先需要选择预装的第三方应用和企业微信基础应用,即用户注册完企业微信后显示的应用。
    这里支持选择:

    服务商应用(网页应用和小程序) 企业微信基础应用

    注:服务商应用只支持最多选择9个,不支持选择其它类型应用(如通讯录应用)。

    然后设置工作台的显示方式。

    步骤2:配置功能开关

    通讯录迁移接口:开启后,企业初始化配置时会锁定用户的通讯录,并回调服务商一个通讯录临时读写权限凭证,服务商可以对用户的通讯录进行初始化迁移。 全员群开关:开启后,企业初始化配置时会开启全员群。 自动创建部门群开关:开启后,企业初始化配置时会开启部门群开关。

    配置开放接口的通用回调参数

    如果希望监控用户通过二维码成功注册企业微信的数据,可以设置通用开发参数
    设置入口:服务商管理后台 > 开放接口 > 通用开放参数
    配置好【事件接收url】,【token】,【encodingaeskey】。企业微信注册成功后将根据这3个参数进行回调。

    使用推广二维码

    1. 用户扫码注册

    推广二维码可以放在任何的网页和h5图文中,用户通过微信或企业微信都可以扫描二维码,没有企业微信的用户会被引导下载、安装、注册企业微信,注册成功后,预置的应用默认安装在工作台;有企业微信的用户会被引导到应用添加流程。

    2.1 用户扫码注册流程

    2.2 注册企业微信完成后的回调

    用户在注册页面提交资料完成企业微信的注册流程。

    企业微信侧:注册成功之后回调一个“注册完成事件”给服务商,同时判断通讯录迁移接口是否开启,若开启,则锁定用户通讯录。 服务商侧:接收到回调事件可以做自己的帐户体系初始化等操作。

    2.3 初始化企业微信并安装应用

    企业微信侧:会根据推广二维码中的配置,初始化企业,并安装服务商的应用,应用的可见范围初始化为通讯录根目录。应用安装完成会回调“授权成功通知” 服务商侧:若开启了通讯录迁移接口,可以使用通讯录管理接口对用户的通讯录做初始化。

    迁移通讯录步骤如下:

    收到“注册完成回调事件”或者主动“查询注册状态”成功即可调用通讯录相关接口同步通讯录到企业微信。调用通讯录接口凭证(access_token)可以通过“注册完成回调事件”或者“查询注册状态”接口获取。 通讯录迁移完成之后服务商需要调用“设置通讯录同步完成”接口解除通讯录锁定状态。

    2.4 web页面放置推广二维码的交互建议

    注册链接的打开使用浏览器新标签页的方式,让用户在一个新的页面进行注册。 然后在原页面弹层等待用户(类似pc端网银支付的流程)。 当用户注册完成之后,企业微信侧会回调通知服务商,用户已经注册完成,并且带上这个用户的标识和信息。 服务商接收到注册完成通知之后进行页面的刷新即可较为流畅地进入到服务商自身的后台。 用户也可以在新页面选择同时进入企业微信管理后台

    3 注册按钮

    除了提供二维码的注册方式之外,企业微信还提供注册按钮的推广方式。

    3.1 注册按钮注册流程

    WAP手机网页浏览器唤起微信

    3.2 注册按钮链接的生成和嵌入

    调用“获取注册码接口”得到register_code,并构造以下链接嵌入到自己的网站中:

    
    
    https://open.work.weixin.qq.com/3rdservice/wework/registerregister_code=register_code

    获取注册码

    该api用于根据注册模板生成注册码(register_code)。

    请求方式:post(https
    请求地址:https://qyapi.weixin.qq.com/cgi-bin/service/get_register_codeprovider_access_token=provider_access_token

    请求包体:

    
    
    { "template_id":"templateid" , "corp_name":"腾讯科技", "admin_name":"张三", "admin_mobile":"12345678901", "state":"teststate123", "follow_user": "lisi" }

    参数说明:

    参数 是否必须 说明
    provider_access_token 服务商provider_access_token,获取方法参见服务商的凭证
    template_id 注册模板id,最长为128个字节
    corp_name 企业名称
    admin_name 管理员姓名
    admin_mobile 管理员手机号
    state 用户自定义的状态值。只支持英文字母和数字,最长为128字节。若指定该参数, 接口查询注册状态及注册完成回调事件会相应返回该字段值
    follow_user 跟进人的userid,必须是服务商所在企业的成员。若配置该值,则由该注册码创建的企业,在服务商管理后台,该企业的报备记录会自动标注跟进人员为指定成员

    调用若传递corp_name/admin_name/admin_mobile参数,则在进入注册企业填写信息时,相应的值会自动填到表格中。

    返回结果:

    
    
    { "errcode":0, "errmsg":"ok", "register_code":"piki3wrpnwcgf-pyp-yu5kwjddd", "expires_in": 600 }

    参数说明:

    参数 说明
    errcode 错误码
    errmsg 错误码对应的描述
    register_code 注册码,只能消费一次。在访问注册链接时消费。最长为512个字节
    expires_in register_code有效期,生成链接需要在有效期内点击跳转

    查询注册状态

    该api用于查询企业注册状态,企业注册成功返回注册信息。

    请求方式:post(https
    请求地址:https://qyapi.weixin.qq.com/cgi-bin/service/get_register_infoprovider_access_token=provider_access_token

    请求包体:

    
    
    { "register_code":"piki3wrpnwcgf-pyp-yu5kwjddd" }

    参数说明:

    参数 是否必须 说明
    provider_access_token 应用提供商的provider_access_token,获取方法参见服务商的凭证
    register_code 查询的注册码,register_code生成后的查询有效期为24小时

    返回结果:

    
    
    { "errcode":0, "errmsg":"ok", "corpid":"wxf8b4f85f3a794e77", "contact_sync": { "access_token":"accesstoken000001", "expires_in":1800 }, "auth_user_info": { "userid":"zhangshan" }, "state":"teststate123" }

    参数说明:

    参数 说明
    errcode 错误码
    errmsg 错误码对应的描述
    corpid 企业的corpid
    contact_sync 通讯录迁移的凭证信息。仅当注册模板开启通讯录迁移接口时返回该参数
    access_token 通讯录api接口调用凭证,有全部通讯录读写权限。(请注意与provider_access_token的区别)
    expires_in access_token凭证的有效时间(秒)
    auth_user_info 授权管理员的信息
    userid 授权管理员的userid
    state 用户自定义的状态值,参数值由接口获取注册码指定。若未指定,则无该字段

    设置授权应用可见范围

    调用该接口前提是开启通讯录迁移,收到授权成功通知后可调用。企业注册初始化安装应用后,应用默认可见范围为根部门。如需修改应用可见范围,服务商可以调用该接口设置授权应用的可见范围。该接口只能使用注册完成回调事件或者查询注册状态返回的access_token,调用设置通讯录同步完成后或者access_token超过30分钟失效(即解除通讯录锁定状态)则不能继续调用该接口。

    请求方式:get(https
    请求地址:https://qyapi.weixin.qq.com/cgi-bin/agent/set_scopeaccess_token=access_token

    请求包体:

    
    
    { "agentid":1 , "allow_user":["zhansan","lisi"], "allow_party":[1,2,3], "allow_tag":[1,2,3] }

    参数说明:

    参数 是否必须 说明
    access_token 查询注册状态接口返回的access_token(跟注册完成回调事件的accesstoken参数一致,请注意与provider_access_token的区别)
    agentid 授权方应用id
    allow_user 应用可见范围(成员)若未填该字段,则清空可见范围中成员列表
    allow_party 应用可见范围(部门)若未填该字段,则清空可见范围中部门列表
    allow_tag 应用可见范围(标签)若未填该字段,则清空可见范围中标签列表

    返回结果:

    
    
    { "errcode":0, "errmsg":"ok", "invaliduser":["zhangshan","lisi"], "invalidparty":[2,3], "invalidtag":[2,3] }

    参数说明:

    参数 说明
    errcode 错误码
    errmsg 错误码对应的描述
    invaliduser 非法成员列表
    invalidparty 非法部门列表
    invalidtag 非法标签列表

    设置通讯录同步完成

    该api用于设置通讯录同步完成,解除通讯录锁定状态,同时使通讯录迁移access_token失效。

    请求方式:get(https
    请求地址:https://qyapi.weixin.qq.com/cgi-bin/sync/contact_sync_successaccess_token=access_token

    参数说明:

    参数 是否必须 说明
    access_token 查询注册状态接口返回的access_token(跟注册完成回调事件的accesstoken参数一致,请注意与provider_access_token的区别)

    返回结果:

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

    注册完成回调事件

    推送到服务商设置的接收事件回调url上
    请求方式:post
    请求地址:https://127.0.0.1/service/receivemsg_signature=3a7b08bb8e6dbce3c9671d6fdb69d15066227608×tamp=1403610513&nonce=380320359

    请求包体:

    
    
    15026821731800teststate123

    参数说明:

    参数 说明
    servicecorpid 服务商corpid
    infotype 事件类型,此处固定为register_corp,注册回调事件
    timestamp 回调事件的时间戳
    registercode 创建企业对应的注册码,仅当通过生成注册链接方式创建的企业会回调此参数
    authcorpid 注册成功的企业corpid
    contactsync 通讯录迁移的凭证信息。仅当注册模板开启通讯录迁移接口时返回该参数
    accesstoken 通讯录api接口调用凭证,有全部通讯录读写权限
    expiresin accesstoken的有效时间(秒)
    authuserinfo 授权管理员的信息
    userid 授权管理员的userid
    state 用户自定义的状态值,参数值由接口获取注册码指定。若未指定,则无该字段