Blame view

Yi.Abp.Net8/framework/Yi.Framework.WeChat.MiniProgram/WeChatMiniProgramExtensions.cs 1.45 KB
515fceeb   “wangming”   框架初始化
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
  using System.Reflection;
  using System.Web;
  using Yi.Framework.WeChat.MiniProgram.Abstract;
  
  namespace Yi.Framework.WeChat.MiniProgram;
  
  public static class WeChatMiniProgramExtensions
  {
      /// <summary>
      /// 效验请求是否成功
      /// </summary>
      /// <param name="response"></param>
      /// <returns></returns>
      internal static void ValidateSuccess(this IErrorObjct response)
      {
  
          if (response.errcode != 0)
          {
              throw new WeChatMiniProgramException(response.errmsg);
          }
      }
  
      internal static string ToQueryString<T>(this T obj)
      {
          var properties = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
          var queryParams = new List<string>();
  
          foreach (var prop in properties)
          {
              var value = prop.GetValue(obj, null);
              if (value != null)
              {
                  // 处理集合
                  if (value is IEnumerable<object> enumerable)
                  {
                      foreach (var item in enumerable)
                      {
                          queryParams.Add($"{HttpUtility.UrlEncode(prop.Name)}={HttpUtility.UrlEncode(item.ToString())}");
                      }
                  }
                  else
                  {
                      queryParams.Add($"{HttpUtility.UrlEncode(prop.Name)}={HttpUtility.UrlEncode(value.ToString())}");
                  }
              }
          }
  
          return string.Join("&", queryParams);
      }
  }