最近のPC側のWebサイト開発ではWeChatの認証ログインが必要となるため、携帯電話側ではすでに初期段階で多くのWeChatユーザーグループを獲得していることを考慮し、データ同期に合わせたリソースの統合を検討中です。同じWeChatユーザーです。
WeChat 開発の知識にさらされるため、以下は WeChat 公式ドキュメントの紹介です。区別に注意してください:
フォロワーが公式アカウントと対話した後、公式アカウントはフォロワーの OpenID (暗号化された WeChat ID、各公式アカウントの各ユーザーの OpenID は一意です。異なる公式アカウントの場合、OpenID はそれぞれ異なります) を取得できます。同じユーザーでも異なります)。公式アカウントは、ニックネーム、アバター、性別、都市、言語、注目時間など、対応するインターフェースを通じて OpenID に基づく基本的なユーザー情報を取得できます。
開発者が複数の公式アカウント間、または公式アカウントとモバイル アプリケーション間でユーザー アカウントを統合する必要がある場合は、WeChat オープン プラットフォーム (open.weixin.qq.com) にアクセスして公式アカウントをバインドする必要があることに注意してください。この場合にのみ、UnionID メカニズムを使用して上記の要件を満たすことができます。
簡単に言えば:
OpenID は通常のユーザーの ID であり、現在の開発者アカウントに固有です。 OpenIDは公式アカウントに相当します。
UnionID はユーザーの統一 ID です。 WeChat オープン プラットフォーム アカウント下のアプリケーションの場合、同じユーザーの UnionID は一意です。
は、つまり、同じWeChatユーザーが異なるプラットフォームを使用する場合、WeChatパブリックアカウントの開発とWeChat開発プラットフォームの開発には違いがあります。 (PC、アプリ、WeChat アプレットなど) Web サイトへのログインにはアカウントのバインドが必要ですが、バインドされたアカウントは OpenID では区別できず、UnionID で区別する必要があります。
付録 よくある設計の問題は、主に開発前の知識の活用が不十分であることが原因であり、これはその後の拡張に影響を及ぼします。もちろん、これは私が遭遇した問題でもあります。皆への警鐘となりますように。
以下のニーズに従って、「ウェブサイトアプリケーション開発」の作成を選択し、公式プロンプトに従って資料を申請します。通常、これにはさらに時間がかかります3日よりも。
アプリケーションの作成後、インターフェースの権限を取得するための要件も満たしている必要があります。スタッフは積極的に連絡し、通常は 1 日で完了します。
同じ開発アカウントの WeChat ユーザーに対応する UnionID がバインドされて使用されるようにするために、文書では、一般に WeChat の支払い機能を満たす必要があると紹介されています
'WEIXIN_LOGIN' => array( // 微信开放平台 使用微信帐号登录App或者网站 配置信息 'OPEN_APPID' => 'wxbd961b2a6b7b2963', //应用 AppID 'OPEN_APPSECRET' => 'e6xxxxxxxxxxxxxxxxxxxxe90',//应用 AppSecret 'OPEN_CALLBACKURL' => 'http://www.52zhenmi.com/Home/Login/wxBack', //微信用户使用微信扫描二维码并且确认登录后,PC端跳转路径 ),
public function wxIndex(){ //--微信登录-----生成唯一随机串防CSRF攻击 $state = md5(uniqid(rand(), TRUE)); $_SESSION["wx_state"] = $state; //存到SESSION $callback = urlencode($this->callBackUrl); 'https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect'; $wxurl = "https://open.weixin.qq.com/connect/qrconnect?appid=" .$this->appID."&redirect_uri=" .$callback."&response_type=code&scope=snsapi_login&state=" .$state."#wechat_redirect"; header("Location: $wxurl"); } public function wxBack(){ if($_GET['state']!=$_SESSION["wx_state"]){ echo 'sorry,网络请求失败...'; exit("5001"); } $url='https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$this->appID.'&secret='.$this->appSecret.'&code='.$_GET['code'].'&grant_type=authorization_code'; $arr = curl_get_contents($url); //得到 access_token 与 openid $url='https://api.weixin.qq.com/sns/userinfo?access_token='.$arr['access_token'].'&openid='.$arr['openid'].'&lang=zh_CN'; $user_info = curl_get_contents($url); $this->dealWithWxLogin($user_info); } /** * 根据微信授权用户的信息 进行下一步的梳理 * @param $user_info */ public function dealWithWxLogin($user_info){ //TODO 数据处理 var_dump($user_info); die; }
カスタマイズされた WeChat ログイン スキャン コード スタイル ソリューション
- 1. 、ログインしているユーザーの情報を取得でき、後の業務処理のためにデータベースに保存できます。
2. 以下で説明できる能力には限界がありますので、公式の開発ドキュメントや Google の先輩方の実践経験を参照することをお勧めします。参照: WeChat パブリック アカウント ユーザーと Web サイト ユーザーのバインディング カスタマイズされたソリューション
- 関連推奨事項:
WeChat オープン プラットフォーム開発 Web サイト アプリケーション WeChat ログインの概要
方法WeChat ログインを PHP の laravel フレームワークと迅速に統合するには
以上がPHP Web サイトで WeChat を使用してログインする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。