您好,欢迎访问一九零五行业门户网

微信网页进入页面也可以获取有效的code,但是分享出去后,获取不到code,请问这个问题应该怎么解决呢?

微信网页进入页面也可以获取有效的code,但是分享出去后,获取不到code,请问这个问题应该怎么解决呢?
回复内容: 微信网页进入页面也可以获取有效的code,但是分享出去后,获取不到code,请问这个问题应该怎么解决呢?
最近刚接触微信开发。你的页面的url应该是你控制器中的一个方法,分享出去的url也应该是这个方法,在这个方法里面第一件事就是从微信获取code,然后再进行url跳转,跳转到你实际需要访问的页面。实现的方法可以是在url后面加上不同的参数以区别访问页面的不同。
我用laravel写的代码,删除了我的一些业务逻辑,你看个大概:
appid . '&redirect_uri=' . $redirecturl . '&response_type=code&scope=snsapi_userinfo&state=state#wechat_redirect';// 微信授权url return redirect($url);// 跳转到start方法 } /** * 获取微信用户的openid和access_token,并判断type值跳转页面 */ public function start(request $request) { // 第二步:通过code获取到openid和access_token(有效期两小时) $code = input::get('code'); $type = input::get('type'); $openid = input::get('openid'); $redirecturl = 'http://mysite.com';// 设置一个默认跳转链接,后面专门写一个方法判断type值,获取需要跳转的链接 $result = $this->getaccesstoken($code); if ($result) { // 第三步:获取用户信息 $result = $this->getuserinfo($result['openid'], $result['access_token']); // 第四步:跳转到访问页面链接,将用户openid写到url参数中 $redirecturl = $this->getredirecturl($type, $openid);//根据type值获取需要跳转的页面 } return redirect($redirecturl); } /** * 获取微信access_token * @return 成功返回结果,失败返回false */ public function getaccesstoken($code) { $getaccesstokenurl = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' . $this->appid . '&secret=' . $this->appsecret . '&code=' . $code . '&grant_type=authorization_code'; $httpapi = new commonhttpapi(); $result = $httpapi->call($getaccesstokenurl); return $result; } /** * 获取用户信息 * @param unknown $openid * @param unknown $accesstoken */ public function getuserinfo($openid, $accesstoken) { $getuserinfourl = 'https://api.weixin.qq.com/sns/userinfo?access_token=' . $accesstoken . '&openid=' . $openid . '&lang=zh_cn'; $httpapi = new commonhttpapi(); $result = $httpapi->call($getuserinfourl); return $result; }}
其它类似信息

推荐信息