/** * Get current url. * * @return string */ public function getUrl() { if ($this->url) { return $this->url; } return UrlHelper::current(); }
/** * Return current url. * * @return string */ public function current() { return UrlHelper::current(); }
/** * Return authorization URL. * * @param string $to * @param string $scope * @param string $state * * @return string */ public function url($to = null, $scope = 'snsapi_userinfo', $state = 'STATE') { $to !== null || ($to = Url::current()); $params = ['appid' => $this->appId, 'redirect_uri' => $to, 'response_type' => 'code', 'scope' => $scope, 'state' => $state]; return self::API_URL . '?' . http_build_query($params) . '#wechat_redirect'; }
/** * Generate js config for share user address. * * @param string|\Overtrue\Socialite\AccessTokenInterface $accessToken * @param bool $json * * @return string|array */ public function configForShareAddress($accessToken, $json = true) { if ($accessToken instanceof AccessTokenInterface) { $accessToken = $accessToken->getToken(); } $params = ['appId' => $this->merchant->app_id, 'scope' => 'jsapi_address', 'timeStamp' => strval(time()), 'nonceStr' => uniqid(), 'signType' => 'SHA1']; $signParams = ['appid' => $params['appId'], 'url' => UrlHelper::current(), 'timestamp' => $params['timeStamp'], 'noncestr' => $params['nonceStr'], 'accesstoken' => strval($accessToken)]; ksort($signParams); $params['addrSign'] = sha1(urldecode(http_build_query($signParams))); return $json ? json_encode($params) : $params; }
/** * Generate js config for share user address. * * @param string|accessToken $accessToken * @param bool $json * * @return string|array */ public function configForShareAddress($accessToken, $json = true) { if ($accessToken instanceof AccessToken) { $accessToken = $accessToken->getToken(); } $params = ['appId' => $this->merchant->app_id, 'scope' => 'jsapi_address', 'timeStamp' => strval(time()), 'nonceStr' => uniqid(), 'signType' => 'SHA1']; $signParams = ['appid' => $params['appId'], 'url' => UrlHelper::current(), 'timestamp' => $params['timeStamp'], 'noncestr' => $params['nonceStr'], 'accesstoken' => $accessToken]; $params['addrSign'] = generate_sign($signParams, $this->merchant->key, 'sha1'); return $json ? json_encode($params) : $params; }