Commit a74f823f authored by 刘小敏's avatar 刘小敏

优化分享海报接口

parent cff97ea7
......@@ -163,31 +163,50 @@ class Wechat extends Common
$this->success('jssdkApi', $data);
}
/**
* 微信小程序码接口
*/
public function wxacode()
{
$mp = $this->wechat->getApp();
$path = $this->payload['path'];
list($page, $scene) = explode('?', $path);
$content = $mp->app_code->getUnlimit($scene, [
'page' => substr($page, 1),
'is_hyaline' => true,
// 'env_version' => 'develop'
'env_version' => 'release'
]);
if ($content instanceof \EasyWeChat\Kernel\Http\StreamResponse) {
return response($content->getBody(), 200, ['Content-Length' => strlen($content->getBodyContents())])->contentType('image/png');
} else {
// 小程序码获取失败
$msg = $content['errcode'] ?? '-';
$msg .= $content['errmsg'] ?? '';
$this->error($msg);
try {
$mp = $this->wechat->getApp();
$path = $this->payload['path'] ?? '';
// 验证路径
if (empty($path)) {
$this->error('页面路径不能为空');
}
// 安全处理:使用 array_pad 确保变量存在
$parts = explode('?', $path, 2);
list($page, $scene) = array_pad($parts, 2, '');
// 确保路径以 / 开头
if ($page[0] !== '/') {
$page = '/' . $page;
}
// 根据域名或配置动态选择环境版本
$envVersion = 'develop';
$content = $mp->app_code->getUnlimit($scene, [
'page' => substr($page, 1), // 微信接口要求不带开头的 /
'is_hyaline' => true,
'env_version' => $envVersion
]);
if ($content instanceof \EasyWeChat\Kernel\Http\StreamResponse) {
return response($content->getBody(), 200, ['Content-Length' => strlen($content->getBodyContents())])->contentType('image/png');
} else {
// 记录详细日志
$errcode = $content['errcode'] ?? '-';
$errmsg = $content['errmsg'] ?? '';
custom_log('[微信小程序码]获取失败: page='.$page.', scene='.$scene.', env='.$envVersion.', errcode='.$errcode.', errmsg='.$errmsg, 'wechat');
$this->error('获取小程序码失败: [' . $errcode . '] ' . $errmsg);
}
} catch (\Exception $e) {
custom_log('[微信小程序码]异常: ' . $e->getMessage() . ' | ' . $e->getTraceAsString(), 'wechat');
$this->error('获取小程序码异常');
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment