開發(fā)小程序也有一年多了,根據(jù)常見的情況,生成二維碼還是經常用到。
比如掃碼點餐小程序,需要為每一張桌子生成一個專屬二維碼用于區(qū)分不同桌號。
小程序不能直接分享到朋友圈或者通過其他非微信傳播,但是可以生成一個二維碼圖片,用圖片發(fā)送從而分享。如下圖
在小程序里生成分享圖片目前有三種方式。
第一種,用小程序的畫布canvas生成圖片,然后直接保存畫布畫的圖片到系統(tǒng)相冊,根據(jù)筆者親測,不太完美。
第二種,用PHP圖片處理類生成圖片,然后在小程序前端顯示。
第三張,生成一個專屬分享頁面,引導用戶截屏分享。
但不管是哪一種方式,都需要用到微信的生成二維碼或者小程序碼接口。
微信提供了三種方式生成,
createWXAQRCode 生成數(shù)量限制為10萬的小程序二維碼。
getWXACode生成數(shù)量限制為10萬的小程序碼。
getWXACodeUnlimit生成無數(shù)量限制的小程序碼。
大家可以根據(jù)場景采用不同的方式。注意不同方式參數(shù)不一樣,getWXACodeUnlimit方法的參數(shù)需要通過scene傳遞。
分享如下PHP生成無限制數(shù)量小程序碼的代碼
$AccessTokenModel = new \Api\Model\AccessTokenModel();
$access_token = $AccessTokenModel->get_token();
$url = 'https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token='.$access_token;
$data['scene'] = 'id='.$goods_id.'&i='.$item_id.'&m='.$member_id;
$data['page'] = 'pages/detail/index';
$data['width'] = '280px';
$data_json = json_encode($data);
$result = sendCmd($url,$data_json);
$code_pic = 'Public/code/code-'.$id.'-'.$item_id.'.jpeg';
if(file_put_contents($code_pic,$result) > 0) {
//生成成功處理
} else {
//生成失敗處理
}
比如掃碼點餐小程序,需要為每一張桌子生成一個專屬二維碼用于區(qū)分不同桌號。
小程序不能直接分享到朋友圈或者通過其他非微信傳播,但是可以生成一個二維碼圖片,用圖片發(fā)送從而分享。如下圖
在小程序里生成分享圖片目前有三種方式。
第一種,用小程序的畫布canvas生成圖片,然后直接保存畫布畫的圖片到系統(tǒng)相冊,根據(jù)筆者親測,不太完美。
第二種,用PHP圖片處理類生成圖片,然后在小程序前端顯示。
第三張,生成一個專屬分享頁面,引導用戶截屏分享。
但不管是哪一種方式,都需要用到微信的生成二維碼或者小程序碼接口。
微信提供了三種方式生成,
createWXAQRCode 生成數(shù)量限制為10萬的小程序二維碼。
getWXACode生成數(shù)量限制為10萬的小程序碼。
getWXACodeUnlimit生成無數(shù)量限制的小程序碼。
大家可以根據(jù)場景采用不同的方式。注意不同方式參數(shù)不一樣,getWXACodeUnlimit方法的參數(shù)需要通過scene傳遞。
分享如下PHP生成無限制數(shù)量小程序碼的代碼
$AccessTokenModel = new \Api\Model\AccessTokenModel();
$access_token = $AccessTokenModel->get_token();
$url = 'https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token='.$access_token;
$data['scene'] = 'id='.$goods_id.'&i='.$item_id.'&m='.$member_id;
$data['page'] = 'pages/detail/index';
$data['width'] = '280px';
$data_json = json_encode($data);
$result = sendCmd($url,$data_json);
$code_pic = 'Public/code/code-'.$id.'-'.$item_id.'.jpeg';
if(file_put_contents($code_pic,$result) > 0) {
//生成成功處理
} else {
//生成失敗處理
}