You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
3.5 KiB
122 lines
3.5 KiB
<?php
|
|
|
|
namespace App\Admin\Common;
|
|
|
|
use Dcat\Admin\Controllers\AdminController;
|
|
use EasyWeChat\Factory;
|
|
use Intervention\Image\ImageManager;
|
|
|
|
class StoreQRCode extends AdminController
|
|
{
|
|
protected $images;
|
|
protected $imageManager;
|
|
|
|
public function __construct()
|
|
{
|
|
$this->images = new Images();
|
|
// $this->imageManager = new ImageManager();
|
|
}
|
|
|
|
/**
|
|
* 生成小程序码 永久 还没完成
|
|
* @param $scene 参数
|
|
* @param $optional
|
|
*/
|
|
public function getUnlimited(string $scene, array $optional = [])
|
|
{
|
|
$wxCode = Factory::payment(config('wechat.mini_program.default'));
|
|
$res = $wxCode->app_code->getUnlimited($scene,$optional);
|
|
|
|
}
|
|
|
|
/**
|
|
* 生成店铺的微信小程序码
|
|
*/
|
|
public function SetStoreWeChatCode($id)
|
|
{
|
|
$codeStore = $this->images->createQrCode($id,'zh_cjdianc/pages/takeout/takeoutindex');
|
|
$storeImgPath = 'QR_code/code_store_img/wx_store_'.$id.'.jpg';
|
|
$res = $this->images->uploadOss($codeStore,$storeImgPath);
|
|
if($res){
|
|
return ['status' => true ,'path' => $storeImgPath];
|
|
}else{
|
|
return ['status' => false ,'path' => ''];
|
|
}
|
|
}
|
|
/**
|
|
* 生成店铺收银的微信二维码
|
|
*/
|
|
public function SetPayWeChatCode($id)
|
|
{
|
|
$isCREATE = env('IS_CREATE_WECHAT_MINI_QR_CODE',1);
|
|
if($isCREATE == 0){
|
|
$codeStore = $this->images->createQrCode($id,'zh_cjdianc/pages/seller/fukuan');
|
|
$storeImgPath = 'QR_code/code_minipay_img/wx_minipay_'.$id.'.jpg';
|
|
}else{
|
|
$codeStore = $this->images->createWeChatQrCode('?scene='.$id,'zh_cjdianc/pages/seller/fukuan');
|
|
$storeImgPath = 'QR_code/code_pay_img/wx_pay_'.$id.'.jpg';
|
|
// 裁剪
|
|
|
|
}
|
|
|
|
// 裁剪测试
|
|
// $this->imageManager->make()->resize(270,270)->insert($codeStore);
|
|
|
|
$res = $this->images->uploadOss($codeStore,$storeImgPath);
|
|
if($res){
|
|
return ['status' => true ,'path' => $storeImgPath];
|
|
}else{
|
|
return ['status' => false ,'path' => ''];
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 店铺收银码裁剪
|
|
*/
|
|
public function setStoreCodeImg($file_path,$storeId){
|
|
|
|
$save_path = './QR_code/wx_store_pay_cut/wx_pay_'.$storeId.'.jpg';
|
|
|
|
if(!file_exists($save_path)){
|
|
//将图片进行裁剪
|
|
if(file_exists($file_path)){
|
|
$save_width = 270;
|
|
$start_spot_x = 5;
|
|
$start_spot_y = 5;
|
|
$width = 270;
|
|
$height = 270;
|
|
|
|
$this->tailoringImg($save_path,$file_path,$save_width,$start_spot_x,$start_spot_y,$width,$height,1);
|
|
}else{
|
|
return '';
|
|
}
|
|
}
|
|
return $save_path;
|
|
}
|
|
|
|
/**
|
|
* 裁剪图片
|
|
*/
|
|
public function tailoringImg($save_path,$file_path,$save_width,$start_spot_x,$start_spot_y,$width,$height,$display=1)
|
|
{
|
|
if(file_exists($file_path) && is_readable($file_path)){
|
|
//从字符串中的图像流新建一图像
|
|
$src = imagecreatefromstring(file_get_contents($file_path));
|
|
|
|
//保存图片的高
|
|
$save_height = round($save_width*$height/$width);
|
|
|
|
//根据要保存的宽和高创建图片
|
|
$new_image = imagecreatetruecolor($save_width, $save_height);
|
|
|
|
//生成最后的图片
|
|
imagecopyresampled($new_image, $src, 0, 0, $start_spot_x, $start_spot_y, $save_width, $save_height, $width, $height);
|
|
|
|
// header('Content-Type: image/jpeg');
|
|
imagejpeg($new_image,$save_path);
|
|
imagedestroy($src);
|
|
imagedestroy($new_image);
|
|
}
|
|
}
|
|
|
|
}
|