提交代码
This commit is contained in:
parent
b0ee731915
commit
7ae76e2924
|
|
@ -147,4 +147,23 @@ class Index extends Base
|
|||
exit();
|
||||
// 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_add','UserSign/sign_add'); //签到
|
||||
//generate_urllink
|
||||
Route::any('generate_urllink','Index/generate_urllink'); //签到
|
||||
Route::any('generate_urllink','Index/generate_urllink');
|
||||
|
||||
Route::any('generate_urllinks','Index/generate_urllinks');
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -89,6 +89,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 '';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 获得小程序二维码
|
||||
|
|
|
|||
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