參考文章:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/qr-code/getWXACodeUnlimit.html
有三種方法
接口 A(getWXACode): 適用於需要的碼數量較少的業務場景
生成小程序碼,可接受 path 參數較長,生成個數受限。
接口 B(getWXACodeUnlimit):適用於需要的碼數量極多的業務場景
生成小程序碼,可接受頁面參數較短,生成個數不受限。
接口 C(createWXAQRCode):適用於需要的碼數量較少的業務場景
生成二維碼,可接受 path 參數較長,生成個數受限。
示例用的第二種方法
一:接口基礎知識
請求地址:
POST https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN
主要參數(只選取了部分,其他參數見小程序幫助文檔)
string access_token 接口調用憑證 string scene 最大32個可見字符,只支持數字,大小寫英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~,
其它字符請自行編碼為合法字符(因不支持%,中文無法使用 urlencode 處理,請使用其他編碼方式) string page 必須是已經發布的小程序存在的頁面(否則報錯),例如 pages/index/index, 根路徑前不要填加 /,不能攜帶參數(參數請放在scene字段里),
如果不填寫這個字段,默認跳主頁面 number width 二維碼的寬度,默認為 430px,最小 280px,最大 1280px
返回值
Object 返回的 JSON 數據包
errcode number 錯誤碼
errmsg string 錯誤信息
返回值說明
如果調用成功,會直接返回圖片二進制內容,如果請求失敗,會返回 JSON 格式的數據。
注意
1)POST 參數需要轉成 JSON 字符串,不支持 form 表單提交。
2)接口只能生成已發布的小程序的二維碼
3)調用分鍾頻率受限(5000次/分鍾),如需大量小程序碼,建議預生成
獲取 scene 值
scene 字段的值會作為 query 參數傳遞給小程序/小游戲。用戶掃描該碼進入小程序/小游戲后,開發者可以獲取到二維碼中的 scene 值,再做處理邏輯。
調試階段可以使用開發工具的條件編譯自定義參數 scene=xxxx 進行模擬,開發工具模擬時的 scene 的參數值需要進行 encodeURIComponent
小程序 調用
Page({ onLoad (query) { // scene 需要使用 decodeURIComponent 才能獲取到生成二維碼時傳入的 scene const scene = decodeURIComponent(query.scene) } })
工具測試