1、android 和 iphone 区别
1)进入多层页面后,返回前一页
微信开发 =》点击自定义菜单 =》腾讯授权返回code码=》判定后进入目标页面
通过腾讯授权获取的code一次有效,iphone点击左上角返回按钮,重新载入前一个页面,code码是失效,报错
解决方式:
设置session:将需要判定的变量,在第一次进入目标页面时,保存在session里,下次重载如该页面时,判定session
use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\View;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Redirect;
class SignController extends BaseController
{
public function getIndex()
{
//判断weixin_id的来源,获取weixin_id
if(Session::has('openid')){
$weixin_id = Session::get('openid');
}elseif(isset($_GET["code"])){
$weixin_id = getOpenId($_GET["code"]);
//设置session记录weixin_id
Session::put('openid', $weixin_id);
}
//判断微信id是否合法
if(!$info=checkUserLegal($weixin_id)){
$msgcontent="非法访问,请重新进入签到页面!";
return View::make('front.bind.message')->with('msgcontent', $msgcontent);
exit;
}
2)显示日历
iPhone默认,数字可以拨打
解决方式:在现实日历页面添加标签
2、判定后跳转到目标页面(laravel框架)
1)点击目标页面入口,先行判定是否绑定账号,若无,则跳转到绑定页面
return Redirect::to($url); //$url -- 目标页面路径
2)绑定后跳转到目标页面
控制器层,需要获取目标页面的URL:设置session
Sesssion::put('from', $url); //$url -- 目标页面路径
view层,需要判定是否存在session,获取,跳转
@if(Session::has('from'))
{{Session::forget('from')}}
@endif
//判断是否在签到或订阅页面,若是则绑定后跳转到该页面
if($('#session_val').val()){
setTimeout(function(){
window.location.href =$('#session_val').val();
}, 1000);
}
setTimeout(callback, time) – 设置在指定时间执行callback方法
3、日期签到,连续签到日期效果显示
1)进入签到页面判定
获取本月已签到日期,返回值到当前页
2)js判定,ready()方法,显示效果
$(document).ready(function(e) {
//显示当前月份签到情况
if($("#singed_days").val()){
var days_arr = $("#singed_days").val().split(",");
for(var i in days_arr){
var select = "#fc-" + days_arr[i];
$(select).parent().addClass("current_day");
}
}
});
var arr = val.split(“,”) 将val值拆分成用 , 隔开的字符串数组arr
for(var i in days_arr){} 循环判定相应键值i是否存在在arr中,并逐一进行相应处理
4、环境配置问题
不同环境配置不同,导致一些语法书写方法失效
php 高版本支持 数组语法 $arr = [ 1, 3, 4];
php 5.3以下不支持上面写法 ,支持 $arr = array(1, 3, 4);
5、微信测试发布注意项
1)外网域名 是否正确 config里
2)APPID APPSECRET 是否正确 (微信公众号正式的)
3)access_token 是否正确,是否有效