コード例 #1
0
 public function callback($type = null, $code = null)
 {
     if (empty($type) || empty($code)) {
         $this->error('参数错误');
     }
     $sns = ThinkOauth::getInstance($type);
     //腾讯微博需传递的额外参数
     $extend = null;
     if ($type == 'tencent') {
         $extend = array('openid' => $this->_get('openid'), 'openkey' => $this->_get('openkey'));
     }
     $tokenArray = $sns->getAccessToken($code, $extend);
     $openid = $tokenArray['openid'];
     //$token = $tokenArray['access_token'];  //根据需求储存  主要用来刷新并延长授权时间
     //dd($tokenArray);
     //
     //执行后续操作,代码自己实现。
     //请记住每个用户的openid都是唯一的,所以把openid存到数据库即可
     $member = D('MemberView');
     //根据openid判断用户是否存在,如果存在 ,判断用户是否被禁用。如果不存在,把openid存到数据库,相当于注册用户
     #
     #
     #  代码自己实现
     #
     #
     #
 }
コード例 #2
0
 /**
  * 合并默认参数和额外参数
  * @param array $params  默认参数
  * @param array/string $param 额外参数
  * @return array:
  */
 protected function param($params, $param)
 {
     $params = parent::param($params, $param);
     /* 签名 */
     ksort($params);
     $param = array();
     foreach ($params as $key => $value) {
         $param[] = "{$key}={$value}";
     }
     $sign = implode('', $param) . $this->AppSecret;
     $params['sig'] = md5($sign);
     return $params;
 }