提交代码
This commit is contained in:
parent
b0ee731915
commit
7ae76e2924
|
|
@ -147,4 +147,23 @@ class Index extends Base
|
||||||
exit();
|
exit();
|
||||||
// return $this->renderSuccess('请求成功', $user_base );
|
// return $this->renderSuccess('请求成功', $user_base );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function generate_urllinks()
|
||||||
|
{
|
||||||
|
$userId = request()->param('userId/d', 0);
|
||||||
|
$wxServer = new \app\common\server\Wx($this->app);
|
||||||
|
$user_base = $wxServer->generateUrlLinks($userId);
|
||||||
|
$autoload = new \app\common\server\autoload();
|
||||||
|
$imageData = $autoload->generatePosterWithQR('/www/wwwroot/testbaji.onelight.vip/public/img_poster.jpg', $user_base);
|
||||||
|
if ($imageData) {
|
||||||
|
header('Content-Type: image/png');
|
||||||
|
header('Content-Length: ' . strlen($imageData)); // 设置图像长度,帮助浏览器处理流式内容
|
||||||
|
echo $imageData;
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
return $this->renderSuccess('请求成功', $user_base);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -153,6 +153,8 @@ Route::any('seckill_order_logistics','Seckill/seckill_order_logistics');
|
||||||
Route::any('sign','UserSign/index'); //签到页面
|
Route::any('sign','UserSign/index'); //签到页面
|
||||||
Route::any('sign_add','UserSign/sign_add'); //签到
|
Route::any('sign_add','UserSign/sign_add'); //签到
|
||||||
//generate_urllink
|
//generate_urllink
|
||||||
Route::any('generate_urllink','Index/generate_urllink'); //签到
|
Route::any('generate_urllink','Index/generate_urllink');
|
||||||
|
|
||||||
|
Route::any('generate_urllinks','Index/generate_urllinks');
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -90,6 +90,30 @@ class Wx extends MyController
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param string $code
|
||||||
|
* @return int|mixed|\think\response\Json
|
||||||
|
*/
|
||||||
|
public function generateUrlLinks($userId)
|
||||||
|
{
|
||||||
|
$access_token = $this->get_access_token();
|
||||||
|
$request_url = "https://api.weixin.qq.com/wxa/generate_urllink?access_token=" . $access_token;
|
||||||
|
$param = '{
|
||||||
|
"path": "/pages/shouye/index",
|
||||||
|
"query": "pid=' . $userId . '"
|
||||||
|
}';
|
||||||
|
$res = curlPost($request_url, $param);
|
||||||
|
$res = json_decode($res, true);
|
||||||
|
if ($res['errcode'] == 0 && $res['errmsg'] == 'ok') {
|
||||||
|
return $res['url_link'];
|
||||||
|
} else {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得小程序二维码
|
* 获得小程序二维码
|
||||||
* @param string $open_id
|
* @param string $open_id
|
||||||
|
|
|
||||||
53
app/common/server/autoload.php
Normal file
53
app/common/server/autoload.php
Normal file
|
|
@ -0,0 +1,53 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace app\common\server;
|
||||||
|
|
||||||
|
use Endroid\QrCode\QrCode;
|
||||||
|
use Endroid\QrCode\Writer\PngWriter;
|
||||||
|
class autoload
|
||||||
|
{
|
||||||
|
public function generatePosterWithQR($backgroundUrl, $qrText)
|
||||||
|
{
|
||||||
|
|
||||||
|
// 加载背景图
|
||||||
|
$backgroundImage = imagecreatefromjpeg($backgroundUrl);
|
||||||
|
if (!$backgroundImage) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$backgroundWidth = imagesx($backgroundImage);
|
||||||
|
$backgroundHeight = imagesy($backgroundImage);
|
||||||
|
|
||||||
|
// 生成二维码
|
||||||
|
$qrSize = 500;
|
||||||
|
$qrCode = new QrCode($qrText);
|
||||||
|
$qrCode->setSize($qrSize);
|
||||||
|
$writer = new PngWriter();
|
||||||
|
$qrImage = $writer->write($qrCode);
|
||||||
|
|
||||||
|
// 将二维码转换为 GD 图像资源
|
||||||
|
$qrImageResource = imagecreatefromstring($qrImage->getString());
|
||||||
|
|
||||||
|
// 计算二维码的放置位置
|
||||||
|
$qrX = ($backgroundWidth - $qrSize) / 2;
|
||||||
|
$qrY = ($backgroundHeight - $qrSize) * 0.73;
|
||||||
|
|
||||||
|
// 将二维码绘制到背景图上
|
||||||
|
imagecopy($backgroundImage, $qrImageResource, $qrX, $qrY, 0, 0, $qrSize, $qrSize);
|
||||||
|
|
||||||
|
// 创建一个临时的内存文件,保存合成后的图片
|
||||||
|
ob_start();
|
||||||
|
imagepng($backgroundImage); // 输出图像为PNG格式
|
||||||
|
$imageData = ob_get_contents();
|
||||||
|
ob_end_clean();
|
||||||
|
|
||||||
|
// 释放图像资源
|
||||||
|
imagedestroy($backgroundImage);
|
||||||
|
imagedestroy($qrImageResource);
|
||||||
|
|
||||||
|
// 返回合成后的图片的字节数据
|
||||||
|
return $imageData;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user