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