Home > Backend Development > PHP Tutorial > I wrote a code to connect to WeChat, but it always goes wrong. Please give me some advice.

I wrote a code to connect to WeChat, but it always goes wrong. Please give me some advice.

WBOY
Release: 2016-08-04 09:21:32
Original
1516 people have browsed it

error_reporting(E_ALL);
require "conn.php";
$appid = 'xxxxx';
$redirect_uri=urlencode("http://www.xxxxx.com/weixin/rukou.php/");
$url="https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$appid."&redirect_uri=".$redirect_uri."&response_type=code&scope=snsapi_base&state=coo#wechat_redirect";
header('location',$url);

$appsecret = 'xxxxx';
$code = $_GET['code'];
$get_token_url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appid."&secret=".$appsecret."&code=".$code."&grant_type=authorization_code";

<code>$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, $get_token_url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
$res=curl_exec($ch);
curl_close($ch);
  $jsonobj=json_decode($res,ture);</code>
Copy after login
Copy after login

$access_token=$jsonobj['access_token'];
$openid=$jsonobj['openid'];
//检查数据库中是否有openid
mysql_select_db("sjk", $dzcon);
mysql_query('set names utf8',$dzcon);
$sqlcha="select id from user where weixinopenid=$openid";
if (is_null(mysql_query($sqlcha, $dzcon))) {

<code>$userids=mysql_query($sqlcha, $dzcon);
$userid=mysql_fetch_array($userids);</code>
Copy after login
Copy after login

}else{

<code>$get_user_info_url="https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN";
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, $get_token_url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
$res=curl_exec($ch);
curl_close($ch);</code>
Copy after login
Copy after login

$userobj=json_decode($res,true);
$nickname=$userobj['nickname'];

//date
$date=date("y-m-d h:i:s");

//add data

$sqlzhuce="insert into user (weixinhao,weixinnicheng,zhucetime) values('$openid','$nickname','$date')";
if (!mysql_query($sqlzhuce,$dzcon)) {

<code>echo "提交失败";
die('Error:'.mysql_error());</code>
Copy after login
Copy after login

}
$sqldenglu="select id from user where weixinhao=$openid";
$userids=mysql_query($sqldenglu,$dzcon);
$userid=mysql_fetch_array($userids);
}
session_start();
$_SESSION['userid']=$userid[0];
echo "<script>window.location.href=index.php?userid=".$_SESSION['userid']";</script>";
mysql_close($dzcon);

?>

回复内容:

error_reporting(E_ALL);
require "conn.php";
$appid = 'xxxxx';
$redirect_uri=urlencode("http://www.xxxxx.com/weixin/rukou.php/");
$url="https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$appid."&redirect_uri=".$redirect_uri."&response_type=code&scope=snsapi_base&state=coo#wechat_redirect";
header('location',$url);

$appsecret = 'xxxxx';
$code = $_GET['code'];
$get_token_url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appid."&secret=".$appsecret."&code=".$code."&grant_type=authorization_code";

<code>$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, $get_token_url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
$res=curl_exec($ch);
curl_close($ch);
  $jsonobj=json_decode($res,ture);</code>
Copy after login
Copy after login

$access_token=$jsonobj['access_token'];
$openid=$jsonobj['openid'];
//检查数据库中是否有openid
mysql_select_db("sjk", $dzcon);
mysql_query('set names utf8',$dzcon);
$sqlcha="select id from user where weixinopenid=$openid";
if (is_null(mysql_query($sqlcha, $dzcon))) {

<code>$userids=mysql_query($sqlcha, $dzcon);
$userid=mysql_fetch_array($userids);</code>
Copy after login
Copy after login

}else{

<code>$get_user_info_url="https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN";
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, $get_token_url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
$res=curl_exec($ch);
curl_close($ch);</code>
Copy after login
Copy after login

$userobj=json_decode($res,true);
$nickname=$userobj['nickname'];

//date
$date=date("y-m-d h:i:s");

//add data

$sqlzhuce="insert into user (weixinhao,weixinnicheng,zhucetime) values('$openid','$nickname','$date')";
if (!mysql_query($sqlzhuce,$dzcon)) {

<code>echo "提交失败";
die('Error:'.mysql_error());</code>
Copy after login
Copy after login

}
$sqldenglu="select id from user where weixinhao=$openid";
$userids=mysql_query($sqldenglu,$dzcon);
$userid=mysql_fetch_array($userids);
}
session_start();
$_SESSION['userid']=$userid[0];
echo "<script>window.location.href=index.php?userid=".$_SESSION['userid']";</script>";
mysql_close($dzcon);

?>

报错是什么,放在http://mp.weixin.qq.com/debug/调试下报错

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template