个人博客迁移至独立博客:https://blog.plcent.com/,欢迎大家访问
微信中支持生成临时二维码和永久二维码,这两者之间也有略微的区别,至于如何生成,怎么写,这个不在今天的讨论范围内,因为官方文档说的很明白。
今天要说的,是在生成带参数的二维码时,临时二维码和永久二维码之间场景值ID的差别
临时二维码:
post方式提交的json数据中包含scene参数,示例:
{"expire_seconds": 604800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": 123}}}
在临时二维码中只支持scene_id参数,scene_id参数支持传送一个整型的数字,比如:123123123123,最大长度为32位的非零整数
为什么是非零呢?
当临时生成零时二维码时,如果场景值ID是整数,可以正常获取,哪怕你用字符串形式传递,例如:
// 以下的方式都可以 // scene_id是数字 {"expire_seconds": 604800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": 123}}} // scene_id是字符串 {"expire_seconds": 604800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": "123"}}}
但是:如果你传递的是字符串(无法转换成数字的字符串),场景值将会被替换成0,所有这就是为什么要场景值是非零的原因:
{"expire_seconds": 604800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": "我是会被转换成0的场景值ID"}}}
永久二维码:
永久二维码不存在这个问题,因为支持字符串