php 破解微信网页版,php实现微信网页授权

/**

* 微信商城系统

* Copyright (c) 2018

* Author:linhe

*/

namespace app\modules\m\controllers;

use app\common\components\HttpClient;

use app\common\services\UrlService;

use app\models\member\Member;

use app\models\oauth\OauthMemberBind;

use app\modules\m\controllers\common\BaseController;

use app\modules\m\controllers\common\MobileController;

use yii\web\controller;

/**

* Class OauthController

* @package app\modules\m\controllers

* 微信授权class

*/

class OauthController extends BaseController

{

public function actionLogin(){

$scope = $this->get("scope","snsapi_userinfo");

//获取code

$appid = \Yii::$app->params['weixin']['appid'];

//配置信息获取appid

$redirect_uri=UrlService::buildMurl('/oauth/callback');

$url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid={$appid}&redirect_uri={$redirect_uri}&response_type=code&scope={$scope}&state=STATE#wechat_redirect";

return $this->redirect($url);

//跳转

}

/**

* @return \yii\web\Response

* 微信回调

*/

public function actionCallback(){

$appid = \Yii::$app->params['weixin']['appid'];

//拉取appid

$sk = \Yii::$app->params['weixin']['sk'];

//获取sk

$code =$this->get("code","");

//获取code

if(!$code){

return $this->goHome();

}

$url ="https://api.weixin.qq.com/sns/oauth2/access_token?appid={$appid}&secret={$sk}&code={$code}&grant_type=authorization_code";

$ret = HttpClient::get($url);//curl的get请求

$ret = @json_decode($ret,true);//返回信息

$ret_token = isset($ret['access_token'])?$ret['access_token']:'';

if(!$ret_token){

return $this->goHome();

}

$openid = isset($ret['openid'])?$ret['openid']:'';

$scope = isset($ret['scope'])?$ret['scope']:'';

$this->setLoginStatus($openid);

if($scope == "snsapi_userinfo") {

$url = "https://api.weixin.qq.com/sns/userinfo?access_token={$ret_token}&openid={$openid}&lang=zh_CN";

$wechat_user_info = HttpClient::get($url);

$wechat_user_info=@json_decode($wechat_user_info,true);

$reg_bind = Member::find()->where(['openid'=>$openid])->one();

if(!$reg_bind){

$member_info = new Member();

$member_info ->openid= $wechat_user_info['openid'];

$member_info ->nickname= $wechat_user_info['nickname'];

$member_info ->avatar= $wechat_user_info['headimgurl'];

$member_info ->sex= $wechat_user_info['sex'];

$member_info->save(0);

//存入数据库

}

}

return $this->redirect(UrlService::buildMurl("/user/index"));

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值