MqttRequest.cs 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667
  1. using Edge.Core.Domain.FccOrderInfo;
  2. using HengshanPaymentTerminal.Http.Response;
  3. using Newtonsoft.Json.Linq;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Text.Json;
  9. using System.Threading.Tasks;
  10. namespace HengshanPaymentTerminal.Mqtt.Request
  11. {
  12. /// <summary>
  13. /// 云端 MQTT 数据对象
  14. /// </summary>
  15. public class MqttRequest
  16. {
  17. /// <summary>
  18. /// 类型
  19. /// </summary>
  20. public MQTT_TYPE type { get; set; }
  21. /// <summary>
  22. /// 数据
  23. /// </summary>
  24. public string data { get; set; }
  25. public string? UserName { get; set; }
  26. public string? UserPhoneNumber { get; set; }
  27. }
  28. /// <summary>
  29. /// 标识 MQTT 数据类型
  30. /// </summary>
  31. public enum MQTT_TYPE
  32. {
  33. /// <summary>
  34. /// 授权
  35. /// </summary>
  36. AUTHORIZATION = 1,
  37. /// <summary>
  38. /// 取消授权
  39. /// </summary>
  40. UNAUTHORIZATION = 2,
  41. /// <summary>
  42. /// 已支付发送订单信息
  43. /// </summary>
  44. PAID = 3,
  45. /// <summary>
  46. /// 退款发送订单信息
  47. /// </summary>
  48. REFUND = 4
  49. }
  50. /// <summary>
  51. /// 云端 Mqtt 发送授权请求数据对象
  52. /// </summary>
  53. public class MqttAuthorizationRequest
  54. {
  55. /// <summary>
  56. /// 订单唯一标识符
  57. /// </summary>
  58. public long Id { get; set; }
  59. /// <summary>
  60. /// 油站唯一标识符
  61. /// </summary>
  62. public Guid Buid { get; set; }
  63. /// <summary>
  64. /// 用户ID
  65. /// </summary>
  66. public long MiniProgramID { get; set; }
  67. /// <summary>
  68. /// 枪号
  69. /// </summary>
  70. public long NozzleId { get; set; }
  71. /// <summary>
  72. /// 油品ID
  73. /// </summary>
  74. public long ProductId { get; set; }
  75. /// <summary>
  76. /// 实际支付金额
  77. /// </summary>
  78. public decimal? ActualPaymentAmount { get; set; }
  79. /// <summary>
  80. /// 授权时间
  81. /// </summary>
  82. public DateTime? AuthorizationTime { get; set; }
  83. /// <summary>
  84. /// 创建人
  85. /// </summary>
  86. public string? CreateBy { get; set; }
  87. /// <summary>
  88. /// 订单创建时间
  89. /// </summary>
  90. public DateTime? CreateTime { get; set; }
  91. /// <summary>
  92. /// 挂枪时间
  93. /// </summary>
  94. public DateTime? FuelItemTransactionEndTime { get; set; }
  95. /// <summary>
  96. /// 是否删除
  97. /// </summary>
  98. public sbyte? IsDeleted { get; set; } = 0;
  99. /// <summary>
  100. /// 订单状态
  101. /// </summary>
  102. public transactionsORDERSTATUS OrderStatus { get; set; }
  103. /// <summary>
  104. /// 订单类型
  105. /// </summary>
  106. public transactionsORDERTYPE OrderType { get; set; }
  107. /// <summary>
  108. /// 原金额
  109. /// </summary>
  110. public decimal OriginalAmount { get; set; }
  111. /// <summary>
  112. /// 支付方式
  113. /// </summary>
  114. public long? PaymentMethod { get; set; }
  115. /// <summary>
  116. /// 油品名称
  117. /// </summary>
  118. public string ProductName { get; set; }
  119. /// <summary>
  120. /// 原升数
  121. /// </summary>
  122. public decimal Qty { get; set; }
  123. /// <summary>
  124. /// 实际加油升数
  125. /// </summary>
  126. public decimal? OriginalQty { get; set; }
  127. /// <summary>
  128. /// 退款金额
  129. /// </summary>
  130. public decimal? RefundAmount { get; set; }
  131. /// <summary>
  132. /// 订单流水号
  133. /// </summary>
  134. public string TransactionNumber { get; set; }
  135. /// <summary>
  136. /// 交易时间
  137. /// </summary>
  138. public DateTime? TransactionTime { get; set; }
  139. /// <summary>
  140. /// 加密字符串,用于验证金额是否篡改
  141. /// </summary>
  142. public string secret { get; set; }
  143. /// <summary>
  144. /// 支付返回结果
  145. /// </summary>
  146. public string RawResult { get; set; }
  147. /// <summary>
  148. /// 错误信息
  149. /// </summary>
  150. public string ErrorDetail { get; set; }
  151. /// <summary>
  152. /// 支付结果代码
  153. /// </summary>
  154. public string ResultCode { get; set; }
  155. /// <summary>
  156. /// 是否授权
  157. /// </summary>
  158. public AuthorizationStatus authorizationStatus { get; set; }
  159. /// <summary>
  160. /// 单价
  161. /// </summary>
  162. public decimal Price { get; set; }
  163. public FccOrderInfo ToComponent(DateTime authorizationTime)
  164. {
  165. return new FccOrderInfo()
  166. {
  167. AuthorizationTime = authorizationTime,
  168. PaymentTime = TransactionTime,
  169. NozzleNum = (int)NozzleId,
  170. OilName = ProductName,
  171. PaymentStatus = 1,
  172. PayType = (int?)PaymentMethod,
  173. CloundOrderId = Id,
  174. Amount = OriginalAmount,
  175. Volume = Qty,
  176. AmountPayable = ActualPaymentAmount,
  177. UploadState = 1,
  178. IsDelete = 0,
  179. Price = this.Price
  180. };
  181. }
  182. }
  183. /// <summary>
  184. /// 云端发送取消授权数据对象
  185. /// </summary>
  186. public class MqttUnAhorizationRequest
  187. {
  188. /// <summary>
  189. /// 订单唯一标识符
  190. /// </summary>
  191. public long Id { get; set; }
  192. /// <summary>
  193. /// 油站唯一标识符
  194. /// </summary>
  195. public Guid Buid { get; set; }
  196. /// <summary>
  197. /// 用户ID
  198. /// </summary>
  199. public long MiniProgramID { get; set; }
  200. /// <summary>
  201. /// 枪号
  202. /// </summary>
  203. public long NozzleId { get; set; }
  204. /// <summary>
  205. /// 油品ID
  206. /// </summary>
  207. public long ProductId { get; set; }
  208. /// <summary>
  209. /// 实际支付金额
  210. /// </summary>
  211. public decimal? ActualPaymentAmount { get; set; }
  212. /// <summary>
  213. /// 授权时间
  214. /// </summary>
  215. public DateTime? AuthorizationTime { get; set; }
  216. /// <summary>
  217. /// 创建人
  218. /// </summary>
  219. public string? CreateBy { get; set; }
  220. /// <summary>
  221. /// 订单创建时间
  222. /// </summary>
  223. public DateTime? CreateTime { get; set; }
  224. /// <summary>
  225. /// 挂枪时间
  226. /// </summary>
  227. public DateTime? FuelItemTransactionEndTime { get; set; }
  228. /// <summary>
  229. /// 是否删除
  230. /// </summary>
  231. public sbyte? IsDeleted { get; set; } = 0;
  232. /// <summary>
  233. /// 订单状态
  234. /// </summary>
  235. public transactionsORDERSTATUS OrderStatus { get; set; }
  236. /// <summary>
  237. /// 订单类型
  238. /// </summary>
  239. public transactionsORDERTYPE OrderType { get; set; }
  240. /// <summary>
  241. /// 原金额
  242. /// </summary>
  243. public decimal OriginalAmount { get; set; }
  244. /// <summary>
  245. /// 支付方式
  246. /// </summary>
  247. public long? PaymentMethod { get; set; }
  248. /// <summary>
  249. /// 油品名称
  250. /// </summary>
  251. public string ProductName { get; set; }
  252. /// <summary>
  253. /// 原升数
  254. /// </summary>
  255. public decimal Qty { get; set; }
  256. /// <summary>
  257. /// 实际加油升数
  258. /// </summary>
  259. public decimal? OriginalQty { get; set; }
  260. /// <summary>
  261. /// 退款金额
  262. /// </summary>
  263. public decimal? RefundAmount { get; set; }
  264. /// <summary>
  265. /// 订单流水号
  266. /// </summary>
  267. public string TransactionNumber { get; set; }
  268. /// <summary>
  269. /// 交易时间
  270. /// </summary>
  271. public DateTime? TransactionTime { get; set; }
  272. /// <summary>
  273. /// 加密字符串,用于验证金额是否篡改
  274. /// </summary>
  275. public string secret { get; set; }
  276. /// <summary>
  277. /// 支付返回结果
  278. /// </summary>
  279. public string RawResult { get; set; }
  280. /// <summary>
  281. /// 错误信息
  282. /// </summary>
  283. public string ErrorDetail { get; set; }
  284. /// <summary>
  285. /// 支付结果代码
  286. /// </summary>
  287. public string ResultCode { get; set; }
  288. /// <summary>
  289. /// 是否授权
  290. /// </summary>
  291. public AuthorizationStatus authorizationStatus { get; set; }
  292. /// <summary>
  293. /// 单价
  294. /// </summary>
  295. public decimal? Price { get; set; }
  296. }
  297. /// <summary>
  298. /// 云端发送订单已支付数据对象
  299. /// </summary>
  300. public class MqttPaidRequest : MqttRequest
  301. {
  302. /// <summary>
  303. /// 订单唯一标识符
  304. /// </summary>
  305. public long Id { get; set; }
  306. /// <summary>
  307. /// 油站唯一标识符
  308. /// </summary>
  309. public Guid Buid { get; set; }
  310. /// <summary>
  311. /// 用户ID
  312. /// </summary>
  313. public long MiniProgramID { get; set; }
  314. /// <summary>
  315. /// 枪号
  316. /// </summary>
  317. public long NozzleId { get; set; }
  318. /// <summary>
  319. /// 油品ID
  320. /// </summary>
  321. public long ProductId { get; set; }
  322. /// <summary>
  323. /// 实际支付金额
  324. /// </summary>
  325. public decimal? ActualPaymentAmount { get; set; }
  326. /// <summary>
  327. /// 授权时间
  328. /// </summary>
  329. public DateTime? AuthorizationTime { get; set; }
  330. /// <summary>
  331. /// 创建人
  332. /// </summary>
  333. public string? CreateBy { get; set; }
  334. /// <summary>
  335. /// 订单创建时间
  336. /// </summary>
  337. public DateTime? CreateTime { get; set; }
  338. /// <summary>
  339. /// 挂枪时间
  340. /// </summary>
  341. public DateTime? FuelItemTransactionEndTime { get; set; }
  342. /// <summary>
  343. /// 是否删除
  344. /// </summary>
  345. public sbyte? IsDeleted { get; set; } = 0;
  346. /// <summary>
  347. /// 订单状态
  348. /// </summary>
  349. public transactionsORDERSTATUS OrderStatus { get; set; }
  350. /// <summary>
  351. /// 订单类型
  352. /// </summary>
  353. public transactionsORDERTYPE OrderType { get; set; }
  354. /// <summary>
  355. /// 原金额
  356. /// </summary>
  357. public decimal OriginalAmount { get; set; }
  358. /// <summary>
  359. /// 支付方式
  360. /// </summary>
  361. public long? PaymentMethod { get; set; }
  362. /// <summary>
  363. /// 油品名称
  364. /// </summary>
  365. public string ProductName { get; set; }
  366. /// <summary>
  367. /// 原升数
  368. /// </summary>
  369. public decimal Qty { get; set; }
  370. /// <summary>
  371. /// 实际加油升数
  372. /// </summary>
  373. public decimal? OriginalQty { get; set; }
  374. /// <summary>
  375. /// 退款金额
  376. /// </summary>
  377. public decimal? RefundAmount { get; set; }
  378. /// <summary>
  379. /// 订单流水号
  380. /// </summary>
  381. public string TransactionNumber { get; set; }
  382. /// <summary>
  383. /// 交易时间
  384. /// </summary>
  385. public DateTime? TransactionTime { get; set; }
  386. /// <summary>
  387. /// 加密字符串,用于验证金额是否篡改
  388. /// </summary>
  389. public string secret { get; set; }
  390. /// <summary>
  391. /// 支付返回结果
  392. /// </summary>
  393. public string RawResult { get; set; }
  394. /// <summary>
  395. /// 错误信息
  396. /// </summary>
  397. public string ErrorDetail { get; set; }
  398. /// <summary>
  399. /// 支付结果代码
  400. /// </summary>
  401. public string ResultCode { get; set; }
  402. /// <summary>
  403. /// 是否授权
  404. /// </summary>
  405. public AuthorizationStatus authorizationStatus { get; set; }
  406. /// <summary>
  407. /// 单价
  408. /// </summary>
  409. public decimal? Price { get; set; }
  410. public decimal? FuelItemPumpTotalizerVolume { get; set; }
  411. ///// <summary>
  412. ///// 用户名
  413. ///// </summary>
  414. //public string? UserName { get; set; }
  415. ///// <summary>
  416. ///// 手机号
  417. ///// </summary>
  418. //public string? UserPhoneNumber { get; set; }
  419. }
  420. /// <summary>
  421. /// 云端发送订单退款数据对象
  422. /// </summary>
  423. public class MqttRefundRequest : MqttRequest
  424. {
  425. /// <summary>
  426. /// 订单唯一标识符
  427. /// </summary>
  428. public long Id { get; set; }
  429. /// <summary>
  430. /// 油站唯一标识符
  431. /// </summary>
  432. public Guid Buid { get; set; }
  433. /// <summary>
  434. /// 用户ID
  435. /// </summary>
  436. public long MiniProgramID { get; set; }
  437. /// <summary>
  438. /// 枪号
  439. /// </summary>
  440. public long NozzleId { get; set; }
  441. /// <summary>
  442. /// 油品ID
  443. /// </summary>
  444. public long ProductId { get; set; }
  445. /// <summary>
  446. /// 实际支付金额
  447. /// </summary>
  448. public decimal? ActualPaymentAmount { get; set; }
  449. /// <summary>
  450. /// 授权时间
  451. /// </summary>
  452. public DateTime? AuthorizationTime { get; set; }
  453. /// <summary>
  454. /// 创建人
  455. /// </summary>
  456. public string? CreateBy { get; set; }
  457. /// <summary>
  458. /// 订单创建时间
  459. /// </summary>
  460. public DateTime? CreateTime { get; set; }
  461. /// <summary>
  462. /// 挂枪时间
  463. /// </summary>
  464. public DateTime? FuelItemTransactionEndTime { get; set; }
  465. /// <summary>
  466. /// 是否删除
  467. /// </summary>
  468. public sbyte? IsDeleted { get; set; } = 0;
  469. /// <summary>
  470. /// 订单状态
  471. /// </summary>
  472. public transactionsORDERSTATUS OrderStatus { get; set; }
  473. /// <summary>
  474. /// 订单类型
  475. /// </summary>
  476. public transactionsORDERTYPE OrderType { get; set; }
  477. /// <summary>
  478. /// 原金额
  479. /// </summary>
  480. public decimal OriginalAmount { get; set; }
  481. /// <summary>
  482. /// 支付方式
  483. /// </summary>
  484. public long? PaymentMethod { get; set; }
  485. /// <summary>
  486. /// 油品名称
  487. /// </summary>
  488. public string ProductName { get; set; }
  489. /// <summary>
  490. /// 原升数
  491. /// </summary>
  492. public decimal Qty { get; set; }
  493. /// <summary>
  494. /// 实际加油升数
  495. /// </summary>
  496. public decimal? OriginalQty { get; set; }
  497. /// <summary>
  498. /// 退款金额
  499. /// </summary>
  500. public decimal? RefundAmount { get; set; }
  501. /// <summary>
  502. /// 订单流水号
  503. /// </summary>
  504. public string TransactionNumber { get; set; }
  505. /// <summary>
  506. /// 交易时间
  507. /// </summary>
  508. public DateTime? TransactionTime { get; set; }
  509. /// <summary>
  510. /// 加密字符串,用于验证金额是否篡改
  511. /// </summary>
  512. public string secret { get; set; }
  513. /// <summary>
  514. /// 支付返回结果
  515. /// </summary>
  516. public string RawResult { get; set; }
  517. /// <summary>
  518. /// 错误信息
  519. /// </summary>
  520. public string ErrorDetail { get; set; }
  521. /// <summary>
  522. /// 支付结果代码
  523. /// </summary>
  524. public string ResultCode { get; set; }
  525. /// <summary>
  526. /// 是否授权
  527. /// </summary>
  528. public AuthorizationStatus authorizationStatus { get; set; }
  529. /// <summary>
  530. /// 单价
  531. /// </summary>
  532. public decimal? Price { get; set; }
  533. ///// <summary>
  534. ///// 用户名
  535. ///// </summary>
  536. //public string? UserName { get; set; }
  537. ///// <summary>
  538. ///// 手机号
  539. ///// </summary>
  540. //public string? UserPhoneNumber { get; set; }
  541. }
  542. }