生成小程序二維碼傳參scene的問題

                                               生成小程序二維碼傳參scene的問題

 

一、報錯提示
    '{"errcode":40169,"errmsg":"invalid length for scene, or the data is not json string hint: [MHecNHnre-dcD9Wa]"}'
    原因:參數 scene 超過了32位

二、官方文檔,如圖


三、解決方法(有些方法不治本)
(1)、請求接口方式
    把scene數據md5加密;
    後端  redis:key-value(md5加密後的scene:scene原文) 或 數據表 存scene的數據;
    小程序獲取到scene之後,請求後端接口根據md5後的值獲取加密前的數據。

(2)、縮短參數名
    比如:

$param['user_id'] = 999;
$param['shopper'] = 3;
$data['scene'] = http_build_query($param);

    縮短爲:

$param['u'] = 999;
$param['s'] = 3;
$data['scene'] = http_build_query($param);

(3)、英文字符隔開參數,和前端約定每個位置的值代表的含義(推薦這個)
    比如:

$param['user_id'] = 999;
$param['shopper'] = 3;
$data['scene'] = http_build_query($param);

    可以用英文字符 ,;_等隔開,如下

$userId = 999;
$shopper = 3;
$data['scene'] =  $userId . ';' . $shopper;

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章