ホームページ > WeChat アプレット > WeChatの開発 > 開発者になるためのWeChatパブリックプラットフォーム開発認定資格の詳細説明.Netコード解析

開発者になるためのWeChatパブリックプラットフォーム開発認定資格の詳細説明.Netコード解析

高洛峰
リリース: 2017-03-10 14:56:46
オリジナル
1523 人が閲覧しました

この記事では主に、WeChat パブリック プラットフォームの開発と開発者になるための認定のための .Net コード分析について詳しく説明します。興味のある友人は、WeChat パブリック サービス プラットフォームの開発と開発者になるための認定を取得するために

.Net を参照してください。具体的な内容は以下の通りです

これらのコードは認証開始時に一度だけ使用され、今後は使用されません:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

const string Token = "XXXXX";//你的token

protected void Page_Load(object sender, EventArgs e)

{

  string postStr = "";

  if (Request.HttpMethod.ToLower() == "post")

  {

    System.IO.Stream s = System.Web.HttpContext.Current.Request.InputStream;

    byte[] b = new byte[s.Length];

    s.Read(b, 0, (int)s.Length);

    postStr = System.Text.Encoding.UTF8.GetString(b);

    if (!string.IsNullOrEmpty(postStr))

    {

      //ResponseMsg(postStr);

      Response.Write(ResponseMsg(postStr));

      Response.End();

    }

   //WriteLog("postStr:" + postStr);

  }

  else

  {

    Valid();

  }

}   

  

/// <summary>

/// 验证微信签名

/// </summary>

/// * 将token、timestamp、nonce三个参数进行字典序排序

/// * 将三个参数字符串拼接成一个字符串进行sha1加密

/// * 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。

/// <returns></returns>

private bool CheckSignature()

{

  string signature = Request.QueryString["signature"].ToString();

  string timestamp = Request.QueryString["timestamp"].ToString();

  string nonce = Request.QueryString["nonce"].ToString();

  string[] ArrTmp = { Token, timestamp, nonce };

  Array.Sort(ArrTmp);   //字典排序

  string tmpStr = string.Join("", ArrTmp);

  tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");

  tmpStr = tmpStr.ToLower();

  if (tmpStr == signature)

  {

    return true;

  }

  else

  {

    return false;

  }

}

.private void Valid()

{

  string echoStr = Request.QueryString["echoStr"].ToString();

  if (CheckSignature())

  {

    if (!string.IsNullOrEmpty(echoStr))

    {

      Response.Write(echoStr);

      Response.End();

    }

  }

}   

  

/// <summary>

/// 写日志(用于跟踪)

/// </summary>

private void WriteLog(string strMemo)

{

  string filename = Server.MapPath("/logs/log.txt");

  if (!Directory.Exists(Server.MapPath("//logs//")))

    Directory.CreateDirectory("//logs//");

  StreamWriter sr = null;

  try

  {

    if (!File.Exists(filename))

    {

      sr = File.CreateText(filename);

    }

    else

    {

      sr = File.AppendText(filename);

    }

    sr.WriteLine(strMemo);

  }

  catch

  {

  

  }

  finally

  {

    if (sr != null)

      sr.Close();

  }

}

ログイン後にコピー

上記がこの記事の全内容です。皆さんの学習に役立つことを願っており、皆さんも PHP の中国語 Web サイトをサポートしていただければ幸いです。

以上が開発者になるためのWeChatパブリックプラットフォーム開発認定資格の詳細説明.Netコード解析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート