微擎:测试公众号获取不到openid,进入封面链接加多个GPC参数
针对于测试公众号获取不到openid:
本人条件是通过内网映射,把自己电脑挂成微擎服务器,然后与微信提供的微信测试公众号进行相互的配置,来进行测试的。以下为微信测试公众号链接。
https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
有时候你会发现,在你的写测试方法里面,有时候会获得不到openid,其实关键在于要触发模块addons的封面链接,即mainfest.XML里面的
<cover>
<entry title="交易记录" do="transaction" state="" direct="false" />
<entry title="操作记录" do="operate" state="" direct="false" />
<entry title="设备管理" do="management" state="" direct="false" />
</cover>
比如操作记录,它触发的是site.php里面的doMobileOperate()方法,然后把这个作为测试方法,在里面打印openid。
你需要自己在微擎,设置你的封面链接的触发关键字。
1.你在测试公众号里发送,你设置的测试关键字,然后系统知道你触发的是你的写的模块的封面,之后你的模块就能获取到你的openid了。
2.发送了关键字还不好使,那么你再点一下你的封面链接,进入doMobileOperate()方法里去,之后你的模块就能获取到你的openid了。
进入封面链接加多个参数:
由于我的app端的设计是MVC的,进入到doMobileOperate()后,我还想进入到控制器里面去,那么在site.php写如下方法:
public function doMobileOperate(){
global $_W;
$dir = IA_ROOT . '/addons/' . $this->modulename . '/';
$dir .= 'app/';
$file = $dir . 'index.php';
if(file_exists($file)) {
global $_GPC;
$_GPC['do']='scangenerate';
$_GPC['ac']='scan';
$_GPC['op']='door_teacher';
$_GPC['info_id']='XX';
$_GPC['door']='X';
$_GPC['random']='XXXXXXXXX';
$_GPC['device_name']='XX馆';
require $file;
exit;
}
}
其中do,ac,op参数是用于选择控制器里面的某个方法的。用$_GPC来直接设置链接的get参数,但实际你查看链接时,发现链接只具体到do参数,因为封面链接只会具体到do。
其实也不用上面这样设置参数,因为如果已经能获取到openid的话,那就点实际的链接就行了。。。只是提供更一种思路。