关于微信登录的接口开发

流程说明

(1). 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数;

  https://open.weixin.qq.com/connect/oauth2/authorize?appid=WX_APPID&redirect_uri=回调链接&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect';

  这里的请求成功后,会跳转到回调链接中,然后用$_GET['code']获取code的值

(2). 通过code参数加上AppID和AppSecret等,通过API换取access_token;(这步里面能获取到openid 如果只需要openid而不需要其他信息第三步不需要做).

  https://api.weixin.qq.com/sns/oauth2/access_token?appid=WX_APPID&secret=WX_APPSECRET&code=CODE&grant_type=authorization_code'

  这步要用curl的分装函数来获取请求回来的信息

  //这个就是post的请求curl函数

  public function Send_curl($url,$data=null){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
    if($data){
      curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
     }
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $output = curl_exec($ch);
    curl_close($ch);
    //解析json
    $date= json_decode($output,true);

    return $date;//返回值是一个对象类型

  }

(3). 通过access_token进行接口调用,获取用户基本数据资源或帮助用户实现基本操作。

  $url = https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=SECRET

  利用上面的curl分装函数Send_curl($url)

  返回的值有token值

 

posted @ 2017-08-04 17:03  码猿人  阅读(282)  评论(0编辑  收藏  举报