AliIotFunction.cs 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. using System;
  2. using System.Collections.Generic;
  3. using Aop.Api;
  4. using Library;
  5. using Microsoft.AspNetCore.Http;
  6. using Aop.Api.Request;
  7. using Aop.Api.Response;
  8. using Aop.Api.Util;
  9. using MySystem.Models;
  10. using System.Linq;
  11. namespace MySystem
  12. {
  13. public class AliIotFunction
  14. {
  15. public readonly static AliIotFunction Instance = new AliIotFunction();
  16. private AliIotFunction()
  17. { }
  18. // public string Pid = "2088720140260314";
  19. private string AppId = "2021004109682585";
  20. private string PrivateKey = "MIIEpAIBAAKCAQEAvf75JGQL9IDg8xu2C6qWrIO3H4roSwpvwUeh6y2kQ8iH0gqQXlyLj13ku8pzY1H9JTSeARCsHSD/VJFxMoPOBO+/xGDV3CSdxhOE5Fu5E30ZZMA5XmnMKyN8q+MEh7refGuCmldedTmzr9mNw4HDjS1uqJoqYRl3eUEaC/Syl620iiaSh7Q9/rsT/qNcnP5hO9P3DWionNt78elmjLt0sBdBkQ10o2XwC5RuzBfP8DCBEdL/DPOOE4vtmLP1IdDI7qtjBhX8PdL+/IRxe/4OGvYSPnHW7JNlN970h2UN5i0Yu0AkidJvlS59nX9C1WJ4U37HiMnkMNXLB/Ubi5BkgQIDAQABAoIBAQC1itVKpWIa/a5z/Q2EtjqEmtK2jAcL9Ov11dlsm07zCcBlvXxW/bzIf6IYogiBZY0qKM21HNYoeygeCV8NMo3/f4pQPWr7j+1Fn88CWHZOneFOuLHYeeUBb0YoA6KHgtImNqAzk7oI7tq383uWzP4qfrfW2IAYCbp0HPWjaOvhKw7qrejcTPW0oCsPjm6nkjzW6FzjkPCwiiivvpC67EzpXKF8HnYyF1KMEuH6h7qZl4jtloW8CkgkwnBhc9iYhN/ygllYdPU9aRdThG7tFVCHft7cIq5F54pJoUm/ML3fpdVjFDAVGZFbkZyg4gkIYCLIEgTVt2W4Lfr8/61PimC1AoGBAOAt7Un2B3ouxN/31Z8ApcTL9QfElPcepTfKhwUDI+KRlygele1r7bIzlDgYVVrMSzzkoYD1vb0scc3hO1EBvURM9BbJJHRl9qncDbF0BPiznm688G26jNwLSn5sgloBV1scqWIK1vCSGw+x71Iy2PQBGlliNVwycFzGvLVTenlHAoGBANj26d25362Jvstq7VMIyYGHU9N/gG4k2Ngoxv2uDbeVb9qeTb0N8/w9mar9fD6Cg4Wr1yLoX3oZqkomxcVU0Zy2ihzf0dpyD9j6M0t+e0Qkvuw3b3RSHzHDEn/j00H2IPQB+uzkczruvOAo4X5YwkE5Jz19xiaPXn8hZmfEgBf3AoGAdJ+v6GAzt56JETLvUQ6XLnAkguwDyyOINCQKZdMiYgX3qwluWdtiBujKXPxbuya4pW8TjfFJyhZLBh38K8JJ4jReb1QowN0im289OGnxBCj9bQKh2ZPJH9hH4sk0bvpvpZidjcGx2+lGZr3ckNifASFpwcJTnCkpRzqkhXhuKJUCgYEAmh3iiB7VlXboMaTVygrO4JSZZf4G47aG1h05JM/zbHnZR4j1nZqAuqejNYP0Mo8RD+29100LLTd38E5UY9TZRKGhv9r5PVuSiEVKFJFWzFPxzued4xnGkNmJlZDm6s8EH3AcpxOsCqu1POGtM8umyR/pENP74j4rGNFH5eP+PYcCgYA84Die07zXP31rfOWWabjDMaq4bPMH9drzhjXdMYaFH3T6F1Ba52Iqsk5K526RdPM6eeR1dFPPotNhZMJPmg1PALNSjVBmKnklF+/y6c4eFOiUgTS/wyNpSlr/eKECsWPch9UlAkkIos5lq02pVAv4kK9WumSyXDe5Gu6a5pUC1A==";
  21. private string PublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvf75JGQL9IDg8xu2C6qWrIO3H4roSwpvwUeh6y2kQ8iH0gqQXlyLj13ku8pzY1H9JTSeARCsHSD/VJFxMoPOBO+/xGDV3CSdxhOE5Fu5E30ZZMA5XmnMKyN8q+MEh7refGuCmldedTmzr9mNw4HDjS1uqJoqYRl3eUEaC/Syl620iiaSh7Q9/rsT/qNcnP5hO9P3DWionNt78elmjLt0sBdBkQ10o2XwC5RuzBfP8DCBEdL/DPOOE4vtmLP1IdDI7qtjBhX8PdL+/IRxe/4OGvYSPnHW7JNlN970h2UN5i0Yu0AkidJvlS59nX9C1WJ4U37HiMnkMNXLB/Ubi5BkgQIDAQAB";
  22. public string AlipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAiXVtTk6opnYllnH/X40k/jSw/82WZ+lGbYQLYH/nVONFJ7Gr9C/dlKpJFIbS+vNDn+YLtM923KmEVSgf8zU0WrTkRjWvKEiyLswWZVqSZW5Jfon1e2SfjNrAVi6XBZa7urAItKQsdD2vFFuyG/ohlXBL103xC1wnjvECD/iholoruEFOLyfobJKTY/6iyrKeOElem1V7OWl6gdjG2oozj3nbVZhtkQvPJECYlolH96eK2mieTkFK82aZ5Tdzx1LPk/3hxRAmzz/9X7xfXdOly88hKBmW8LC9RhTlOWbrXJhhFz13A4brnbnOiY/X7b2OkAYifammc2uh0AIJlCmBTQIDAQAB";
  23. //"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnxj/9qwVfgoUh/y2W89L6BkRAFljhNhgPdyPuBV64bfQNN1PjbCzkIM6qRdKBoLPXmKKMiFYnkd6rAoprih3/PrQEB/VsW8OoM8fxn67UDYuyBTqA23MML9q1+ilIZwBC2AQ2UBVOrFXfFl75p6/B5KsiNG9zpgmLCUYuLkxpLQIDAQAB";
  24. #region 间连iot设备和间连商户绑定
  25. public string IotBind(string Smid, string DeviceId)
  26. {
  27. IAopClient client = new DefaultAopClient("https://openapi.alipay.com/gateway.do", AppId, PrivateKey, "json", "1.0", "RSA2", AlipayPublicKey, "utf-8", false);
  28. AlipayMerchantIndirectIotBindRequest request = new AlipayMerchantIndirectIotBindRequest() ;
  29. request.BizContent="{" +
  30. " \"smid\":\"" + Smid + "\"," +
  31. " \"mode\":\"SDK\"," +
  32. " \"device_id\":\"" + DeviceId + "\"," +
  33. " \"supplier_id\":\"202208101504455785\"" +
  34. "}";
  35. function.WriteLog(request.BizContent, "间连iot设备和间连商户绑定");
  36. string result = "";
  37. try
  38. {
  39. AlipayMerchantIndirectIotBindResponse response=client.Execute(request);
  40. result = response.Body;
  41. }
  42. catch (Exception ex)
  43. {
  44. function.WriteLog(ex.ToString(), "间连iot设备和间连商户绑定异常");
  45. result = "";
  46. }
  47. return result;
  48. }
  49. #endregion
  50. #region 间连iot设备和间连商户解绑
  51. public string IotUnBind(string Smid, string DeviceId)
  52. {
  53. IAopClient client = new DefaultAopClient("https://openapi.alipay.com/gateway.do", AppId, PrivateKey, "json", "1.0", "RSA2", AlipayPublicKey, "utf-8", false);
  54. AlipayMerchantIndirectIotUnbindRequest request= new AlipayMerchantIndirectIotUnbindRequest() ;
  55. request.BizContent="{" +
  56. " \"smid\":\"" + Smid + "\"," +
  57. " \"mode\":\"SDK\"," +
  58. " \"device_id\":\"" + DeviceId + "\"," +
  59. " \"supplier_id\":\"202208101504455785\"" +
  60. "}";
  61. function.WriteLog(request.BizContent, "间连iot设备和间连商户解绑");
  62. string result = "";
  63. try
  64. {
  65. AlipayMerchantIndirectIotUnbindResponse response=client.Execute(request);
  66. result = response.Body;
  67. }
  68. catch (Exception ex)
  69. {
  70. function.WriteLog(ex.ToString(), "间连iot设备和间连商户解绑异常");
  71. result = "";
  72. }
  73. return result;
  74. }
  75. #endregion
  76. #region 查询设备基础信息
  77. public string IotDeviceQuery(string Sn)
  78. {
  79. IAopClient client = new DefaultAopClient("https://openapi.alipay.com/gateway.do", AppId, PrivateKey, "json", "1.0", "RSA2", AlipayPublicKey, "utf-8", false);
  80. AlipayCommerceIotDeviceBaseinfoQueryRequest request= new AlipayCommerceIotDeviceBaseinfoQueryRequest() ;
  81. request.BizContent="{" +
  82. " \"sn\":\"" + Sn + "\"," +
  83. " \"supplier_id\":\"202208101504455785\"" +
  84. "}";
  85. function.WriteLog(request.BizContent, "查询设备基础信息");
  86. string result = "";
  87. try
  88. {
  89. AlipayCommerceIotDeviceBaseinfoQueryResponse response=client.Execute(request);
  90. result = response.Body;
  91. }
  92. catch (Exception ex)
  93. {
  94. function.WriteLog(ex.ToString(), "查询设备基础信息异常");
  95. result = "";
  96. }
  97. return result;
  98. }
  99. #endregion
  100. #region 到账播报
  101. public string IotTradeVoice(string BizTid, string Smid, string TradeNo, string Amount, string TradeType = "ALIPAY_TRADE")
  102. {
  103. IAopClient client = new DefaultAopClient("https://openapi.alipay.com/gateway.do", AppId, PrivateKey, "json", "1.0", "RSA2", AlipayPublicKey, "utf-8", false);
  104. AlipayCommerceIotDeviceTradevoiceSendRequest request= new AlipayCommerceIotDeviceTradevoiceSendRequest() ;
  105. request.BizContent="{" +
  106. " \"biz_tid\":\"" + BizTid + "\"," +
  107. " \"smid\":\"" + Smid + "\"," +
  108. " \"trade_type\":\"" + TradeType + "\"," +
  109. " \"trade_id\":\"" + TradeNo + "\"," +
  110. " \"amount\":\"" + Amount + "\"," +
  111. " \"msg_id\":\"202309190006284875\"" +
  112. "}";
  113. function.WriteLog(request.BizContent, "到账播报");
  114. string result = "";
  115. try
  116. {
  117. AlipayCommerceIotDeviceTradevoiceSendResponse response=client.Execute(request);
  118. result = response.Body;
  119. }
  120. catch (Exception ex)
  121. {
  122. function.WriteLog(ex.ToString(), "到账播报异常");
  123. result = "";
  124. }
  125. return result;
  126. }
  127. #endregion
  128. #region 图片上传
  129. public string UploadPic(string path)
  130. {
  131. IAopClient client = new DefaultAopClient("https://openapi.alipay.com/gateway.do", AppId, PrivateKey, "json", "1.0", "RSA2", AlipayPublicKey, "utf-8", false);
  132. string fileName = path.Substring(path.LastIndexOf("/") + 1);
  133. string imageBase64 = function.imageToBase64String(function.getPath(path));
  134. // imageBase64 = imageBase64.Substring(imageBase64.IndexOf(";base64,") + 8);
  135. AntMerchantExpandIndirectImageUploadRequest request = new AntMerchantExpandIndirectImageUploadRequest();
  136. FileItem imageContent = new FileItem(fileName,Convert.FromBase64String(imageBase64));
  137. request.ImageContent = imageContent;
  138. request.ImageType = "jpg";
  139. AntMerchantExpandIndirectImageUploadResponse response = client.Execute(request);
  140. return fileName;
  141. }
  142. #endregion
  143. }
  144. }