小程序二維碼scene參數限定長度為32位字符,但是實際開發(fā)中可能有很多的參數需要傳遞
對于目前32位長度的限制
方案一、中間頁 + 短參數
新建一個中間空白跳轉頁面,每次生成的二維碼都是這個頁面,
訪問這個頁面時,將參數中的scene的值,去指定接口獲取完整的 帶參數的 鏈接,
然后跳轉過去。 適用于一個解決方案中有很多個頁面需要生成二維碼來跳轉;
方案二、短參數(推薦)
二維碼指向到特定頁面,scene值為短參數,進入頁面時先判斷是否有scene的值,如果有再請求接口獲取完整的參數(json格式),
然后再使用這個參數去調真正的業(yè)務接口;
方案三、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數據庫中存入真實的參數 然后在進行比對
|