使用 EndroidQrCode 包生成二维码时,遇到错误:Call to undefined method EndroidQrCodeQrCode::writeString(),这是因为使用了旧版本的方法,新版本的 EndroidQrCode 已经没有这个方法了。

使用旧版方法导致错误的代码示例:

use EndroidQrCodeQrCode;

// 把要转换的字符串作为 QrCode 的构造函数参数
$qrCode = new QrCode($wechatOrder->code_url);

// 将生成的二维码图片数据以字符串形式输出,并带上相应的响应类型
return response($qrCode->writeString(), 200, ['Content-Type' => $qrCode->getContentType()]);

对应功能采用新版方法实现的代码示例:

$qrCode = QrCode::create($wechatOrder->code_url);
$writer = new PngWriter();
$result = $writer->write($qrCode);
return response($result->getString(), 200, ['Content-Type' => $result->getMimeType()]);