/** * Description: 获取用户信息 通过 - snsapi_base。即不弹出授权认证 * @param $code getCode()获得,采用跳转方式,需要自行$_GET先获得 * @param Array */ public static function getUserInfoBySnsapiBase($code, $uri) { //获取OpenId $openId = self::getAccessTokenAndOpenId($code); //如果code无效,则重新获取code if (isset($openId['errcode']) && ($openId['errcode'] = 40029)) { WeChatOAuth::getCode($uri); } if (empty($openId['openid'])) { die('获取微信授权失败,请回到微信界面重新进入!无效openid'); } $openId = $openId['openid']; //根据OpenId获取用户信息 return UserManage::getUserInfo($openId); }
private function requestAction($action) { switch ($action) { case 'wxJsSignature': // got wx js signature if (isset($_SERVER['HTTP_REFERER'])) { $url = $_SERVER['HTTP_REFERER']; } else { $url = self::_phpFileFullUrl(); } //var_dump($url); $sig = new ApiSignature(WECHAT_APPID, WECHAT_APPSECRET, $url); $ret = json_encode($sig->getSignPackage()); echo $ret; break; case 'fetchCode': if (isset($_SERVER['HTTP_REFERER'])) { $redirectUrl = $_SERVER['HTTP_REFERER']; } else { $redirectUrl = $_SERVER['REQUEST_URI']; } WeChatOAuth::getCode($redirectUrl, $state = 'qianduoduo', $scope = 'snsapi_base'); break; case 'fetchOpenid': if (!isset($_GET['code'])) { echo json_encode(['msg' => 'no code here !!!']); return; } $code = $_GET['code']; $ret = WeChatOAuth::getAccessTokenAndOpenId($code); echo json_encode($ret); break; case 'scanCodePay': //$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.WECHAT_APPID.'&secret='.WECHAT_APPSECRET; // var params = { // id: $('#channel').val() + '01', // '01' means pay // amount: $('#money').val(), // openId: openid, // authCode: result // }; //var_dump($_GET); $params = ['id' => $_GET['id'], 'amount' => $_GET['amount'], 'authCode' => $_GET['authCode'], 'openId' => $_GET['openId']]; //$params = []; //parse_str() //var_dump($params); $ret = Curl::callWebServer(WECHAT_URL . 'zero/scanweb', json_encode($params), 'POST'); //var_dump($ret); // check receipt openid here. /** * Notify JS frontend. */ echo json_encode($ret); /** * Notify the receipt. */ $retParams = $ret['params']; if (is_string($retParams)) { $retParams = json_decode($retParams, true); } $debugMode = isset($_GET['debugMode']) && $_GET['debugMode'] === '1'; if ($debugMode) { // mock $ret['code'] = '00'; $retParams['total_amount'] = '0.01'; } if ($ret['code'] === '00' && $retParams && $retParams['total_amount'] && !is_null($retParams['total_amount'])) { $content = '收到' . '付款金额' . $retParams['total_amount']; ResponseInitiative::text($params['openId'], $content); } break; // case 'notifyPayResult': { // //if(isset($_POST())) // if (!isset($_GET['code'])) { // echo json_encode(['msg'=>'no code here !!!']); // return; // } // // $code = $_GET['code']; // $ret = WeChatOAuth::getAccessTokenAndOpenId($code); // echo json_encode($ret); // } break; default: //return ResponsePassive::text($request['fromusername'], $request['tousername'], '收到未知的消息,我不知道怎么处理'); } }