1. 程式人生 > 其它 >解決微信生成小程式二維碼scene引數過長的方法

解決微信生成小程式二維碼scene引數過長的方法

小程式二維碼scene引數限定長度為32位字元,但是實際開發中可能有很多的引數需要傳遞

對於目前32位長度的限制

方案一、中間頁 + 短引數

新建一箇中間空白跳轉頁面,每次生成的二維碼都是這個頁面,

訪問這個頁面時,將引數中的scene的值,去指定介面獲取完整的 帶引數的 連結,

然後跳轉過去。 適用於一個解決方案中有很多個頁面需要生成二維碼來跳轉;

方案二、短引數(推薦


二維碼指向到特定頁面,scene值為短引數,進入頁面時先判斷是否有scene的值,如果有再請求介面獲取完整的引數(json格式),

然後再使用這個引數去調真正的業務介面;

方案三、md5加密

1、後臺在生成小程式二維碼的地方,使用md5加密生成一個小於等於 32 位的 token ,並將scene 原有的值和token在資料庫中,或者redis中儲存起來, 然後把這個 token 填入生成小程式碼介面的 scene 引數中。

2、小程式在掃描二維碼之後,將得到的 scene 中的token提交給後端,後端根據token,新增一個介面 用於解析小程式碼獲取的 token ,返回給真實的scene引數 返回給前端。

php程式碼

//入庫,再返回
$scene='87309*2*hq_activity*62*live_player*57';
$scene_token = substr(md5($scene), 8, 16);
$scene_data = array(
 'scene' => $scene,
 'token' => $scene_token
);

後臺mysql資料庫中存入真實的引數 然後在進行比對

在這裡插入圖片描述