C#のコード生成アプレット

  1   ///  <まとめ> 
  2   /// Bインタフェース-マイクロチャネルアプレットパラメータは、二次元コードを生成
   3。  ///  </要約> 
  4。  ///  <PARAM NAME = "access_tokenは"> </ PARAM> 
  5。  ///  <戻り値> </戻り> 
  6。  パブリック 静的 文字列 CreateWxCode(文字 access_tokenはroomId)
   7。 {
   8。      文字列 RET = ストリング.Empty;
   9       試みる
10       {
 11。          文字列ページConfigurationManager.AppSettings = " ページ"])(.ToString;
 12である 
13ことである          文字 DataJson = ストリング.Emptyは、
 14           // コードを必要とする用途の非常に多く、一時的使用またはビジネスシナリオ
 15           // アプレットコード生成インターフェース、永久的な、多くの一時的に無制限。
16           文字列の URL = " WXA / access_tokenはをgetwxacodeunlimit = " + access_tokenは、
 17。           DataJson = " { " ;
 18は           DataJson + = 文字列 .Format(" 'SCENE': '{0}' "  " 1234567 ")。
ストリング .Format(" '幅': '{0}' "  200である);
 20である           DataJson + = 文字列 .Format(" 'ページ': '{0}' "ページ); // 分岐アドレスにスキャンコード、このフィールドに記入していない場合には、(、シーンフィールドを入れて下さいパラメータ)「/」運ぶことができないパラメータの前にルートパスを充填しないで、デフォルトのホーム・ページジャンプ
21           DataJson + = 『line_color』:{ ;
 22           + = DataJson 文字列。フォーマット(" 'R&LT': '{0}' "  " 0 " );
 23である           DataJson + = 文字列。フォーマット( " 'G': '{0}' "  "0 " );
 24           DataJson + = 文字列 .Format(" 'B': '{0}' "  " 0 " );
 25           DataJson = + " } " ;
 26である           DataJson = + " } " ;
 27  
28  
29            jsonData = JsonConvert.Serializeobxxxxject(DataJson);
 30           // DataJson構成アプレット開発ドキュメント、Bインターフェイス参照:https://mp.weixin.qq.com/debug/wxadoc/dev/api/qrcode.html 
31である           RET = CreateWeChatQrCodeを( URL jsondata)。
32      }
 33は、      キャッチ(例外E)
 34である      {
 35           RET = e.Message;
 36       }
 37       リターン RET; // リターンアドレス像
38である }
 39  
40  
41である  ///  <まとめ> 
42である  /// 二次元コードの画像を返し
 43   @ /  </要約> 
44である  ///  <PARAM NAME = "URL"> </ param>の
45   ///  <PARAM NAME = "PARAM"> </ param>の
46です  ///  </戻り値> <返します>を
47   公共の 静的な 文字列 CreateWeChatQrCode(文字列のURL 文字列PARAM)
 48  {
 49        wechatapi = ConfigurationManager.AppSettings [ " wechatapi " ] .ToString();
50       ストリング qrcodepath = ConfigurationManager.AppSettings [ " qrcodepath " ] .ToString();
51       文字列 strURL = wechatapi + URL。
52       HttpWebRequestの要求。
53        imgName = ストリング.Empty。
54       パス= ストリング.Empty。
55は      試す
56      {
 57       リクエスト= (System.Net.HttpWebRequest)WebRequest.Create(strURL)。
58  
59  
60       request.Method = " POST " ;
61       request.ContentType = " アプリケーション/ JSON;のcharset = UTF-8 " 62       ストリング paraUrlCoded = PARAM。
63       // バイト[]ペイロード。
64       バイト []ペイロード= System.Text.Encoding.UTF8.GetBytes(paraUrlCoded)。
65       request.ContentLength = payload.Length。
66       ストリームライター=request.GetRequestStream();
 67       writer.Write(ペイロード0 payload.Length);
 68       writer.Close();
 69       System.Net.HttpWebResponse応答;
 70       応答= (System.Net.HttpWebResponse)request.GetResponse();
 71れます      S System.IO.Stream;
 72       S = response.GetResponseStream(); // リターン映像データストリーム
73は、 
74       バイト [] = StreamToBytes TT(S); // バイトへのデータストリーム[]
 75  
76  
77       // ファイル時間、同じ名前を防止するために、フロント名
78       imgName = DateTime.Now.ToString(" YYYYMMDDHHMMSS)+ .JPG ;
 79       // ファイルは仮想アプリケーション・カタログの現在のディレクトリに対して保存されている
80       パス= qrcodepath + EWM / " ;
 81  
82  
83       // ディレクトリを作成するためにベース・ディレクトリに対するアプリケーションの取得
84       文字列 imgpathを=システム.Web.Hosting.HostingEnvironment.MapPath(パス); // System.AppDomain.CurrentDomain.baxxxxseDirectory +パス;      // オブジェクトによってファイル名を取得する
85       IF(!Directory.Exists(imgpath))
 86       {
 87           Directory.CreateDirectory( imgpath);
 88       }
 89      System.IO.File.WriteAllBytes(HttpContext.Current.Server.MapPath(パス+ imgName)TT); // 応力が[]バイト画像として記憶されている
90       }
 91が      キャッチ(例外EX)
 92       {
 93           ExceptionPolicy.HandleException(EX LZExceptionType。システム
 94                " アプレットは、2次元コードがソース失敗生成:Lz.Product.LJXQJGF.BLL.Files.CreateWeChatQrCode方法エラー" );
 95       }
 96       リターンパス+ imgName;
 97  }
 98  
99  
100  
101  
102   ///  <まとめ> 
103   /// バイトへのデータストリーム[]
 104  ///  </要約> 
105   ///  <PARAM NAME = "ストリーム"> </ PARAM> 
106   ///  <戻る> </戻り> 
107   パブリック 静的 バイト[] StreamToBytes(ストリームstream)
 108  {
 109       リスト< バイト >バイト= 新しいリスト< バイト > ();
110       INTの TEMP = stream.ReadByte()。
111       ながら(!TEMP = - 1 112       {
 113           bytes.Add((バイト)TEMP)。
114           TEMP =stream.ReadByte();
115       }
 116       リターンbytes.ToArray()。
117   }

私の他のブログの記事を取得access_tokenはを参照してください。https://www.cnblogs.com/qinaqina/p/11610346.html

おすすめ

転載: www.cnblogs.com/qinaqina/p/11610356.html