1. 程式人生 > >微信小程式獲取二維碼報錯:{"errcode":47001,"errmsg":"data format error hint:"}

微信小程式獲取二維碼報錯:{"errcode":47001,"errmsg":"data format error hint:"}

總結:坑坑坑坑坑坑坑坑坑

1、微信小程式獲取二維碼介面有三個

如圖,第一個是生成的普通二維碼,第二個和第三個是小程式碼,詳情請看連結

但是這3個API太難用,引數和返回值說明都是一筆帶過,不夠詳細,還容易誤導人思維。

能看到這個錯誤,證明你有自己的一套呼叫介面的方法,就不細說acctoken的獲取問題了,

下面就來說說這個47001問題。

2、首先測試了第一個

createWXAQRCode介面,後端是nodejs,使用的request模組

介面url:

https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=ACCESS_TOKEN

post提交,這個沒什麼問題一下就成功了!

引數截圖

這是獲取的二維碼,是智慧聊天小程式頁面,使用websocket,剛開始對接的是騰訊ai機器人,用了一段時間

發現騰訊的ai機器人太傻,後來改成圖靈機器人了。

3、然後測試第二個介面

介面url:

https://api.weixin.qq.com/wxa/getwxacode?access_token=ACCESS_TOKEN

掉坑裡半天起不來。。

引數和上一個介面類似,多了幾個欄位。

結果返回47001這個錯誤

一臉懵逼,看這個字面意思是資料格式化錯誤,但是JSON.stringify後的資料肯定不會存在JSON格式錯誤問題,

各種除錯了半天,還是沒解決,又試了第三個介面,

依然是47001,折騰了好久還是沒解決,後來去社群翻了好多類似的問題,才發現後面2個

介面post的資料居然不能傳access_token這個引數,三個介面API文件極其類似,這就是導致本文

出現問題的原因。被誤導了。。最終去掉access_token引數就好了。還要注意後面2個介面引數之一

page不是path

最終傳參截圖:

下面是最後獲取的微信小程式碼,同時也希望遇到同樣問題的朋友能看到這裡。