ホームページ >バックエンド開発 >C#.Net チュートリアル >.Net は WeChat JS-SDK 共有関数コード表示を実装します

.Net は WeChat JS-SDK 共有関数コード表示を実装します

巴扎黑
巴扎黑オリジナル
2017-09-18 10:14:101845ブラウズ

この記事は主に、WeChat JS-SDK 共有機能の .Net 実装コードに関する関連情報を紹介します。必要な友人は参照してください

JS-SDK インターフェイスとは何ですか?

開発者を容易にするため。写真の撮影、写真の選択、音声、位置情報などの携帯電話システムの機能など、WeChat の Web ページ (WeChat ブラウザに基づいてアクセスされる Web ページ) の機能を実装し、開発者が WeChat 共有を直接使用しやすくします。 、スキャンおよびその他の WeChat 固有の機能 WeChat は JS-SDK を開始しました。全体的な開発パッケージは開発者にとって使いやすいものです。

共有機能

公式ドキュメントにはphp、java、node.js、pythonのサンプルコードが提供されていますが、大多数の.netユーザーのニーズを満たすためにC#バージョンはありません。 php版のサンプルコードロジックを.net版にコピーし、Webフロントエンドに共有機能を追加しましたので、皆様のお役に立てれば幸いです。

プログラムの実装

フローチャート

プログラムの主要なクラスはJSSDKで、これにはサーバー側のリクエスト認証のためのすべての論理プロセスが含まれています。以下はプロセスのフローチャートです:

キーコード分析

サードパーティサーバーとWeChatサーバー間のデータ送信のセキュリティを確保するために、すべてのWeChatインターフェースはhttpsを使用して呼び出されるため、.netは上位バージョン(.Net 4.5+)ネットワークを参照します。 http リクエスト用のパッケージ。


private string httpGet(string url)
{
  if (url.StartsWith("https"))
    System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;

  HttpClient httpClient = new HttpClient();
  httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
  HttpResponseMessage response = httpClient.GetAsync(url).Result;

  if (response.IsSuccessStatusCode)
  {
    string result = response.Content.ReadAsStringAsync().Result;
    return result;
  }
  return null;
}

access_token を取得するには、まずローカルの access_token.aspx から検索します。存在しない場合、または期限切れ (7000 秒) の場合は、再度 WeChat サーバーにアクセスして取得します。


private string getAccessToken()
{
  string accessToken = string.Empty;
  var data = JObject.Parse(getAspxFile("access_token.aspx", ASPX_HEAD[1]));
  if (data != null && long.Parse(data["expire_time"].ToString()) < Utils.ConvertTimeStamp(DateTime.Now))
  {
    string url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="
      + this.appId + "&secret=" + this.appSecret;
    var jRes = JObject.Parse(httpGet(url));
    accessToken = jRes["access_token"].ToString();
    if (!string.IsNullOrEmpty(accessToken))
    {
      data["expire_time"] = Utils.ConvertTimeStamp(new DateTime()) + 7000;
      data["access_token"] = accessToken;
      setAspxFile("access_token.aspx", data.ToString(), ASPX_HEAD[1]);
    }
  }
  else
    accessToken = data["access_token"].ToString();
  return accessToken;
}

jsapi_ticket を取得します。原理は access_token と同じです。


りー

以上が.Net は WeChat JS-SDK 共有関数コード表示を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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