PC 側のログインには WeChat オープン プラットフォーム上のアプリケーションが必要ですが、モバイル側の承認されたログインには認定されたサービス アカウントのみが必要です。次に、同じ WeChat ユーザーを使用して同じ Web サイト プラットフォームにログインすると、PC 側で取得した WeChat ユーザーの openid がモバイル側のそれと異なることがわかります。この問題を解決するにはどうすればよいですか?
1. 公式アプローチ
WeChat サービス アカウントを WeChat オープン プラットフォームにバインドする必要がありますが、このとき、奇妙なことが起こります。 WeChat ミニ プログラムに申し込むと、WeChat オープン プラットフォームにより、最初にミニ プログラムを開くように求められます。
次に、WeChat サービス アカウントを WeChat オープン プラットフォームにバインドした後、統一された UnionID を取得できます。この UnionID は、PC WeChat ログインでもモバイル WeChat ログインでも統一されます。
公式の説明を見てみましょう:
UnionID メカニズムの役割の説明: 開発者が複数のモバイル アプリケーション、Web サイト アプリケーション、パブリック アカウントを持っている場合、開発者はユーザーの基本情報 UnionID は、ユーザーの一意性を区別するために使用されます。これは、同じ WeChat オープン プラットフォームでは、同じユーザーが異なるアプリケーション (モバイル アプリケーション、Web サイト アプリケーション、パブリック アカウント) に対して同じ UnionID を持っているためです。
2. 別のアプローチ
シナリオ 1.
1. 携帯電話番号の登録 - 成功。 2. ユーザーが PC 上で WeChat を使用して初めてログインすると、バインディング携帯電話番号ページが表示されます。携帯電話番号が登録されている場合は、データ テーブル フィールド weixin_open_id が更新されます。 3. ユーザーは PC WeChat を使用して 2 回目にログインし、最終ログイン時刻を更新します。シナリオ 2、
1. 携帯電話番号の登録-》成功しました。 2. ユーザーが初めてモバイル WeChat を使用してログインすると、バインディング携帯電話番号ページが表示され、携帯電話番号が登録されている場合は、データ テーブル フィールド weixin_open_id_m が更新されます。 3. ユーザーはモバイル WeChat を使用して 2 回目にログインし、最終ログイン時刻を更新します。シナリオ 3、
シナリオ 4、
3. 注意が必要です
次のコードを使用して、PC WeChat ログインかモバイル WeChat ログインかを判断できます:if(request()->isMobile()){ //移动端 }else{ //PC端 }
最後に
#引き続き公式の方法を使用することをお勧めしますが、特定の状況に遭遇した場合は、2 番目の方法を使用できます。また、大規模な Web サイトの場合、PC 端末とモバイル端末が別々に分離されるため、適応的な Web サイト開発には適していません。 ###以上がWeChat PC ログインとモバイル ログイン ロジックの共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。