- 微信开放平台更换服务器证书通知
微信开发者: 微信开放平台使用 HTTPS 协议来确保通信的安全性。在开发者调用微信开放平台 API 的过程中,会通过服务器证书来验证微信服务器及其域名的真实性。 由于 Mozilla 信任库更新了其根证书信任策略,微信开放平台计划于 2024 年 10 月 22 日 0:00 开始,逐步更换我们的服务器证书。新的证书将由 DigiCert Global Root G2 签发,替代现有的 DigiCert Global Root CA (G1)。 为确保此次服务器证书更换不会影响到你的正常服务,我们强烈建议你通知贵司技术开发人员仔细阅读我们提供的《微信开放平台新服务器证书兼容性验证指引》,请确保在 2024 年 10 月 22 日 0:00 前完成对微信开放平台新服务器证书的验证。 服务器证书验证仅涉及技术层面的工作,感谢你的理解和配合。 微信团队 2024年7月22日
07-23 - 微信开发者工具1.06.2407120 Stable 修复包更新说明
当前版本对工具项目编译、可视化、skyline 提示能力以及热重载做了系列问题修复和优化下载地址Windows 64、Window 32、MacOS、MacOS(M1) 当前版本基于 1.06.2407110 修复了以下bug:[代码]F[代码] 修复 热重载修改 JS 场景不能增量更新而是全量重新刷新的问题[代码]F[代码] 修复 加载windows 共享文件目录小程序目录无法正常渲染的问题 当前版本基于 1.06.2407101 修复了以下bug:[代码]F[代码] 修复 项目列表展示问题[代码]F[代码] 修复 上传体积变大的问题[代码]F[代码] 修复 小游戏 canvas.toTempFilePathSync 生成 jpg 的文件格式不对的问题 新增功能特性:1、新增多端项目类型让开发者对「多端应用」有更多的认知和了解,在开发者工具创建项目面板拟新增一个「多端项目」的入口,同时完善多端相关开发能力支持 [图片] 2、JS 编译优化 小游戏新增支持原生 ts 编译以及 SWC 编译模式,提高编译开发效率项目 project.config.json setting 新增编译配置 ignoreCodeQuality 可忽略代码质量检测[图片] 3、小程序基础调试能力优化 对齐支持分包指定入口文件加载支持省电模式模拟[图片]修复系列反馈编译缓存、编译不生效问题 4、云开发支持数电发票 [图片] wx.getFileInfo 接口文件摘要算法新增支持 sha256 具体所有特性:[代码]F[代码] 修复 项目列表展示问题[代码]F[代码] 修复 上传体积变大的问题[代码]F[代码] 修复 小游戏 canvas.toTempFilePathSync 生成 jpg 的文件格式不对的问题[代码]F[代码] 修复 首次切换可视化白屏的问题[代码]F[代码] 多端健康相关隐私描述不自动补全[代码]F[代码] 修复 安全限制导致的一些问题[代码]F[代码] 修复 多端iOS证书弹窗win不响应的问题[代码]F[代码] 修复 在异常情况下从多端切回小程序模式还是会提示多端的报错的问题[代码]F[代码] 修复 IOS 多端隐私描述审核问题[代码]A[代码] 多端 IOS 支持启动页图片国际化[代码]U[代码] 优化 对于有 miniprogramRoot 的项目,编辑器中 json 文件和 wxml 文件可以通过 “/” 来正确的引用到对应的路径[代码]F[代码] 修复 getLocation 返回 auth deny[代码]A[代码] 新增 支持分包入口文件[代码]A[代码] 多端 IOS 支持自动补全默认隐私信息访问许可[代码]A[代码] 新增 上传预览时忽略代码质量检测流程[代码]F[代码] 修复 模拟操作应用设置中定位关闭时 getLocation 表现与真机上不一致的问题[代码]A[代码] CLI支持安卓上传资源包和记录构建记录[代码]F[代码] 修复 安卓多端云构建无法执行[代码]A[代码] CLI支持多端IOS构建能力[代码]F[代码] 修复多端获取不到部分iOS设备的问题[代码]A[代码] 新增 放开Skyline模式下page.json disableScroll 不能设置为false的错误提示[代码]F[代码] 修复 独立分包无法异步加载主包组件的问题[代码]F[代码] 修复创建多端插件的问题[代码]F[代码] 修复多端插件签名失败的问题[代码]F[代码] 修复多端iOS插件开发中无法安装的问题[代码]F[代码] 修复 部分项目无法加载 app.wxss 的问题[代码]F[代码] 修复 分包启动时出现 FLOW_INITIAL_CREATION end but get FLOW_CREATE_NODE 的问题[代码]U[代码] 优化 创建项目体验优化[代码]F[代码] 修复 小游戏 JS 增强编译失效的问题[代码]F[代码] 修复 热重载部分场景功能失效的问题[代码]F[代码] 修复 小程序插件 genericsImplementation 配置自定义组件加载不到的问题[代码]A[代码] 开发者工具支持上传云函数到共享环境[代码]A[代码] 开放多端一键配置小程序登录服务入口[代码]F[代码] 修复 不校验域名信息的设置在小游戏插件不生效的问题[代码]A[代码] 优化绑定多端应用交互[代码]F[代码] 修复多端条件编译app.json时合并subpackage的问题[代码]F[代码] 修复 skyline模式下picker 组件 mode = multiSelector 时 bindcolumnchange无法触发的问题[代码]F[代码] 优化多端构建及内测体验[代码]F[代码] 修复多端插件使用报错的问题[代码]F[代码] 修复 修复 setStorage 和 getStorage 和真机表现不一致[代码]A[代码] 新增 支持低电量模式[代码]A[代码] 升级多端插件能力[代码]F[代码] 修复 多端模式选择部分模版创建不对的问题[代码]A[代码] 增加 广告组件样式文件展示支持[代码]A[代码] 新增 多端项目类型[代码]A[代码] 多端模式下 设备列表获取为空时新增 刷新 子菜单[代码]A[代码] 新增 允许 wasm 实验特性[代码]F[代码] 修复 小游戏无 workers 配置时渲染不了的问题[代码]F[代码] 修复 无法新建项目的问题[代码]F[代码] 修复 小屏幕构建面板显示不了操作按钮的问题[代码]A[代码] 新增 小程序项目时支持选择多端模式[代码]U[代码] 优化 项目创建窗口交互优化[代码]A[代码] 小游戏支持 ts[代码]A[代码] 小游戏支持 swc 编译模式 如果使用过程中有相关问题和建议反馈,可以加入下面的反馈群 (左)windows vip 反馈群 (右)mac vip 反馈群 [图片][图片]
08-21 - 微信云开发计费调整公告
各位微信云开发用户: 感谢大家一直以来对微信云开发的支持。由于云计算成本整体上升,为了继续为各位用户提供稳定可靠的服务,微信云开发将于 2022 年 08 月 18 日,对计费方式进行如下变更,部分指标价格将有所上浮。 新计费模式下,新用户免费使用 1 个月后,统一使用 “基础套餐+按量付费” 模式:购买带有一定配额的基础套餐后,超出套餐配额部分再按照实际使用量付费。 基础套餐 [图片] *新用户首月免费配额:与基础套餐一致,可满足大部分情况下的开发体验需求 *5 折折扣有效期至少延续至 2022 年底,后续折扣如有变化将另行通知 按量付费 [图片] 【指标说明】 1、调用次数:合并原多项指标统一计价,具体为 “云存储上传操作”、“云存储下载操作”;“数据库读操作”、“数据库写操作” 及新增指标 “云函数调用操作”; 2、容量:合并原多项指标统一计价,具体为 “存储空间" 及 "数据库容量"; 3、云函数日志服务:本次新增计费指标,建议通过优化日志存储策略降低该指标费用。 新用户手动触发确认开始使用后,将拥有 1 个月免费权益,体验期间的环境配额与基础套餐相同,可选择是否进行超额按量付费。 现有用户可以在「微信开发者工具-云开发控制台」或「微信云服务助手小程序」查询过往用量情况后,使用 价格计算器 预估新价格。 在计费方式升级生效之日(2022.08.08)起,对现有用户均提供至少 1 个月的操作缓冲期,期间会推送提醒及提供切换入口,用户可自由选择是否切换新的计费方式,超时未切换的云开发环境将会停服释放。缓冲期内切换成功的用户将会获得额外代金券。 对于当前月调用次数 >100 万次的帐号,本次调整将不直接生效,后续将由专业架构师联系或独立推送指引切换到合适配额的企业旗舰版本。 自本公告发布之日起,对于原已购预付费套餐、资源包的用户,仍然可正常使用原已购资源,直至原约定套餐到期或用完。现有旧预付费套餐不再支持续费超过一个月,现有旧资源包不再支持新购。 微信云开发将继续为各位用户提供简单易用安全的专业 Serverless 开发服务,感谢大家的支持。 Q&A 1、此次调整,意味着我的费用会增加吗? 是的,由于云计算整体成本的持续上升,为了能够长期给各位开发者提供低门槛的开发服务,我们对于部分计费指标进行了价格调整,在调整后大部分的开发者费用会一定程度的上浮。 2、我如何预估调整之后的费用是多少呢? 新计费生效后,在缓冲期内,开发者可查看新指标下的用量情况,或者根据过往用量,使用 价格计算器 估算调整之后的费用。 我们根据测算,为大部分开发者提供基础套餐配额以满足线上服务,如你的实际用量没有超过基础配额,也没有使用扩展功能,那么每月消费即为 19.9 元。 3、我需要在哪里操作切换新计费呢? [图片] 微信云服务助手小程序码 在计费方式升级生效之日(2022.08.08)起,开发者可前往「微信开发者工具-云开发控制台」或「微信云服务助手小程序」进行操作切换。按照过往的计费信息下发惯例,我们通过「微信公众平台公众号」向管理员推送计费变更信息与切换入口。 4、现在的环境是否可以继续使用呢? 新计费生效后,已购买的预付费套餐可正常使用至原到期时间,已购买资源包的按量付费环境可正常使用至原资源包到期时间,均不会存在直接失效或自动退费的情况。在切换到新计费方案后,原有环境即可持续正常使用。 5、如果超时切换会有什么影响呢? 若原环境到期且超出切换缓冲时间,则该环境将进入停服释放流程,数据不可找回,请开发者及时操作。 6、以上新计费方案生效后,我有多长时间可以决定是否继续使用云开发呢? 对于当前月调用次数 <100 万次的帐号,从公告发布日至新方案生效后的一个月,期间可进行是否继续使用的决策;计费方式升级生效之日(2022.08.08)起,我们也会通过上述 Q&A 3 说明的方式中提供切换入口与下发消息,此时你仍然有至少 1 个月的缓冲期做出决定。对于当前月调用次数 >100 万次的帐号,将有专业架构师联系指引切换到合适配额的企业旗舰版本,期间产生的消耗仍然按旧方案计费。我们会为大额消耗用户提供适当优惠,同时对于不希望继续使用云开发的此类帐号提供不低于 3 个月的缓冲时间。如有其他问题,可前往「微信开发者工具-云开发控制台-帮助-工单」主动联系我们。 7、我自行测算预估后觉得新方案有点贵,有什么好建议吗? 本次调整,价格上涨指标为 “调用次数”、“容量”和“CDN 流量”,建议相应进行技术优化,减少不必要的多次调用或存储内容,可有效控制费用;此外新增计费指标为日志服务,可在「微信开发者工具-云开发控制台-云函数-日志」中查看日志使用情况,并优化日志使用逻辑,避免上报大量冗余的日志信息导致不必要的费用支出。 若评估后认为新的费用方案已不适用于你的业务,可在上述充足的缓冲期内自行选择迁移业务至更合适的服务。 微信云开发团队 2022年7月4日
2022-08-08 - 开发服务器调用接口code2Session返回提示access_token不能为空?
开发服务器 GET https://api.weixin.qq.com/sns/jscode2session 传入开发服务器事前:GET https://api.weixin.qq.com/cgi-bin/token 得到的access_token 比如:access_token=65_DAljgJL0957cbXBXX0bN5wvoxdqsxxRZT5aJhTTvPP-SkaPHhaiorsrhgjTqYAEFclqGjEd4x4G9zcjFTEFfnCFXQeY3fJtF6ZGWFspRyBPbeethBuWCe_-A6NwPNIdAJAIGB&appid=wxc5dbd50af28e8127&secret=d3***************4efc&js_code=061n2a100F8EwP13C3300UGWhX3n2a1D&grant_type=authorization_code 返回仍旧提示:access_token不能为空。拿不到 session_key
2023-02-24 - 运行环境
一、教学课件 教学PPT下载:https://share.weiyun.com/kYNlcejh 欢迎大家前往官网注册并下载工具体验:https://edu.weixin.qq.com/ 二、在线视频 [视频] 本课程将为大家讲解小程序的运行环境。通过本课程的学习,将可以认识: 小程序可以在哪些硬件和软件平台上运行;了解各个平台之间的差异;当相同代码在不同平台上出现差异时如何解决。
09-03 - 小程序用户头像昵称获取规则调整公告
更新时间:2022年11月9日由于 PC/macOS 平台「头像昵称填写能力」存在兼容性问题,对于来自低于2.27.1版本的访问,小程序通过 wx.getUserProfile 接口将正常返回用户头像昵称,插件通过 wx.getUserInfo 接口将正常返回用户头像昵称。 更新时间:2022年9月28日考虑到近期开发者对小程序用户头像昵称获取规则调整的相关反馈,平台将接口回收的截止时间由2022年10月25日延期至2022年11月8日24时。 调整背景在小程序内,开发者可以通过 wx.login 接口直接获取用户的 openId 与 unionId 信息,实现微信身份登录,支持开发者在多个小程序或其它应用间匿名关联同一用户。 同时,为了满足部分小程序业务中需要创建用户的昵称与头像的诉求,平台提供了 wx.getUserProfile 接口,支持在用户授权的前提下,快速使用自己的微信昵称头像。 但实践中发现有部分小程序,在用户刚打开小程序时就要求收集用户的微信昵称头像,或者在支付前等不合理路径上要求授权。如果用户拒绝授权,则无法使用小程序或相关功能。在已经获取用户的 openId 与 unionId 信息情况下,用户的微信昵称与头像并不是用户使用小程序的必要条件。为减少此类不合理的强迫授权情况,作出如下调整。 调整说明自 2022 年 10 月 25 日 24 时后(以下统称 “生效期” ),用户头像昵称获取规则将进行如下调整: 自生效期起,小程序 wx.getUserProfile 接口将被收回:生效期后发布的小程序新版本,通过 wx.getUserProfile 接口获取用户头像将统一返回默认灰色头像,昵称将统一返回 “微信用户”。生效期前发布的小程序版本不受影响,但如果要进行版本更新则需要进行适配。自生效期起,插件通过 wx.getUserInfo 接口获取用户昵称头像将被收回:生效期后发布的插件新版本,通过 wx.getUserInfo 接口获取用户头像将统一返回默认灰色头像,昵称将统一返回 “微信用户”。生效期前发布的插件版本不受影响,但如果要进行版本更新则需要进行适配。通过 wx.login 与 wx.getUserInfo 接口获取 openId、unionId 能力不受影响。「头像昵称填写能力」支持获取用户头像昵称:如业务需获取用户头像昵称,可以使用「头像昵称填写能力」(基础库 2.21.2 版本开始支持,覆盖iOS与安卓微信 8.0.16 以上版本),具体实践可见下方《最佳实践》。小程序 wx.getUserProfile 与插件 wx.getUserInfo 接口兼容基础库 2.27.1 以下版本的头像昵称获取需求:对于来自低版本的基础库与微信客户端的访问,小程序通过 wx.getUserProfile 接口将正常返回用户头像昵称,插件通过 wx.getUserInfo 接口将正常返回用户头像昵称,开发者可继续使用以上能力做向下兼容。对于上述 3,wx.getUserProfile 接口、wx.getUserInfo 接口、头像昵称填写能力的基础库版本支持能力详细对比见下表: [图片] *针对低版本基础库,兼容处理可参考 兼容文档 请已使用 wx.getUserProfile 接口的小程序开发者和已使用 wx.getUserInfo 接口的插件开发者尽快适配。小游戏不受本次调整影响。 最佳实践小程序可在个人中心或设置等页面使用头像昵称填写能力让用户完善个人资料: [图片] 微信团队 2022年5月9日
2023-09-26 - wx.checkSession有必要使用吗?
微信服务器的session有效期和服务器本地session的有效期不可能保持完全一致,这在拉取服务器用户数据时候会存在问题。 看到的一个文档的文字: 因为session也存在有效,一旦我们请求业务的CGI后台判断登录态失效了,那么前端可以根据后台返回的错误码来判断是否重新登录。 所以就没有必要每次wx.checkSession,而且wx.checkSession几乎是没有用的到必要,因为登录态可以由我们业务维护,一旦失效,wx.login()重新换回一个session_key 就ok了嘛。 结论是:wx.checkSession几乎没有必要调用,而且他本身耗时,长达300+ms。 有人解答下吗
2018-02-01 - 更新视图
一、教学课件 教学PPT下载:https://share.weiyun.com/kYNlcejh 欢迎大家前往官网注册并下载工具体验:https://edu.weixin.qq.com/ 二、在线视频 [视频] 本课程将为大家讲解小程序更新视图。通过本课程的学习,将可以认识: 小程序更新视图的流程和特点;如何优化视图的更新效率。
09-03 - 小程序宿主环境
一、教学课件 教学PPT下载:https://share.weiyun.com/kYNlcejh 欢迎大家前往官网注册并下载工具体验:https://edu.weixin.qq.com/ 二、在线视频 [视频] 本课程将为大家讲解小程序宿主环境。 通过本课程的学习,将可以认识小程序的渲染层和逻辑层,并理解小程序的加载顺序。
09-03 - 小程序事件
一、教学课件 教学PPT下载:https://share.weiyun.com/kYNlcejh 欢迎大家前往官网注册并下载工具体验:https://edu.weixin.qq.com/ 二、在线视频 [视频] 本课程将为大家讲解小程序事件。通过本课程的学习,将可以认识: 小程序事件的语法特点;前端常见的事件冒泡如何解决;小程序特有的事件互斥。
09-03 - 传统前端和小程序前端对比
一、教学课件 教学PPT下载:https://share.weiyun.com/kYNlcejh 欢迎大家前往官网注册并下载工具体验:https://edu.weixin.qq.com/ 二、在线视频 [视频] 本课程将为大家讲解传统前端和小程序对比。 通过本课程的学习,将可以掌握两种前端技术的区别以及彼此的特点,让有传统前端开发经验的人员可以有一个开发思维上的过渡。
09-03 - 名片小程序跨终端升级
本节课程告诉你如何围绕名片小程序进行跨终端升级,提升开发效率。 iframe class="embed-responsive-item vqq-player" type="text/html" width="640" height="390" src="https://v.qq.com/txp/iframe/player.html?vid=i3552pbfzd3&disableplugin=IframeBottomOpenClientBar&&auto=0" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
06-12 - 做一个名片小程序
本节课程,以制作一个名片小程序为案例,快速学习了解小程序前端开发。 iframe class="embed-responsive-item vqq-player" type="text/html" width="640" height="390" src="https://v.qq.com/txp/iframe/player.html?vid=w3552hggw3g&disableplugin=IframeBottomOpenClientBar&&auto=0" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
06-12 - 微信小程序获取用户信息,encryptedData解密后乱码,导致不能获取用户信息,如何解决?
解密方法 [图片] 可解密内容 "encryptedData": "7gG5LI3ZaJtWnv8UwXQ7fn4lsVDTkxMS0/zYALVz66fVrNfz2y6R877jbXA3IMd2oIw7QItYGk+aTKzIgd14fxKAddn8sOe77O66RT976IDjU8jOC/WPCVGaEuqsDUXYGnrjS/Eb0SOtd/83XS7Tf8hyZQZNjXOMd+WXwDlmMXxMKualBxlBTck8VAn70ATE9eOVChKkP0mgyFRIs9RiZSKON8w8zfVLaecqcHHrqfUkcoTWew+oYcWlo6Boa8T2PLb8ONeEjp6hRDoNvceL5RXLL3KV91pFfhpf2uEp+anRspr5jv/l6sxyq8uRyhsMgwzMsZ1ZPYROPKBCPPS54GPY5XaQxwS4lKcUo7XY0NjXx+ILn4ZCsavhtesFdUG3x3pwUJD231QCuFHKtsYiyQ==" 不可解密内容: "encryptedData":"ovZtRFgkciNOABcTqigv3PjXdOU5TX9xoT+Lhkmtw+ElF7oqO2YPmEA7U13oiYfJo3JOByCHPQ07oCNgy/AET3m9+SbK6hOsk70Ynkk/3x5f42PG/Y0p39FtJhuthwxe9jXMZPL1a3gknz2lf5UXb1OGDPVAKy/T3pGUkOA4KwPEOsQXS4qZ/AISbes1hINELAoVzoa4dbYWVtLCez1EoVz/BB//NtyAhVNx6ZnOcRUUCHljAVqMAKymr4WYdMfICCo+P5W6MiIAP4h4TJW4ZyjeueKzsIoYWY0F+nYH6VCzvQM+2tGtagNfl0DAbmihb56mqWQJ2bvUX1GK34LhE9t0U90cvmQJInCYeLV8yvg7EtaubE+qrdMMzhKXMXJYVeQVh4xrtY4ZloH3VHSXKQ==" 解密结果:�ÿ�mc�)�b0�����Sz4�I�3+����J���?�����W5��~n�X�vp��,��o�zQ쉧��5��q�J�~u 目前测试,发现会偶现,但偶现几率有点高
2022-04-24 - 微信测试工具里面总是返解密失败,请问这是什么问题?
[图片] 我这边能成功解密,但为啥总是报这个错呢?
2019-09-18 - 微信服务号安全模式或兼容模式消息加解密验签异常解密字节数异常,跪求解决?
一、微信服务号的消息加解密问题: 1、总是签名异常(VerifySignature用signature不将sMsgEncrypt加入字典序可以通过;但按照加密说明和Demo将sMsgEncrypt加入字典序并用接收到的msg_signature就不行); 2、对密文进行AES_decrypt后,得到的内存流的字节数组的长度异常的大32768;大端序转小端序,整数异常大 BitConverter.ToInt32(btmpMsg, 16) = 2082045282: 3、下载C#演示demo的用其自带的参数能编译运行通过,但改为我接收到的参数及配置参数,就连签名都通不过了。 折腾一个月了,跪求解决。 二、微信服务号原始ID:gh_ef269fGW0870 三、基本信息如下: 原始配置: const FToken='dengqiang'; // //微信公众号的服务器配置-令牌(Token) const FEncodingAESKey='EYzh9ImZW3eVbCKgzIEXoNnqJcryTi1eR0LEcKXzGTR'; // 43个字符 //最近1次的 l0YHxVBSNe9bUgj8G7DWHDnFWpTyi5HElL9Jukx13sx //最近2次的 EYzh9ImZW3eVbCKgzIEXoNnqJcryTi1eR0LEcKXzGTR const Fappid='wxd6d2bksYr98c3ef2'; //开放平台下公众号的Appid---18个字符 //'gh_ef269fGW0870'; //微信公众号的原始ID---15个字符 接收到的Post消息: <xml> <Encrypt><![CDATA[Kn4jMkBu1cGBLv2LZ7H EDNbA160NaLjLA7PMXvlxotkHMmbzTBFgoOFcJLPw1hEE4UwBXo6Ks52zAaQ47JBQ7LhiinKKb5Ik 5O9eeQSTQCXZ1m76 f6sygGt vHjUtf /RsHF9n7FGvpKm9uORYKeyhk/I4N6Yoc1fk ac76wL9dIFXEEaLRY7LzF7P5mK71BZ0zeKTHZ19v3Hd5 DqEITe2sDqU Be2wQ/DWamyOWtosN60FKcWKr4ztJm rerLih7yup0BapW/N9SwO7yd/UUPDinqHEZHOh0BZkdY6S/M7OaDGq26 z4XvdsV0JrqhD3dolPaJtLCJmYcxz96cxAJD9EtqrCrCg9pN6dvJolaEOi/nrKLVHwi1LwJUo2Gmfl/kHfBBBnCmzCV5qPP3ff2GCaxi5mnD0ct7RHVICp3deDCHt TDL91m9O XtrHxP0/X2BD8zcHZTeZIahw==]]></Encrypt> <ToUserName><![CDATA[gh_ef269fGW0870]]></ToUserName> </xml> encrypt_type=aes msg_signature=efce89b1df14ab776f65814e598f00f9f8224a13 nonce=359888066 openid=oliZuuF1RFZ-5JS0lI87KjJEBclQ signature=675b9558765630124fcc9acec404156a96624ee0 timestamp=1672649920 补充详细日志如下: [2023-01-02] [16:56:19.615][3432][HINT]:微信access_token【计时器】开始工作...2023-01-02 16:56:19 [16:56:19.615][3432][HINT]:微信API服务器域名api.weixin.qq.com的IP地址的解析【计时器】开始工作...2023-01-02 16:56:19 [16:56:59.863][180][HINT]:未过期时的Faccess_token--- 64_in-fCt47Y1_dB2UGw2XWMJOkcu6HSUt2m95TrlAdc4ujpa1x3Z9Pj0Knmwgt6gX-6LOVVPycP9Z5lQYDum8IH1DKbFsjIpk1vfklRdDZrj3-oZa9LNtr5HYs0XsLPFdADAYCS [16:57:08.713][3232][HINT]:未过期时的Faccess_token--- 64_in-fCt47Y1_dB2UGw2XWMJOkcu6HSUt2m95TrlAdc4ujpa1x3Z9Pj0Knmwgt6gX-6LOVVPycP9Z5lQYDum8IH1DKbFsjIpk1vfklRdDZrj3-oZa9LNtr5HYs0XsLPFdADAYCS [16:58:40.789][4576][HINT]:捕获日常微信服务器推送的消息Request.ContentFields.Text拿到客户openid等及其发送的xml消息,需要下面做解析等等处理...... [16:58:40.789][4576][HINT]:Xml和非XML的消息---: <Encrypt><![CDATA[Kn4jMkBu1cGBLv2LZ7H EDNbA160NaLjLA7PMXvlxotkHMmbzTBFgoOFcJLPw1hEE4UwBXo6Ks52zAaQ47JBQ7LhiinKKb5Ik 5O9eeQSTQCXZ1m76 f6sygGt vHjUtf /RsHF9n7FGvpKm9uORYKeyhk/I4N6Yoc1fk ac76wL9dIFXEEaLRY7LzF7P5mK71BZ0zeKTHZ19v3Hd5 DqEITe2sDqU Be2wQ/DWamyOWtosN60FKcWKr4ztJm rerLih7yup0BapW/N9SwO7yd/UUPDinqHEZHOh0BZkdY6S/M7OaDGq26 z4XvdsV0JrqhD3dolPaJtLCJmYcxz96cxAJD9EtqrCrCg9pN6dvJolaEOi/nrKLVHwi1LwJUo2Gmfl/kHfBBBnCmzCV5qPP3ff2GCaxi5mnD0ct7RHVICp3deDCHt TDL91m9O XtrHxP0/X2BD8zcHZTeZIahw==]]></Encrypt> <ToUserName><![CDATA[gh_ef269fGW0870]]></ToUserName> </xml> <xml> encrypt_type=aes msg_signature=efce89b1df14ab776f65814e598f00f9f8224a13 nonce=359888066 openid=oliZuuF1RFZ-5JS0lI87KjJEBclQ signature=675b9558765630124fcc9acec404156a96624ee0 timestamp=1672649920 [16:58:40.789][4576][HINT]: Request.RawHeaders字段的所有键值对---: Pragma:no-cache Content-Length:578 Content-Type:text/xml Accept:*/* Host:www.cpuofbs.com User-Agent:Mozilla/4.0 解密流信息: InputStream.Size能被明文块128bit整除但不能被16整除---: 343 需要解密的原始字符串aEncodingAESKeyBts的DecodeBase64字节数组长度---: 32 SizeOf(TAESBuffer)=16---: 16 解密后内存流的字节数组的长度Length(P^)---: 32768 解密后内存流的字节数---: 336 iLen1---: 2082045282 iDecodeDataLen---: 32768 改原始大端网络序位小端主机序---数据验证---: 2082045282 四、截图 [图片] 下载C#演示demo的用其自带的参数能编译运行通过:[图片] 但改为我接收到的参数及配置参数,就连签名都通不过了: [图片] 五、联系方式:13086652206; QQ: 584798030 跪求,感谢!
2023-02-17 - 微信公众号 消息加解密说明 使用官方sdk报错?
String decrypt(String text) { byte[] original; try { // 设置解密模式为AES的CBC模式 Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding"); SecretKeySpec key_spec = new SecretKeySpec(aesKey, "AES"); IvParameterSpec iv = new IvParameterSpec(Arrays.copyOfRange(aesKey, 0, 16)); cipher.init(Cipher.DECRYPT_MODE, key_spec, iv); // 使用BASE64对密文进行解码 byte[] encrypted = Base64.decodeBase64(text); // 解密 original = cipher.doFinal(encrypted); } catch (Exception e) { e.printStackTrace(); throw new AesException(AesException.DecryptAESError); } String xmlContent, from_id; try { // 去除补位字符 byte[] bytes = PKCS7Encoder.decode(original); // 分离16位随机字符串,网络字节序和AppId byte[] networkOrder = Arrays.copyOfRange(bytes, 16, 20); int xmlLength = recoverNetworkBytesOrder(networkOrder); System.out.println("xmlLength = " + xmlLength); xmlContent = new String(Arrays.copyOfRange(bytes, 20, 20 + xmlLength), CHARSET); from_id = new String(Arrays.copyOfRange(bytes, 20 + xmlLength, bytes.length), CHARSET); } catch (Exception e) { e.printStackTrace(); throw new AesException(AesException.IllegalBuffer); } // appid不相同的情况 if (StringUtils.isBlank(appid) && !from_id.equals(receiveid)) { throw new AesException(AesException.ValidateAppidError); } return xmlContent; } 说明:企业微信消息回调解密正常,xmlLength 二三百;公众号消息解密时,xmlLength 是一个正负十位整数。创建URL时,企业微信需要解密echostr并返回解密后的字符串,而微信公众号直接返回无需解密,是否不是一个解密体系?为什么企业微信公众平台——公众号的上文档中的解密SDK,企业微信消息可以使用,公众号却使用不了,企业项目比较急!急需要解决! 日志: 2022-03-15 11:07:56.762 INFO 11212 --- [nio-8001-exec-1] c.g.wx.cp.controller.WXKeFuController : 接收到回调:keFuId 1001, msg_signature e6e1869e1f94cf73f140ba0c96719956eddaf762, timestamp 1647313676, nonce 699393265 sPostData = <xml> <ToUserName><![CDATA[gh_251e2d32914a]]></ToUserName> <Encrypt><![CDATA[DF8rpixK6xQaLGPCM2QECCmQ1aNVCeDDr4ByF1r4ZoINJWpYwtBp8KMHCplPFTvf3Cv/wKjsCEDUxoZQpQyntIZIExeEr7glp4N+4+v+wCkWd0Kodm2cBkXPV6wXwW8aaiwWAIkqPKMU+ki5u+xqySVHAwhUg4KnQOw5XGhbrGC5JDCCPd6XtHT48aQ0xFdkzHoeVgyDDnqp4e4d4zPDVx6UIyTOh3tXd6NvAHIOEG1Gn2g8trZvrs88bBCXjtS2tY/1+ETGTZI7Bj+iu2m/l/eGyvQmEMAJlV6D2GZL/uPFXvrzdm2ThSZfz5epPcjWu6NbxyyFrT0UKMHkEmNccWxvGiasLG7/T6gGiqJzyhQN48NcN33Q2wp9q6WUARkUacC3sFNwI1dPQsaXjmmXgO/hDJrJVotkSv1D5sP+J0c=]]></Encrypt> </xml> encrypt = DF8rpixK6xQaLGPCM2QECCmQ1aNVCeDDr4ByF1r4ZoINJWpYwtBp8KMHCplPFTvf3Cv/wKjsCEDUxoZQpQyntIZIExeEr7glp4N+4+v+wCkWd0Kodm2cBkXPV6wXwW8aaiwWAIkqPKMU+ki5u+xqySVHAwhUg4KnQOw5XGhbrGC5JDCCPd6XtHT48aQ0xFdkzHoeVgyDDnqp4e4d4zPDVx6UIyTOh3tXd6NvAHIOEG1Gn2g8trZvrs88bBCXjtS2tY/1+ETGTZI7Bj+iu2m/l/eGyvQmEMAJlV6D2GZL/uPFXvrzdm2ThSZfz5epPcjWu6NbxyyFrT0UKMHkEmNccWxvGiasLG7/T6gGiqJzyhQN48NcN33Q2wp9q6WUARkUacC3sFNwI1dPQsaXjmmXgO/hDJrJVotkSv1D5sP+J0c= appid = wxde9c540c3328dbcc 第三方收到URL中的签名:e6e1869e1f94cf73f140ba0c96719956eddaf762 第三方校验签名:e6e1869e1f94cf73f140ba0c96719956eddaf762 xmlLength = -566866243 java.lang.IllegalArgumentException: 20 > -566866223 at java.util.Arrays.copyOfRange(Arrays.java:3519) at com.gyhn.wx.cp.model.qywx.WXBizMsgCrypt.decrypt(WXBizMsgCrypt.java:281) at com.gyhn.wx.cp.model.qywx.WXBizMsgCrypt.decryptMsg(WXBizMsgCrypt.java:365) ........................... 2022-03-15 11:07:56.799 ERROR 11212 --- [nio-8001-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is com.gyhn.wx.cp.model.AesException: 解密后得到的buffer非法] with root cause com.gyhn.wx.cp.model.AesException: 解密后得到的buffer非法 at com.gyhn.wx.cp.model.qywx.WXBizMsgCrypt.decrypt(WXBizMsgCrypt.java:286) ~[classes/:na] at com.gyhn.wx.cp.model.qywx.WXBizMsgCrypt.decryptMsg(WXBizMsgCrypt.java:365) ~[classes/:na] ........................... 出错代码 int xmlLength = recoverNetworkBytesOrder(networkOrder); xmlContent = new String(Arrays.copyOfRange(bytes, 20, 20 + xmlLength), CHARSET);
2022-03-15