扫二维码进入小程序不同页面--Python生成带参小程序码

微信小程序码是小程序推广的重要渠道之一
目前微信官方推出的小程序码分为常见的正方形QR码和新推出的小程序码
下面将介绍如何向微信API发起请求获取小程序码

准备工作:

1、首先需要确保在小程序的app.json中,已经注册了相应的页面
2、对应的页面应该有已经实现的对应页面,且小程序已经有已发布的线上版本,否则扫码报错
3、去微信小程序后台获取 AppSecret 以及 AppID (具体获取办法另行百度)

代码实现:

  1. 利用AppID和AppSecret,获取AccessToken(使用GET方法)
"""
请求地址:(将appid后的xxx和secret后的xxx替换为你准备好的值)
https://api.weixin.qq.com/cgi-bin/token?appid=xxx&secret=xxx&grant_type=client_credential

返回结果为json格式的 access_token和expires_in,获取到access_token即可
"""
  1. 利用AccessToken获取小程序码(下例请求地址的ACCESS_TOKEN替换为你获取的AccessToken)
"""
微信提供了两个POST获取小程序的接口,可以根据业务需求,选择任意接口

获取经典QR码:
https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=ACCESS_TOKEN

获取花瓣式小程序码:
https://api.weixin.qq.com/wxa/getwxacode?access_token=ACCESS_TOKEN
"""

PS: POST请求体中,需要包含小程序的页面地址,携带的参数

下面利用Python代码举例:

from PIL import Image
from io import BytesIO
import requests
import json

url = "https://api.weixin.qq.com/cgi-bin/token?appid={}&secret={}&grant_type=client_credential"
res = requests.get(url=url.format('填写你的AppID', '填写你的AppSecret')).text
# datas 为 POST请求的页面以及携带的参数
datas = {"path": "pages/index/index?teacher=mk",}
QRcode = requests.post(
    url="https://api.weixin.qq.com/wxa/getwxacode?access_token=" + json.loads(res)['access_token'],
    data=json.dumps(datas))
img = Image.open(BytesIO(QRcode.content))
img.save('我的小程序码.png')

PS:
除了我们文中举例的接口,微信还开放了另一个与二维码相关的接口,就是「扫普通二维码进入小程序」

开发者自己就可以按照一定规律,自行批量生成QR码。但它需要开发者有已经备案的域名,且个人主体小程序无法使用这个接口。

微信将通过「获取小程序二维码」接口获取的二维码的数量限定在十万个,并且似乎并没有「注销以前生成的二维码」的功能和机制。

所以,如果你有非常大量的小程序二维码生成需求,建议使用普通链接二维码的方式生成QR码。如果需要使用微信提供的二维码生成接口,也要注意不要超过限额。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
生成带动态参数的微信小程序二维码,可以使用微信提供的接口 `wxacode.getUnlimited`,该接口可以生成不限次数、永久有效的小程序,并且可以携带动态参数。以下是一些基本步骤: 1.在微信公众平台或开放平台创建一个小程序,并获取小程序的 appid 和 secret。 2.使用 appid 和 secret 获取 access_token,可以通过调用微信接口实现。 3.使用 access_token 和其他参数调用生成小程序接口,例如以下 URL: https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN 其中 ACCESS_TOKEN 是第二步获取的 access_token。 4.在调用生成小程序接口时,需要传递一些参数,例如 `scene`、`page`、`width`、`auto_color` 等,具体参数的含义可以参考微信开发文档。 `scene` 参数是动态参数,可以根据业务需求生成。例如,可以将用户的 ID、订单号、活动 ID 等作为 `scene` 参数。生成小程序时,微信会将 `scene` 参数的值写入到小程序的 `onLoad` 函数中,开发者可以在 `onLoad` 函数中获取该参数并进行相应的处理。 5.将接口返回的二进制数据保存成图片,可以使用 Python 的 requests 库实现。 下面是一个示例代: ```python import requests def generate_wxa_code_with_scene(appid, secret, scene, page, width=430): access_token = get_access_token(appid, secret) url = f'https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token={access_token}' data = { 'scene': scene, 'page': page, 'width': width, 'auto_color': False } response = requests.post(url, json=data) if response.status_code == 200: with open('wxa_code.jpg', 'wb') as f: f.write(response.content) ``` 其中,`get_access_token` 函数用于获取 access_token,可以参考微信开发文档实现。`generate_wxa_code_with_scene` 函数用于调用生成小程序接口,并将结果保存成图片。调用该函数时,需要传递 `appid`、`secret`、`scene`、`page`、`width` 等参数,其中 `scene` 参数是动态参数,可以根据业务需求生成
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PENG越

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值