1、問題描述
需要在微信小程式中,使用者可分享帶個人資訊的小程式碼,其它使用者可通過分享的二維碼,掃碼進入頁面進行注冊,并統計分享人積分增加的功能。
2、解決方案
2.1、小程式開發配置
首先需在小程式的管理頁面進行配置。需要在 開發 ---> 開發管理 下的開發設定 中,一直下滑直到出現 掃普通連結二維碼打開小程式 進行設定,如下圖如示:
這裡要注意的是校驗檔案,需要把下載下傳的檢驗檔案放在伺服器上。
2.2、官方文檔解析
這裡主要是兩個部分,一是生成小程式碼,二是解析小程式碼。
小程式碼生成部分可以部分,可以是前端來發起請求,在後端調用微信端相關接口來生成小程式碼圖檔。
解析小程式碼,是掃碼進入配置的頁面,在onload方法裡進行解析。
具體看如下官方文檔截圖:
3、項目實戰
3.1、小程式碼的前端生成
通過按鈕組裝資料,資料是業務所需要的,場景包括使用者的openID,後端通過getUnlimitedByBase64來發起請求。
前端代碼:
3.2、小程式碼的服務端生成
後端代碼擷取token,再調用getUnlimitedQRCode方法生成小程式碼。
後端代碼:
3.3、小程式端解析
scene 字段的值會作為 query 參數傳遞給小程式。使用者掃描該碼進入小程式後,開發者可以擷取到二維碼中的 scene 值,再做處理邏輯,比如積分增加等。
onLoad(e) {
// scene 需要使用 decodeURIComponent 才能擷取到生成二維碼時傳入的 scene
const scene = decodeURIComponent(e.scene);
console.log('scene', scene);
uni.setStorageSync('scene', scene);
}