# enba-integrate-jssdk **Repository Path**: mn_cxy/enba-integrate-jssdk ## Basic Information - **Project Name**: enba-integrate-jssdk - **Description**: 🚀【恩爸编程,只讲有用的】该项目是一个springboot集成**微信公众号JSSDK**的案例,拿来就能用在自己的项目中。 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-11-03 - **Last Updated**: 2025-02-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 微信JS-SDK允许开发者在网页中调用微信的开放接口,但这个网页并不是在任何地方都能打开并正常调用这些接口的。具体来说,有几个关键点需要注意: [官方文档](https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html) [下载官方提供的工具,模拟微信客户端环境调试JSSDK](https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Web_Developer_Tools.html) [微信开放社区,有问题可以这里搜索](https://developers.weixin.qq.com/community/minihome/mixflow/1277775808983138305) ### 按照下面步骤操作 --- #### 1. 域名白名单 微信JS-SDK要求调用JS-SDK的网页域名必须在微信公众平台的后台配置中进行白名单设置。这意味着只有在白名单中的域名才能成功调用微信JS-SDK的接口。 ##### 配置步骤: 1. 登录微信公众平台(https://mp.weixin.qq.com)。 2. 进入“公众号设置”。 3. 在“公众号设置”中找到“JS接口安全域名”。 4. 添加需要调用JS-SDK的域名。 例如,如果你的网站域名为 http://example.com,你需要在白名单中添加 http://example.com。 #### 2. 网页必须在微信内置浏览器中打开 微信JS-SDK的接口只能在微信内置浏览器中调用。如果用户在其他浏览器中打开网页,即使域名在白名单中,也无法调用这些接口。 #### 3. 签名验证 调用微信JS-SDK的接口需要进行签名验证。签名验证涉及以下几个步骤: 1. 获取 access_token。 2. 获取 jsapi_ticket。 3. 生成签名(signature)。 ##### 示例代码: ```java // 获取access_token String accessTokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=YOUR_APPID&secret=YOUR_APPSECRET"; RestTemplate restTemplate = new RestTemplate(); Map accessTokenResult = restTemplate.getForObject(accessTokenUrl, Map.class); String accessToken = (String) accessTokenResult.get("access_token"); // 获取jsapi_ticket String jsapiTicketUrl = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" + accessToken + "&type=jsapi"; Map jsapiTicketResult = restTemplate.getForObject(jsapiTicketUrl, Map.class); String jsapiTicket = (String) jsapiTicketResult.get("ticket"); // 生成签名 String nonceStr = UUID.randomUUID().toString().replaceAll("-", ""); long timestamp = System.currentTimeMillis() / 1000; String url = "http://example.com/your-page"; // 当前页面的URL String signature = generateSignature(jsapiTicket, nonceStr, timestamp, url); // 生成签名的方法 public static String generateSignature(String jsapiTicket, String nonceStr, long timestamp, String url) { String string1 = "jsapi_ticket=" + jsapiTicket + "&noncestr=" + nonceStr + "×tamp=" + timestamp + "&url=" + url; return DigestUtils.sha1Hex(string1); } ``` #### 4. 初始化微信JS-SDK 在网页中初始化微信JS-SDK,并配置相关参数。 ##### HTML 示例: ```html 微信JS-SDK示例

欢迎使用微信JS-SDK示例

``` ##### 总结 * 域名白名单:必须在微信公众平台中配置调用JS-SDK的域名。 * 微信内置浏览器:网页必须在微信内置浏览器中打开。 * 签名验证:需要生成并传递正确的签名参数。 遵循这些步骤,你就可以在指定的网页中成功调用微信JS-SDK的接口 ---