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

优化分享海报接口

parent cff97ea7
...@@ -163,31 +163,50 @@ class Wechat extends Common ...@@ -163,31 +163,50 @@ class Wechat extends Common
$this->success('jssdkApi', $data); $this->success('jssdkApi', $data);
} }
/** /**
* 微信小程序码接口 * 微信小程序码接口
*/ */
public function wxacode() public function wxacode()
{ {
$mp = $this->wechat->getApp(); try {
$path = $this->payload['path']; $mp = $this->wechat->getApp();
list($page, $scene) = explode('?', $path); $path = $this->payload['path'] ?? '';
$content = $mp->app_code->getUnlimit($scene, [ // 验证路径
'page' => substr($page, 1), if (empty($path)) {
'is_hyaline' => true, $this->error('页面路径不能为空');
// 'env_version' => 'develop' }
'env_version' => 'release'
]); // 安全处理:使用 array_pad 确保变量存在
$parts = explode('?', $path, 2);
if ($content instanceof \EasyWeChat\Kernel\Http\StreamResponse) { list($page, $scene) = array_pad($parts, 2, '');
return response($content->getBody(), 200, ['Content-Length' => strlen($content->getBodyContents())])->contentType('image/png');
} else { // 确保路径以 / 开头
// 小程序码获取失败 if ($page[0] !== '/') {
$msg = $content['errcode'] ?? '-'; $page = '/' . $page;
$msg .= $content['errmsg'] ?? ''; }
$this->error($msg); // 根据域名或配置动态选择环境版本
$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