通过公众号的原始ID获取二维码

https://open.weixin.qq.com/qr/code?username=原始ID

比如,复旦大学的原始ID是gh_e9df5b749989,那么其公众号的二维码就是:


https://open.weixin.qq.com/qr/code?username=gh_e9df5b749989

转载于:https://www.cnblogs.com/charescape/p/11277988.html

### 微信小程序授权并生成二维码 #### 获取访问令牌 为了调用微信接口来获取二维码,首先需要获得`access_token`。这通常通过应用的AppID和AppSecret从微信服务器获取。 ```python import requests def get_access_token(appid, secret): url = f"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={appid}&secret={secret}" response = requests.get(url).json() access_token = response['access_token'] return access_token ``` 此函数用于向微信API发送HTTP GET请求以换取`access_token`[^3]。 #### 创建二维码Ticket 一旦拥有了有效的`access_token`,就可以创建一个临时或永久性的二维码ticket。这里展示的是如何创建一个带有场景值(scene_id)的临时二维码: ```python def create_qrcode_ticket(access_token, scene_id): url = f"https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token={access_token}" data = {"scene": str(scene_id)} headers = {'Content-Type': 'application/json'} response = requests.post(url, json=data, headers=headers).json() qrcode_ticket = response["qrcode_ticket"] return qrcode_ticket ``` 这段代码构建了一个POST请求到指定URL,并传递了必要的JSON数据结构以及头部信息。注意这里的路径是针对小程序码(WXACode),而非传统的公众号二维码。 #### 下载二维码图片 最后一步是从返回的数据中提取出二维码图像文件。由于响应体可能是一个Base64编码后的字符串形式,因此还需要对其进行解码处理才能保存为实际的图片文件。 ```python from base64 import b64decode def download_qrcode(qrcode_buffer_base64, filename="qrcode.png"): with open(filename, "wb") as file: decoded_data = b64decode(qrcode_buffer_base64) file.write(decoded_data) ``` 上述方法接收到了来自前两个步骤的结果——即经过Base64编码过的二进制流,并将其转换回原始字节序列写入磁盘上的PNG文件中。 #### 客户端本地绘制二维码 除了依赖于远程服务端提供的二维码外,在某些情况下也可以考虑直接在前端使用Canvas API完成简单的二维码渲染工作。这种方式可以减少网络延迟带来的影响,提高加载速度。 ```javascript const ctx = canvas.getContext('2d'); // 假设qrDataUrl 是由第三方库生成的有效QRCode Data URL ctx.drawImage(new Image(), 0, 0); image.onload = () => { image.src = qrDataUrl; }; ``` 以上JavaScript片段展示了怎样利用HTML5 Canvas元素配合Image对象来显示一张基于data URI方案传输过来的小程序码图形资源[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值