微信開發-二維碼-生成二維碼容易忽略的錯誤

 

我的博客遷移至獨立博客:https://blog.plcent.com/,歡迎你們訪問json

微信中支持生成臨時二維碼和永久二維碼,這二者之間也有略微的區別,至於如何生成,怎麼寫,這個不在今天的討論範圍內,由於官方文檔說的很明白。
今天要說的,是在生成帶參數的二維碼時,臨時二維碼和永久二維碼之間場景值ID的差異微信

臨時二維碼:post

post方式提交的json數據中包含scene參數,示例:spa

{"expire_seconds": 604800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": 123}}}code

在臨時二維碼中只支持scene_id參數,scene_id參數支持傳送一個整型的數字,好比:123123123123,最大長度爲32位的非零整數blog

爲何是非零呢?文檔

當臨時生成零時二維碼時,若是場景值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,全部這就是爲何要場景值是非零的緣由:get

{"expire_seconds": 604800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": "我是會被轉換成0的場景值ID"}}}

永久二維碼:博客

永久二維碼不存在這個問題,由於支持字符串

相關文章
相關標籤/搜索