原因

已知QQ互联APP IDAPP Key填写正确,回调地址无误。
本地测试一切正常,拿到用户那边测试的时候却出现报错,报错如下:

-1
client request's parameters are invalid, invalid openid

这种bug的出现是随机性的,且本地测试环境一切正常,多番查找原因无果,只能重写。
重写以后故障依旧,仔细阅读官方开发文档以后得到下面解决方法:

解决

在回调文件中我们要定义两次$qc= new qc(),第一次用于获取正确的access_token 和openid,而第二次用于保证正确传输access_token和openid以保证api的正常使用,否则报错client request's parameters are invalid, invalid openid
最简单的方法就是在第一次new QC()之后,立即获取access_token和openid,并立即重新使用获取到的access_token和openid来重新定义QC()类,以防止变量丢失或被覆盖。
核心回调代码示例:

$qc = new QC();
$acs = $qc->qq_callback();
$oid = $qc->get_openid();
$qc = new QC($acs,$oid);
$uinfo = $qc->get_user_info();
最后修改:2022 年 04 月 14 日 11 : 46 AM