UnionPaySettlementPushRequest.cs 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. using System;
  2. using System.Collections.Generic;
  3. namespace MySystem.Entity.UnionPay
  4. {
  5. /// <summary>
  6. /// 交易结算实时推送请求
  7. /// </summary>
  8. public class UnionPaySettlementPushRequest
  9. {
  10. /// <summary>
  11. /// 推送类型,0:交易 1:结算
  12. /// </summary>
  13. public int type { get; set; }
  14. /// <summary>
  15. /// 详细信息
  16. /// </summary>
  17. public object detailInfo { get; set; }
  18. /// <summary>
  19. /// 将detailInfo转换为TransactionDetailInfo
  20. /// </summary>
  21. /// <returns>TransactionDetailInfo对象</returns>
  22. public TransactionDetailInfo ToTransactionDetailInfo()
  23. {
  24. if (type != 0)
  25. {
  26. throw new InvalidOperationException("当前推送类型不是交易数据");
  27. }
  28. return Newtonsoft.Json.JsonConvert.DeserializeObject<TransactionDetailInfo>(Newtonsoft.Json.JsonConvert.SerializeObject(detailInfo));
  29. }
  30. /// <summary>
  31. /// 将detailInfo转换为SettlementDetailInfo
  32. /// </summary>
  33. /// <returns>SettlementDetailInfo对象</returns>
  34. public SettlementDetailInfo ToSettlementDetailInfo()
  35. {
  36. if (type != 1)
  37. {
  38. throw new InvalidOperationException("当前推送类型不是结算数据");
  39. }
  40. return Newtonsoft.Json.JsonConvert.DeserializeObject<SettlementDetailInfo>(Newtonsoft.Json.JsonConvert.SerializeObject(detailInfo));
  41. }
  42. }
  43. /// <summary>
  44. /// 交易结算基础信息
  45. /// </summary>
  46. public class DetailInfo
  47. {
  48. /// <summary>
  49. /// 直属代理编号
  50. /// </summary>
  51. public string agentId { get; set; }
  52. /// <summary>
  53. /// 交易金额(单位:分)
  54. /// </summary>
  55. public long amount { get; set; }
  56. /// <summary>
  57. /// 业务员编号
  58. /// </summary>
  59. public string keeperId { get; set; }
  60. /// <summary>
  61. /// 商户编号
  62. /// </summary>
  63. public string merchantId { get; set; }
  64. /// <summary>
  65. /// 商户名称
  66. /// </summary>
  67. public string merchantName { get; set; }
  68. /// <summary>
  69. /// 乐刷交易单号
  70. /// </summary>
  71. public string orderId { get; set; }
  72. /// <summary>
  73. /// 交易状态:5 支付成功,11 支付失败,3 退款成功,31 退款中,32 退款失败,
  74. /// 40 预授权成功,41 预授权失败,42 预授权撤销成功,43 预授权撤销失败,44 预授权完成成功,
  75. /// 45 预授权完成失败,48 预授权完成撤销成功,54 预授权完成退款订单
  76. /// </summary>
  77. public int state { get; set; }
  78. /// <summary>
  79. /// 交易时间
  80. /// </summary>
  81. public string time { get; set; }
  82. /// <summary>
  83. /// 一级代理编号
  84. /// </summary>
  85. public string topAgentId { get; set; }
  86. /// <summary>
  87. /// 交易流水号
  88. /// </summary>
  89. public string transactionId { get; set; }
  90. }
  91. /// <summary>
  92. /// 交易数据详细信息
  93. /// </summary>
  94. public class TransactionDetailInfo : DetailInfo
  95. {
  96. /// <summary>
  97. /// 备注信息
  98. /// </summary>
  99. public string attach { get; set; }
  100. /// <summary>
  101. /// 刷卡交易卡类型:0-借记卡,2-贷记卡,3-境外卡,4未知
  102. /// </summary>
  103. public int? cardType { get; set; }
  104. /// <summary>
  105. /// 码牌编号
  106. /// </summary>
  107. public string qrcodeNo { get; set; }
  108. /// <summary>
  109. /// 支付方式:1-刷卡,2-微信,3-支付宝,6-银联二维码
  110. /// </summary>
  111. public int? payType { get; set; }
  112. /// <summary>
  113. /// 乐刷sn
  114. /// </summary>
  115. public string pinpadUuid { get; set; }
  116. /// <summary>
  117. /// pos_sn
  118. /// </summary>
  119. public string posSn { get; set; }
  120. /// <summary>
  121. /// t0标识: 1、t0 ; 0 T1
  122. /// </summary>
  123. public int? t0Flag { get; set; }
  124. /// <summary>
  125. /// 交易类型:1-支付, 2-退款
  126. /// </summary>
  127. public int? tradeType { get; set; }
  128. }
  129. /// <summary>
  130. /// 结算数据详细信息
  131. /// </summary>
  132. public class SettlementDetailInfo : DetailInfo
  133. {
  134. /// <summary>
  135. /// 商户固定手续费,单位:万分之一分
  136. /// </summary>
  137. public long? feeFixed { get; set; }
  138. /// <summary>
  139. /// 手续费费率(万分之一)
  140. /// </summary>
  141. public long? feeRate { get; set; }
  142. /// <summary>
  143. /// 手续费(分)
  144. /// </summary>
  145. public long? merchantFee { get; set; }
  146. /// <summary>
  147. /// 结算金额(分)
  148. /// </summary>
  149. public long? settleAmount { get; set; }
  150. }
  151. }