颐和api

WechatService.cs 2.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. using System.Net.Http;
  2. using System.Threading.Tasks;
  3. using Microsoft.AspNetCore.Mvc;
  4. using Microsoft.Extensions.Logging;
  5. using Pivotal.Discovery.Client;
  6. using System.Collections.Generic;
  7. using System.Linq.Expressions;
  8. using System;
  9. namespace Api.SignToken
  10. {
  11. public class WechatService : IWechatService
  12. {
  13. DiscoveryHttpClientHandler _handler;
  14. ILogger<WechatService> _logger;
  15. /// <summary>
  16. /// URL
  17. /// </summary>
  18. private const string URL = "http://wechatapi/api/";
  19. public WechatService(IDiscoveryClient client, ILoggerFactory logFactory)
  20. {
  21. _handler = new DiscoveryHttpClientHandler(client, logFactory.CreateLogger<DiscoveryHttpClientHandler>());
  22. _logger = logFactory.CreateLogger<WechatService>();
  23. }
  24. private HttpClient GetClient()
  25. {
  26. var client = new HttpClient(_handler, false);
  27. return client;
  28. }
  29. /// <summary>
  30. /// 发送连接消息
  31. /// </summary>
  32. /// <param name="openid"></param>
  33. /// <param name="title"></param>
  34. /// <param name="content"></param>
  35. /// <param name="url"></param>
  36. /// <returns></returns>
  37. public async Task<string> SendNewsMsg(string openid, string title, string content, string url)
  38. {
  39. var client = GetClient();
  40. HttpContent postContent = new FormUrlEncodedContent(new Dictionary<string, string>()
  41. {
  42. {"openid", openid},
  43. {"title", title},
  44. {"content", content},
  45. {"url", url}
  46. });
  47. var response = await client.PostAsync(URL + "sendmessage/sendmessage", postContent);
  48. return await response.Content.ReadAsStringAsync();
  49. }
  50. /// <summary>
  51. /// 发送模板消息
  52. /// </summary>
  53. /// <param name="openid"></param>
  54. /// <param name="url"></param>
  55. /// <param name="jsondata"></param>
  56. /// <param name="templateid"></param>
  57. /// <returns></returns>
  58. public async Task<string> SendTemplateMsg(string openid, string url, string jsondata, string templateid)
  59. {
  60. var client = GetClient();
  61. HttpContent postContent = new FormUrlEncodedContent(new Dictionary<string, string>()
  62. {
  63. {"openid", openid},
  64. {"url", url},
  65. {"jsondata", jsondata},
  66. {"templateid", templateid}
  67. });
  68. var response = await client.PostAsync(URL + "templatemessage/sendtemplatemessage", postContent);
  69. return await response.Content.ReadAsStringAsync();
  70. }
  71. public async Task<string> GetUserInfo(string openid)
  72. {
  73. var client = GetClient();
  74. var result = await client.GetStringAsync(URL + "login/getuserinfo");
  75. return result;
  76. }
  77. }
  78. }