ホームページ >バックエンド開発 >PHPチュートリアル >php+WeChatインターフェースで開発されたWeChat配信プラットフォームの分割説明 (1) WeChat oauth2インターフェース

php+WeChatインターフェースで開発されたWeChat配信プラットフォームの分割説明 (1) WeChat oauth2インターフェース

WBOY
WBOYオリジナル
2016-07-30 13:30:261289ブラウズ

私はIT出稼ぎ労働者です。私はマスターでも偉大な神でもありませんが、Lei Fengになりたいと思っています。 Shenma の書き方がなければ、ただ文句を言うだけです。説明が明確でない場合は、質問を続けていただいても構いません。時間の許す限りお答えします。

この記事では、システムのソース コードの一部を公開し、開発経験、アイデア、質問への回答について説明します。先ほど通り過ぎてくださった専門家や、貴重なコメントを残してくださった専門家の方々にここで感謝したいと思います。


話はやめて本題に入りましょう。

基礎

php現在の主流WEBは言うまでもなく開発言語であることは間違いありません。 WeChatインターフェースは主にWeChat認証ログインインターフェース、WeChatJSSDK共有インターフェース、WeChat支払いインターフェースを使用します。一連の落とし穴のあるWeChatインターフェースについては文句を言わなければなりません。流通システムは後述するマーケティングモデルです。まず、WeChat ログインの最初のステップ (oauth2サードパーティ認証インターフェース) について説明します。これは、個人的にはより重要であると考えています。これには、高いユーザー エクスペリエンス、高いセキュリティという利点があり、便利な基盤を築きます。その後の配信システムの欠点は、WeChat の内蔵ブラウザでのアクセスは WeChat 以外の方法での宣伝やプロモーションに不便であることだけです (フォームで QR コードを生成するオンラインのサードパーティ ツールが多数あります)。興味がある場合は、メッセージを残してください。

まず、伝説的なWeChatAPIインターフェースドキュメント、公式Webサイトのドキュメントアドレスを見てくださいhttp://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c 37b 468d75 .html

このインターフェースを使用するには、認定されたサービス アカウントが必要です。お持ちでない場合は、テスト アカウントを申請して体験することはできますが、

Web ページの手順を参照してください。承認コールバック ドメイン名

このドキュメントは比較的明確です。サードパーティ プラットフォームを使用しない場合、プロジェクトが WeChat ユーザー情報を取得するために必要なパスを構成する必要があります。許容できる。こちらは比較的わかりやすいです

下から見ると、1回目でも分からず、2回目でも分かりませんでした。 。 。 。 。 。このプロジェクトは 1 年前に開発が開始されましたが、当時のドキュメントは現在よりもさらに単純で、インターネット上には参考資料がほとんどありませんでした。幸いなことに、最終的には記事からいくつかの手がかりを見つけることができました。そしてそれは完了しました

その他の指示

最初にいくつかのパラメータを導入しますappidとappsecretこれらの2つのパラメータは多くのインターフェイス呼び出しで見つけることができます。 WeChatパブリックプラットフォームで。

最も重要なパラメータは、パブリック プラットフォームに対応する WeChat ID の唯一の ID である認証インターフェイス openid を呼び出す目的でもあります。これが取得されると、ユーザーはログインしていると見なされます。 WeChat とその後のすべてのビジネス プロセスとデータベース レコードはすべて、WeChat を中心に構築されています。

openidと、アバター、ニックネーム、都市、性別などの基本的なユーザー情報を取得する方法について話しましょう。これは、私たちを騙すための非常に多くの手順があります。安全上の理由から理由を説明します。また愚痴を言ってごめんなさい。

3つのステップでコードを取得しましょう

1、コードとは何ですか? ? ?わかりませんが、次のステップに進むために取得する必要があります

インターフェースアドレス:https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&resp /span>

appid は改良されたばかりで、パブリック プラットフォームで見つけることができます。 redirect_uri が重要なポイントです。これは、ユーザーが上記のインターフェイス アドレスを介して WeChat サーバーにリクエストを送信するときです。 WeChat サーバーは GET を通じてそれを配信します。パラメータ coderedirect_uri に戻ります。 を使用してそれを受け入れるだけです。 scopeも重要なパラメータです。snsapi_basesnsapi_userinfoの2つのタイプがあります。WeChatログインのみを実現したい場合は、openidのみが必要です。 次に、それを使用してください snsapi_base、 利点は、ユーザーが訪問時に自分の openid をキャプチャしたことに気づかないことです。 openidを取得することに加えて、snsapi_userinfoを使用すると、より多くのWeChatユーザー情報を取得できるようになりました。そのため、snsapi_userinfoを直接使用できます。 WeChat 認証が許可されているかどうかを示すメッセージが最初に表示され、ユーザーは次のステップに進む前に同意する必要があります。図に示すように:

2.

Get

openid


access_token

codeappid、および

app

secretインターフェイスを介して: https://api.weixin.qq . com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_codejson形式でデータを返します

3

アバターのニックネームなどを取得 。 ..

openid および

access_tokenインターフェースを介して:

https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID &lang=z h_CN

json形式でデータを返します

パラメータlangデフォルトでは、書かれていない場合は英語のデータが返されます

サンプルコードペット

a 。 php$url='http://www.xxx.com/b.php';

$url=urlencode($url);

$href="https:// open .weixin.qq.com/connect/oauth2/authorize?appid=xxx&redirect_uri=$url&resp/span>

@header("location:$href");

b.php

$code=$_GET['code'];

$url='https://api.weixin.qq.com/sns/oauth2/access_token?appid=xxx&secret=xxx&code='.$code ' &grant_type = authorization_code '; $jsonstr['openid'];

$userurl='https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid='.$openid;

$userinfo=file_get_contents($userurl);

$userinfo = json_decode($userinfo,true);

はい、かろうじて実装されています。 。 。 。 。 。 。 。 。 。しかし、一定期間運用すると、情報の取得が安定せず、一部のユーザーがアバターやニックネームを取得できなくなります。私は長い間考えてきましたが、問題がどこにあるのか

なのか、どこにあるのかわかりません

。 ? ? ? ? ?

あ、

file_get_contents

という関数に問題があって、

file_get_contents

を使って実装できたのですが、その後

curl

に切り替えたら、こうなりました。はるかに安定していますが、うまくいきません。

100%

の捕獲率に達するのはさまざまな要因によって引き起こされますが、基本的には許容範囲内です。

今日は時間が限られています。unionid複数のパブリックプラットフォームを開発するときに使用する必要があり、配布システムを定義してWeChatユーザーのアバターのニックネームやその他の情報を取得する別の方法があります。永続的なログイン状態の実現cookieと、配信システムクライアントのモール部分のショッピングカートの実装については、第2回で説明します。

システム アクセス パスの QR コードが添付されています。最初に参照してください。WeChat 経由でのみアクセスできます。システム アーキテクチャ、フロントエンドについて質問することもできます。 JSスクリプトと一連の機能モジュールの実装

著作権表示: この記事は、ブロガーとによるオリジナルの記事です。ブロガーの許可なく転載することはできません。

上記は、PHP + WeChat インターフェース (1) WeChat oauth2 インターフェースによって開発された WeChat 配信プラットフォームの分割説明を紹介しており、PHP チュートリアルに興味のある友人の参考になれば幸いです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。