/**
* 获取不限制的小程序码
* @param $accessToken
* @param $scene
* @param $page
* @param $width
* @return mixed
* @throws ServerErrorHttpException
*/
public function getUnlimitedQRCode($accessToken, $scene, $page = null, $width = 430)
{
$response = $this->httpClient->createRequest()
->setMethod('POST')
->setUrl('wxa/getwxacodeunlimit?access_token=' . $accessToken)
->setFormat(Client::FORMAT_JSON)
->setData([
'scene' => $scene,
'page' => $page,
'width' => $width,
'check_path' => false,
'env_version' => 'trial'
])
->send();
// 设置响应格式为 raw-urlencoded(二进制数据)
$response->format = Client::FORMAT_RAW_URLENCODED;
// 检查响应状态码是否等于20x
if ($response->isOk) {
// 检查业务逻辑是否成功
if (isset($response->data['errcode']) && isset($response->data['errcode'])) {
throw new ServerErrorHttpException('获取不限制的小程序码失败,errcode:' . $response->data['errcode'] . ',errmsg:' . $response->data['errmsg'], 20021);
}
} else {
throw new ServerErrorHttpException('获取不限制的小程序码失败,status_code:' . $response->statusCode, 20022);
}
return $response->content;
}

application/json; encoding=utf-8
image/jpeg
/**
* 获取不限制的小程序码
* @param $accessToken
* @param $scene
* @param $page
* @param $width
* @return mixed
* @throws ServerErrorHttpException
*/
public function getUnlimitedQRCode($accessToken, $scene, $page = null, $width = 430)
{
$response = $this->httpClient->createRequest()
->setMethod('POST')
->setUrl('wxa/getwxacodeunlimit?access_token=' . $accessToken)
->setFormat(Client::FORMAT_JSON)
->setData([
'scene' => $scene,
'page' => $page,
'width' => $width,
'check_path' => false,
'env_version' => 'trial'
])
->send();
// 检查响应状态码是否等于20x
if ($response->isOk) {
$contentType = $response->getHeaders()->get('Content-Type');
if (strpos($contentType, 'image/') !== false) {
return $response->content;
} elseif (strpos($contentType, 'application/json') !== false && isset($response->data['errcode']) && isset($response->data['errcode'])) {
throw new ServerErrorHttpException('获取不限制的小程序码失败,错误码:' . $response->data['errcode'] . ',错误信息:' . $response->data['errmsg'], 20021);
} else {
// 未知响应类型
throw new ServerErrorHttpException('获取不限制的小程序码失败,未知响应类型:' . $contentType, 20023);
}
} else {
throw new ServerErrorHttpException('获取不限制的小程序码失败,HTTP 状态码:' . $response->statusCode, 20022);
}
}

{
"code": 10000,
"message": "生成微信小程序二维码成功",
"data": {
"url": "/mini-program-qr-codes/644d4a4c0fff836ec9ac17d86d0911aa.png"
}
}
yii\web\ServerErrorHttpException: 获取不限制的小程序码失败,错误码:40001,错误信息:invalid credential, access_token is invalid or not latest, could get access_token by getStableAccessToken, more details at https://mmbizurl.cn/s/JtxxFh33r rid: 67d90e17-47a89f95-26c1c8de
需要长期技术维护或远程问题排查?
我是拥有 15+ 年经验的 PHP / Go 后端工程师,长期关注已有系统维护、Bug 修复、性能优化、服务器排查、WordPress 网站维护和小功能迭代。
如果你的项目遇到以下情况,可以先从一次小问题排查开始合作:
- ✅ PHP / Laravel / Yii2 老项目无人维护
- ✅ Go / Gin 后端接口需要排查或优化
- ✅ WordPress 网站访问慢、报错或插件冲突
- ✅ Nginx / MySQL / Redis / Linux 服务器异常
- ✅ CDN / Cloudflare / DNS / HTTPS 配置问题
- ✅ 需要长期远程技术支持或兼职维护
更多介绍请查看:关于我 & 合作
微信:13980074657
邮箱:shuijingwanwq@gmail.com
Telegram:@shuijingwan
GitHub:https://github.com/shuijingwan

发表回复