天天看點

uniapp生成二維碼及掃碼統計會員功能

作者:晖晖yyds
uniapp生成二維碼及掃碼統計會員功能

1、問題描述

需要在微信小程式中,使用者可分享帶個人資訊的小程式碼,其它使用者可通過分享的二維碼,掃碼進入頁面進行注冊,并統計分享人積分增加的功能。

2、解決方案

2.1、小程式開發配置

首先需在小程式的管理頁面進行配置。需要在 開發 ---> 開發管理 下的開發設定 中,一直下滑直到出現 掃普通連結二維碼打開小程式 進行設定,如下圖如示:

uniapp生成二維碼及掃碼統計會員功能

這裡要注意的是校驗檔案,需要把下載下傳的檢驗檔案放在伺服器上。

2.2、官方文檔解析

這裡主要是兩個部分,一是生成小程式碼,二是解析小程式碼。

小程式碼生成部分可以部分,可以是前端來發起請求,在後端調用微信端相關接口來生成小程式碼圖檔。

解析小程式碼,是掃碼進入配置的頁面,在onload方法裡進行解析。

具體看如下官方文檔截圖:

uniapp生成二維碼及掃碼統計會員功能

3、項目實戰

3.1、小程式碼的前端生成

通過按鈕組裝資料,資料是業務所需要的,場景包括使用者的openID,後端通過getUnlimitedByBase64來發起請求。

前端代碼:

uniapp生成二維碼及掃碼統計會員功能

3.2、小程式碼的服務端生成

後端代碼擷取token,再調用getUnlimitedQRCode方法生成小程式碼。

後端代碼:

uniapp生成二維碼及掃碼統計會員功能

3.3、小程式端解析

scene 字段的值會作為 query 參數傳遞給小程式。使用者掃描該碼進入小程式後,開發者可以擷取到二維碼中的 scene 值,再做處理邏輯,比如積分增加等。

onLoad(e) {
   // scene 需要使用 decodeURIComponent 才能擷取到生成二維碼時傳入的 scene
   const scene = decodeURIComponent(e.scene);
   console.log('scene', scene);
   uni.setStorageSync('scene', scene);
}