微信分享进入二次分享页面 提示 config:invalid signature

lz想测试上次做的分享页面,在测二次分享的时候发现config:invalid signature签名错误;(请翻看我前几天的文章)

后来复制页面链接才知道分享链接自动带了参数,参数如下:

微信分享会根据分享的不同,为原始链接拼接如下参数:

对于IOS系统会自动增加如下参数:

朋友圈 from=timeline&isappinstalled=0
微信群 from=groupmessage&isappinstalled=0
好友分享 from=singlemessage&isappinstalled=0

对于安卓系统会自动添加如下参数:

朋友圈 from=timeline
微信群 from=groupmessage

好友分享 from=singlemessage

所以在此进入分享页面的是时候,会提示出onfig:invalid signature错误,因为当前链接与后端配置的签名url不一致了,才会导致签名错误;我们在url后面加上参数就可以了

比如:

$reurl="http://www.minshu.xin/My/index.php/Home/Index/share?";
  //分享好友链接改变
  if($_GET["from"]=='timeline'){
    $data1['url'] =$this->get_device_type()=='ios'? $reurl."from=timeline&isappinstalled=0" : $reurl."from=singlemessage";
  }elseif($_GET["from"]=='groupmessage'){
    $data1['url'] = $this->get_device_type()=='ios'? $reurl."from=groupmessage&isappinstalled=0" : $reurl."from=singlemessage";
  }elseif ($_GET["from"]=='singlemessage') {
    $data1['url'] = $this->get_device_type()=='ios'? $reurl."from=singlemessage&isappinstalled=0" : $reurl."from=singlemessage";
  }else{
    $data1['url']='http://www.minshu.xin/My/index.php/Home/Index/share';

}

//判断安卓还是苹果系统

function get_device_type()

{
 //全部变成小写字母
 $agent = strtolower($_SERVER['HTTP_USER_AGENT']);
 $type = 'other';
 //分别进行判断
 if(strpos($agent, 'iphone') || strpos($agent, 'ipad'))
{
 $type = 'ios';
 } 
  
 if(strpos($agent, 'android'))
{
 $type = 'android';
 }
 return $type;

}


这样就不会错了,很希望可以帮到你们,还有如果需要我可以给源码。

你可能感兴趣的:(公众号)