企业微信内部网页开发流程笔记

背景

基于ai实现企微侧边栏和工作台快速问答小助,需要h5开发,因为流程不清楚摸索半天,所以记录一下

一、网页授权登录

1. 配置步骤

1.1 设置可信域名
  1. 登录企业微信管理后台

  2. 进入"应用管理" > 选择开发的具体应用 > “网页授权及JS-SDK”

  3. 配置h5展示页面路径,如有工作台也需配置工作台跳转路径

2.2 域名所有权验证
  1. 下载提供的校验文件
  2. 将文件放置在域名根目录下(放前端项目public文件夹中)
  • 例如:https://yourdomain.com/wwverify.txt
  1. 点击验证按钮,系统将自动检查

2 网页授权登录

企业微信提供了OAuth的授权登录方式,可以让从企业微信终端打开的网页获取成员的身份信息,从而免去登录的环节。

  1. 构造授权链接:
https://open.weixin.qq.com/connect/oauth2/authorize?
appid=CORPID&
redirect_uri=ENCODE_URL&
response_type=code&
scope=snsapi_base|snsapi_privateinfo&
state=STATE&
agentid=AGENTID#wechat_redirect
  1. 用户授权后,跳转到redirect_uri并带上code参数,此uri一般为h5当前页面

  2. 后端通过code获取用户信息:

// 获取access_token
GET https://qyapi.weixin.qq.com/cgi-bin/gettoken?
corpid=ID&corpsecret=SECRET

// 获取用户信息
GET https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?
access_token=ACCESS_TOKEN&code=CODE

二、JS-SDK接口调用

1. 配置步骤

1.1 设置可信域名
  1. 登录企业微信管理后台
  2. 进入"应用管理" > 选择开发的具体应用 > “网页授权及JS-SDK”
  • 只需填写根域名,如yourdomain.com
  • 所有子域名自动获得授权能力
  1. 配置h5展示页面路径,如有工作台也需配置工作台跳转路径
1.2 域名所有权验证
  1. 下载提供的校验文件
  2. 将文件放置在域名根目录下(放前端项目public文件夹中)
  • 例如:https://yourdomain.com/wwverify.txt
  1. 点击验证按钮,系统将自动检查
    在这里插入图片描述

2 (JS-SDK)接口调用

企业微信JS-SDK是企业微信面向网页开发者提供的基于企业微信内的网页开发工具包

1前端项目安装企微js-sdk依赖
npm install @wecom/jssdk
2签名校验
  1. 获取jsapi_ticket:(后端获取后返回)
GET https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?
access_token=ACCESS_TOKEN
  1. 生成签名:(所需使用企微接口需配置jsApiList)
const loadSignature = async (url: string) => {
        if (!signaturePromise) {
          signaturePromise = 服务端鉴权接口({ url }) // 只在第一次调用时执行
        }
        return signaturePromise
      }
      ww.register({
        corpId,
        agentId,
        jsApiList: ['getCurExternalContact'],
        getAgentConfigSignature: async (url) => {
          console.log('getAgentConfigSignature :>> ', url)
          const res = await loadSignature(url)
          const { agentSignature, nonceStr, timestamp } = res?.data ?? {}
          return { timestamp, nonceStr, signature: agentSignature }
        },
        onConfigSuccess: (res) => {
          console.log('onConfigSuccess :>> ', res)
        },
        onConfigFail: (res) => {
          console.log('onConfigFail :>> ', res)
        },
        onConfigComplete: (res) => {
          console.log('onConfigComplete', res)
        },
        onAgentConfigSuccess: (res) => {
          console.log('onAgentConfigSuccess :>> ', res)
          resolve(true)
        },
        
        onAgentConfigFail: (res) => {
          console.log('onAgentConfigFail :>> ', res)
          reject()
        },
        onAgentConfigComplete: (res) => {
          console.log('onAgentConfigComplete', res)
        },
      })

3. 本地调试获取JSAPI_TICKET

本地可以使用npx wwutil ticket CORPID SECRET命令获取jsapi_ticket

3 部分接口权限特殊配置

  1. 获取用户信息接口权限配置,需配置客户联系人
    在这里插入图片描述

三、 调试工具

  • 企业微信提供的接口调试工具
  • 使用开发者工具查看网络请求项目中添加console
<think>好的,用户想了解如何用Java开发笔记类微信小程序。首先,我需要明确用户的需求,可能他们希望从零开始搭建一个具有笔记功能的小程序,并且后端使用Java。接下来,我需要整理开发流程,确保涵盖前端和后端的整合步骤。 首先,小程序前端部分需要使用微信提供的开发工具,可能涉及WeUI框架,引用[3]提到WeUI是官方样式库,所以应该推荐使用。然后,后端Java部分需要搭建Spring Boot项目,因为这是常用的Java框架,引用[4]提到整合微信小程序和Java后端,可能需要配置控制器和处理请求。 用户可能对前后端通信不太熟悉,需要详细说明API设计,比如创建笔记、获取列表等接口。同时,数据存储方面,引用[2]提到Java与Redis整合,但这里可能需要更基础的数据库,比如MySQL,所以需要说明如何集成MyBatis或JPA。 另外,引用[4]中提到在微信开发工具中创建项目时不填写AppID,适用于内部测试,这点需要注意。用户可能还关心如何调试和部署,需要指导如何配置HTTPS,因为微信小程序要求后端使用HTTPS。 还要考虑安全性,比如用户登录验证,微信小程序通常使用微信登录,可能需要获取openid,但用户问题可能更关注笔记功能本身,所以暂时可以简化身份验证部分,或者使用模拟数据。 最后,生成相关问题时要覆盖开发流程中的关键点,比如框架选择、前后端通信、数据存储、界面优化和部署等,帮助用户进一步深入学习。</think>### 使用 Java 开发笔记类微信小程序的步骤指南 #### 一、开发环境搭建 1. **前端工具**:安装微信开发者工具[^3],创建小程序项目时选择不填写 AppID(适用于本地测试)[^4] 2. **后端环境**: - 使用 Maven 创建 Java Web 项目 - 集成 Spring Boot 框架简化开发流程 - 配置 Tomcat 服务器或内嵌容器 ```java // Spring Boot 启动类示例 @SpringBootApplication public class NotesApplication { public static void main(String[] args) { SpringApplication.run(NotesApplication.class, args); } } ``` #### 二、前后端通信实现 1. **API 设计规范**: - 创建笔记:`POST /api/notes` - 获取笔记列表:`GET /api/notes` - 更新笔记:`PUT /api/notes/{id}` - 删除笔记:`DELETE /api/notes/{id}` 2. **微信小程序网络请求**: ```javascript // 小程序端请求示例 wx.request({ url: 'https://yourdomain.com/api/notes', method: 'POST', data: { title: '示例', content: '测试内容' }, success: (res) => console.log(res.data) }) ``` #### 三、数据存储实现 1. **数据库选择**: - MySQL 关系型数据库(存储结构化数据) - 集成 MyBatis 或 Spring Data JPA ```java // JPA 实体类示例 @Entity @Table(name = "notes") public class Note { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String title; private String content; // getters/setters } ``` 2. **文件存储**: - 使用阿里云 OSS 或腾讯云 COS 存储附件 - 本地文件存储(仅限开发环境) #### 四、界面开发建议 1. **使用 WeUI 样式库**: ```xml <!-- 示例:笔记列表项 --> <view class="weui-cell"> <view class="weui-cell__bd">{{item.title}}</view> <view class="weui-cell__ft">{{item.createTime}}</view> </view> ``` 2. **功能模块划分**: - 笔记列表页 - 笔记编辑页 - 分类管理页 - 搜索功能页 #### 五、安全与部署 1. **HTTPS 配置**: - 申请 SSL 证书(Let's Encrypt 免费证书) - Spring Boot 配置示例: ```properties server.port=443 server.ssl.key-store=classpath:keystore.p12 server.ssl.key-store-password=yourpassword ``` 2. **微信登录集成**: - 通过 `wx.login` 获取 code - 后端通过 code 换取 openid ```java // 登录验证示例 public String wechatLogin(String code) { // 调用微信API换取openid // 生成自定义登录态token return token; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值