微信开放平台 第三方平台提示No component_verify_ticket found.
490626721 opened this issue · comments
490626721 commented
我用的环境
- PHP 版本:8.2
- overtrue/wechat 版本:^6.7
- 是否使用了框架?框架名称:ThinkPHP6.0
问题及现象
已经测试了,事件接收能接收到component_verify_ticket消息体,具体代码如下
public function authorization_event () {
Log::info('authorization_event:'.json_encode(Request::param()));
if (isset($params["auth_code"])) {
try {
$app = $this->OpenPlatformInit();
$params = Request::param();
$agent = **********************;
if ($agent->isEmpty()){
return backData("", "不存在此代理用户", 60000);
}
$authorization = $app->getAuthorization($params["auth_code"]);
// authorizer_appid
$agent->authorizer_appid = $authorization->getAppId();
//AuthorizerAccessToken
$agent->access_token = $authorization->getAccessToken();
// 注意:authorizer_access_token 有效期只有2小时
$agent->refresh_token = $authorization->getRefreshToken();
// 授权应用类型 1公众号 2小程序
$agent->platform_type = $params["platform_type"];
// auth_time authorizer_access_token获取的时间
$agent->authorizer_time = date("Y-m-d H:i:s");
$agent->save();
Log::info('授权信息:'.json_encode($params));
} catch (InvalidArgumentException|\ReflectionException $e) {
return backData("", $e->getMessage(), 60000);
} catch (\Throwable $e) {
return backData("", $e->getMessage(), 60000);
}
}
$app = $this->OpenPlatformInit();
$server = $app->getServer();
// 解密后的消息
$message = $server->getDecryptedMessage();
Log::info('authorization-event-DecryptedMessage: '.json_encode($message));
}
log中解密后的消息体为:
authorization-event-DecryptedMessage: {"AppId":"*****************","Encrypt":"***********************","CreateTime":"1690941906","InfoType":"component_verify_ticket","ComponentVerifyTicket":"ticket@@@mZkhNqpXP4PQ03ugB_sprouUv-Pflfk5s5OzDaPeknFiSt4-R0e4OPxebqNLr4nRPMZZsbeIaaM2YjEKPGJ31Q"}
也已经测试了easywechat SDK中你们自带的缓存
$cache = new Psr16Cache(new FilesystemAdapter(namespace: 'easywechat', defaultLifetime: 1500));
$cache->set("1121", "测试cache内容", 6000);
$cacheContent = $cache->get("1121");
可以正确获取到内容
但是就是一直提示 No component_verify_ticket found.
错误文件 vendor/w7corp/easywechat/src/OpenPlatform/VerifyTicket.php 第59行
Ric commented
我是出现了这个情况,请问有解决吗
xiaolan commented
同样遇到了这个问题,你是怎么解决的