前面一篇是只有前端的小程序,所以就算是下载之后那也是打开后只用不了的,因为数据和用户信息什么的都要获取,一般就是ajax和json数据的交互,好,不哆嗦了,开始小白的php的使用之路。
首先,拿到压缩包解压,可以看到全部文件。
然后,做小程序的都知道有一个“微信开发者工具”这个东西吧,不知道的去面壁(链接已经附上,没有的去下载)!用这个工具打开之前解压的代码(记得是导入项目!不是新建哈),另外小程序的AppID是每一个小程序都有的,开头是wx0000000000这样的结构的。
好啦,打开之后你会发现报错啦:
很简单,找到目录下面的app.json文件,把颜色都修改成white就OK了。
修改完成之后,页面已经可以正常显示了,我说的正常是木有数据的正常,读取不到数据还是会报错,但是这不是大问题。
讲了这么多,下面才是进入标题,获取openid,听说最早的小程序是可以在小程序内部获取openid的,但是后面不行了,因为域名限制了,具体的原因大家可以去百度,我现在说的就是PHP获取openid,很简单的,调用微信的api,传入相应的数据就ok了。
首先是域名问题,代码里面域名肯定是用不了的,人家的服务器我们的文件也放不上去,所以要先去小程序中配置域名,注意,这个域名是https的。
这是报错:
这是小程序域名的配置:
这是小程序代码修改哪里:
好,域名配置好了,接下来,就是写文件啦,如图所示,代码里面的获取openid的文件叫get_open_id.php,那我们就在服务器上创建一个这个文件,地址也是参照代码的地址(https://xxxxxx(你的域名)xxxxx/api/common/get_open_id.php),话说,那个什么apiKey我是全程没有用到,所以我不展开,带上就ok,反正我也不用,至于code参数,code是什么不用我说了吧,不知道的可以点击这里:
具体get_open_id.php代码如图:
header("Content-Type: text/html; charset=UTF-8");
header("Access-Control-Allow-Origin: *");
$appid="自己的小程序appid";
$secret="小程序secret";
$js_code=isset($_REQUEST['code']) ? $_REQUEST['code'] : "";
function http_post_data($url, $data_string) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
if (!empty($data_string)){
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
$output = curl_exec($curl);
curl_close($curl);
return $output;
}
if($js_code){
$url="https://api.weixin.qq.com/sns/jscode2session?appid=".$appid."&secret=".$secret."&js_code=".$js_code."&grant_type=authorization_code";
$data='';
$r_data=http_post_data($url, $data);
$arr = (array) json_decode($r_data,true);
echo $arr['openid'];
}else {
$result['result'] = '获取错误,请重新进入小程序';
}
关于小程序的appid和secret,所在位置如图:
好的,做完这些,你就能拿到小程序的openid啦,撒花,完结?那是不可能的,还有数据结构等着我们呢,下次继续说哈,截图截得有点子累=,=。