微信云托管云调用使用指南

微信云托管云调用使用指南
一、云调用是什么?

云调用是具有「免鉴权调用微信开放服务接口」特性的能力,是云开发/云托管中微信生态的一部分。

在云调用出现之前,微信开放服务接口的正常调用,需要开发者使用密钥信息获取access_token,并自己维护token的有效期和安全。而获取access_token,涉及到密钥交互请求,容易暴漏密钥导致被盗用,对开发者和微信服务都有消极的影响。

云调用主要打造免鉴权,也就是免密钥,全程不暴漏任何信息,开发者无需维护access_token,那对于接口请求的合法性判定,完全由与微信同链路的云资源(云开发、云托管)参与实施。
二、云开发云调用和云托管云调用

云开发云调用主要在「云函数」中实现,因为云开发的定位,「云函数」的开发语言限定 nodejs, 微信也推出专门的 wx-server-sdk,所以云调用的也顺理成章的放在 sdk 中,开发者只需要如下调用就可以访问开放服务接口:

const cloud = require(‘wx-server-sdk’)
cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV })
exports.main = async (event, context) => {
return await cloud.openapi.security.msgSecCheck-v1({ content:“安全检查测试文本” })
}

但云托管的开发语言和框架都不限定,微信也没有为所有语言都推出SDK,所以云开发的云调用实现方法在云托管无法走通。所以在云托管中,微信后台周期性的将开放接口所必须要的 access_token,推送到服务的容器实例中。在使用时只需要从容器本地读取令牌,就可以包装请求去调用了:

const fs = require(‘fs’)
const request = require(‘request’)
const token = fs.readFileSync(‘/.tencentcloudbase/wx/cloudbase_access_token’, ‘utf-8’)
return new Promise((resolve, reject) => {
request({
url: https://api.weixin.qq.com/wxa/msg_sec_check?cloudbase_access_token=${token},
body: JSON.stringify({ content:“安全检查测试文本” }),
},async function (error, response) {
resolve(JSON.parse(response.body))
})
})

access_token 推送的时间间隔为 10 分钟,令牌的有效期为 30 分钟; 挂载路径为:/.tencentcloudbase/wx/cloudbase_access_token; 在同一个环境中所有的容器实例,推送的 access_token 相同;
三、云托管推送的 cloudbase_access_token 和正常的 access_token

微信后台推送到服务容器实例中,的 cloudbase_access_token,和使用 secret 置换的 access_token 并不是同一体系。

主要有如下两个区别:

cloudbase_access_token 应用于某个接口之前,需要在云托管平台配置接口白名单;而 access_token 则不需要,可应用于任何接口。
cloudbase_access_token 隶属于一个云托管环境,只能在隶属环境中使用(推荐,虽然现在也能在其他地方用),配置也以环境为维度,不同环境有不同的 token 和不同的配置。access_token 没有环境限制,拿到即用,开放性受波及度都很大。

四、微信云托管-开放接口服务

「开放接口服务」是微信云托管推出的云调用彻底免鉴权解决方案服务。

「开放接口服务」以旁加载形式部署到服务中,占用资源和内存极小,与业务服务共用资源。开放接口服务中转 api.weixin.qq.com 的请求,并自动处理 token 和鉴权问题。

开启「开放接口服务」后,使用形式与传统方式相同,只是不需携带access_token,上面的例子就变成如下:

const fs = require(‘fs’)
const request = require(‘request’)
return new Promise((resolve, reject) => {
request({
url: https://api.weixin.qq.com/wxa/msg_sec_check,
body: JSON.stringify({ content:“安全检查测试文本” }),
},async function (error, response) {
resolve(JSON.parse(response.body))
})
})

「开放接口服务」还集成了「微信支付」「对象存储」等接口集合,代替了业务侧必须的鉴权步骤。以下是对比图:
在这里插入图片描述

使用「开放接口服务」需要注意以下几个事项:

开启「开放接口服务」,请求中如果仍然附带access_token,不会覆盖掉,这类操作通常用于环境共享场景下。
使用 secret 置换的 access_token,经过开放服务不需要配置白名单,原因如第1条,不覆盖。但如果使用「开放接口服务」鉴权,则必须使用白名单,因为其仍然使用 cloudbase_access_token
开放接口服务的最大超时时间为 30S
开放接口服务请求包和回包最大 32 MiB
开放接口服务的请求头会有一些差异,部分不返回,新增seqid便于排查问题。
通过请求头返回 x-openapi-seqid 和解析地址为 Docker 内部地址判断是否使用了开放接口服务。
为支持HTTPS协议,开放接口服务开启时,业务容器启动过程会信任证书,若容器没有相关程序,则需要打包包含
部分自带根证书的运行时,需要手动设置证书,证书目录为: /app/cert/certificate.crt
开放接口服务集成的其他能力(如微信支付、对象存储),按照云托管提供的文档使用

五、旧版接口服务如何迁移新版

如果你正在使用旧版的接口服务,可以参考如下步骤切换新版:

在云托管控制台中,「服务管理-云调用」点击「升级」
更改服务镜像,将项目代码原有云调用的内网域名,改为新的云调用域名 api.weixin.qq.com
新建更改的服务镜像版本,发布为新版

服务端接口参考如下新旧案例:

// 原有调用形式
fetch(“openapi.internal-run.tcloudbase.com/wxa/getwxadevinfo”, /* … */)

// 新版调用形式
fetch(“api.weixin.qq.com/wxa/getwxadevinfo”, /* … */)

微信支付参考如下新旧案例:

// 原有调用形式
fetch(“openapi.internal-run.tcloudbase.com/pay”, /* … */)

// 新版调用形式
fetch(“api.weixin.qq.com/_/pay”, /* … */)

注意:新版的「开放接口服务」的部署方式是旁加载到业务服务中,不是单独一个服务,所以新版的服务不再支持公网访问,如果要实现,可以在业务服务中自己实现开放逻辑。
六、本地调试中如何使用「开放接口服务」

本地调试的操作步骤学习可以先参考视频教程

更新vscode插件到最新版,启动自己的业务服务,在业务服务运行过程中,启动vpc中的 api.weixin.qq.com 服务,或者先启动api.weixin.qq.com 服务,再启动业务服务,没有先后限制。

插件将会在你的云托管环境中开启一个代理服务,用于和本地 api.weixin.qq.com 服务,同时和业务服务共享同一个网络,就实现了本地的「开放接口服务」,需要注意,本地调试中只是模拟了业务服务的所处环境,不是真实的线上部署情况。

由于技术原因,本地调试暂不支持 HTTPS 云调用,需要先暂时使用 HTTP 协议进行本地调试。
七、实践内容

官方实现的 NodeJS 云调用体验DEMO,包含线上开启/关闭「接口服务」,本地调试开启/关闭「接口服务」4种情况的适应代码,可以用于正式的业务开发和学习研究。

直播中的代码实现应该是现场直接开发,具体可以看直播回放(微信云托管从入门到精通)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/34058.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为云盘古大模型登Nature:秒级完成气象预测,速度快10000多倍

来源:机器之心 华为云盘古气象大模型突破了 AI 预报天气精度不及传统数值预报的世界性难题,该模型是首个精度超过传统数值预报方法的 AI 预测模型,对比传统方法预测速度提升 10000 倍,可秒级完成对全球气象的预测。 天气预报是科学…

中科磐云 数据包分析infiltration

任务环境说明: ●服务器场景:Server6(封闭靶机) ●服务器场景操作系统:未知 ●FTP用户名:infiltration密码:infiltration 1.登录FTP下载数据包文件infiltration.pacapng,找出恶意…

专家解惑 | 关于华为云盘古大模型,你想问的都在这里~

本文分享自华为云社区《专家解惑 | 关于华为云盘古大模型,你想问的都在这里~》,原文作者:HWCloudAI。 4月25日,华为云发布盘古系列超大规模预训练模型,包括30亿参数的全球最大视觉(CV)预训练模…

探秘华为云盘古大模型:AI for industries的身体力行

摘要:大模型是新一轮AI发展的核心,其已在推进产业智能化升级中已表现出巨大潜力,并将在未来三年里形成风起云涌之势。 本文分享自华为云社区《探秘华为云盘古大模型:AI for industries的身体力行》,作者:华…

聚观早报 |腾讯Q1营收重回两位数增长;特斯拉向印度政府提议建厂

今日要闻:腾讯Q1营收重回两位数增长;传特斯拉向印度政府提议建厂;ChatGPT创始人呼吁加强对AI监管;笑果被罚款1335万;药明康德联合创始人赵宁去世 腾讯Q1营收重回两位数增长 5 月 17 日,腾讯控股发布 2023 …

向量数据库是如何工作的?

点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~中文详细注释的开源…

“危险!立刻停下所有大型AI研究!”马斯克领衔,1000多名硅谷企业家科学家联名呼吁...

看见更大的世界 打开App APP内打开 华尔街见闻 原创1个小时前 华尔街见闻官方账号 优质财经领域创作者 关注 当全社会都在为AI的进化而欢呼雀跃,全新的、意想不到的风险可能也正在悄悄酝酿。 3月22日,生命未来研究所(Future of Life&#xf…

OpenAI将用新方法来训练模型;英伟达CEO拟本月会见腾讯、字节跳动等企业高管;摩根大通正寻求雇佣更多AI员工丨每日大事件...

‍ ‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 企业动态 176比特“祖冲之号”量子计算云平台上线 5月31日,在中科院量子信息与量子科技创新研究院的指导下,在中科院软件所和中电科十六所的技术支持下,科大国盾量子技术股份有限公司携…

OpenAI CEO 在美国国会首秀:回应对 AI 的一切质疑,主动要求接受监管!

整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 从最初只有十来个人的小团队,到如今的 300 人;从起步拿到 10 亿美元启动资金,到创造了估值约为 300 亿美元的 AI 独角兽“神话”,OpenAI 用 GPT 系列、Wh…

LaTeX常用符号及希腊字母

LaTeX常用符号及希腊字母 在LaTeX代码加载包的地方添加 \usepackage{amsmath} LaTeX符号代码效果\rightarrow{}→\leftarrow{}←\xleftarrow[下方公式]{上方公式}\xrightarrow[下方公式]{上方公式}Eg:A \xleftarrow[n]{x>0} B\emptyset∅\in∈\notin∉\subset⊂\supset⊃\…

如何最大限度地利用ChatGPT、Bard和其他聊天机器人

随着生成式人工智能的发展,面向消费者的聊天机器人能够处理不同领域的需求,并提供相应的帮助和建议,如制定商业战略、设计数学学习指南、提供薪资谈判建议,甚至撰写婚礼誓词。而且这只是一个开始。 原文链接:https://w…

你是不是想做影视剪辑奈何不会写文案?我来帮你搞定文案

影视剪辑的本质就是我们进行一系列的主题动作分解组合,完成蒙太奇形象的塑造,影视剪辑主要分为几个步骤: 第一:视频素材准备 第二:文案素材准备 第三:确定剪辑方案 第四:剪辑手段选择 第五&…

电影解说文案怎么写,电影解说文案写作技巧,影视解说新手该怎么写文案

电影解说文案既是文字表达,也是艺术表达。在现代,越来越多的影片制作者不仅要拍出精彩视觉效果的电影,还要拍出让观众深深触动的影片。因此,电影解说文案的写作要求也越来越高。那么,如何写出吸引人的电影解说文案&…

电影解说文案写作技巧

电影解说文案是指在电影放映期间,为了让观众更好地理解电影情节、人物、背景和细节,配以文字解说的一种形式。好的电影解说文案可以让观众更好地理解电影,加深观影体验。下面是一些电影解说文案写作技巧,希望能对您有所帮助。 一、…

Word 2016:您正试图运行的函数包含有宏或需要宏语言支持的内容

新建一个word文档后,发现打开时有以下提示: 需要多点几次才能消去,比较烦人 解决方案: 1、以管理员身份运行Word(在office安装目录下找WINWORD.EXE,或者在开始菜单中右键均可); 2…

word编写宏

1,首先开启宏 2,视图->查看宏 3,创建宏 AutoOpen()函数为打开word自动运行4,保存即可

三步教你Word启用所有宏

此博客为个人博客,不涉及商业用途,仅提供学习参考,内容均来自个人原创以及互联网转载和摘录。 此博客上带有原创标识的文章、图片、文件等,未经本人允许,不得用于商业用途以及传统媒体。网络媒体或个人转载请注明出处…

WORD文档中的宏代码操作(表格批量操作)

编写word宏代码步骤 点击“视图” - “宏” 。 点击“录制宏”,填写宏名称(即函数名),选择保存位置,确定后,鼠标会变成录像带,再进行需要的操作后,点击停止录制,即完成操…

微软word提示:您正试图运行的函数包含有宏或需要宏语言支持的内容

关闭Word提示:您正试图运行的函数包含有宏或需要宏语言支持的内容。而在安装此软件时,您(或您的管理员)选择了不安装宏或控件的支持功能。 解决方法 点击【开始菜单】—选择【控制面板】—找到并打开【程序和功能】(xp的是添加删除)—在里面找到安装好的…

word如何编写宏

1,首先开启宏 2,视图->查看宏 3,创建宏 AutoOpen()函数为打开word自动运行1 4,保存即可 5.然后我们把word关闭,重新打开,结果弹框: 这里注意一点: 只要打开word就会弹框&…