YCTechModel.cs 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. using JiaZhiQuan.Common.Config;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Net.Http;
  5. using System.Threading.Tasks;
  6. namespace JiaZhiQuan.Common.YCTech {
  7. public class YCTechModel {
  8. public class YCTechBaseRequest<TData> {
  9. public YCTechBaseInfo BaseInfo { get; set; }
  10. public YCTechBaseResponse<TData> Response { get; set; }
  11. public YCTechBaseRequest(string requestUrl) {
  12. BaseInfo = new YCTechBaseInfo {
  13. RequestUrl = requestUrl
  14. };
  15. }
  16. public async Task ExeRequest(HttpClient httpClient, ConfigFromDb config) {
  17. Response = await this.YCTechExeReqeust(config,httpClient);
  18. }
  19. }
  20. public class YCTechBaseInfo {
  21. public string Host { get; set; }
  22. public string RequestUrl { get; set; }
  23. //代理商id
  24. public string AgentId { get; set; }
  25. //代理商key
  26. public string SignKey { get; set; }
  27. }
  28. /// <summary>
  29. /// 直充下单接口
  30. /// </summary>
  31. public class YCTechSubmitOrderRequest : YCTechBaseRequest<YCTechSubmitOrderRespData> {
  32. /// <summary>
  33. /// 直充下单接口
  34. /// </summary>
  35. public YCTechSubmitOrderRequest() : base("/api/order/SubmitOrder") {
  36. }
  37. //接入方订单号
  38. public string OutOrderId { get; set; }
  39. //充值号码/帐号/卡号/微信openid
  40. public string Account { get; set; }
  41. //京东sign(非空参与签名) 可为空
  42. public string Jdsign { get; set; }
  43. //商品id
  44. public string ProductId { get; set; }
  45. //订单状态回调地址,为空则不回调
  46. public string CallbackUrl { get; set; }
  47. //时间戳,格式:yyyyMMddHHmmssSSS
  48. public string Timestamp { get; set; }
  49. }
  50. public class YCTechSubmitOrderRespData {
  51. //平台订单号
  52. public string OrderId { get; set; }
  53. //接入方订单号
  54. public string OutOrderId { get; set; }
  55. //成本
  56. public double Cost { get; set; }
  57. }
  58. public class YCTechQueryOrderRequest : YCTechBaseRequest<YCTechQueryOrderRespData> {
  59. /// <summary>
  60. /// 订单查询接口
  61. /// </summary>
  62. public YCTechQueryOrderRequest() : base("/api/order/QueryOrder") {
  63. }
  64. //平台订单号
  65. public string OrderId { get; set; }
  66. //接入方订单号
  67. public string OutOrderId { get; set; }
  68. //时间戳,格式:yyyyMMddHHmmssSSS
  69. public string Timestamp { get; set; }
  70. }
  71. public class YCTechQueryOrderRespData {
  72. //平台订单号
  73. public string OrderId { get; set; }
  74. //接入方订单号
  75. public string OutOrderId { get; set; }
  76. //订单状态
  77. //OrderStatus 说明
  78. // 0 待处理
  79. // 1 处理中
  80. // 2 充值成功
  81. // 3 充值失败
  82. // 其他 订单异常
  83. public string OrderStatus { get; set; }
  84. //订单描述,如果是话费或油卡,会返回透传信息
  85. public string OrderDesc { get; set; }
  86. //完成时间
  87. public string CompleteTime { get; set; }
  88. }
  89. public class YCTechYuERequest : YCTechBaseRequest<YCTechYuERespData> {
  90. /// <summary>
  91. /// 代理商余额查询接口
  92. /// </summary>
  93. public YCTechYuERequest() : base("/api/order/QueryAgentYuE") {
  94. }
  95. //时间戳,格式:yyyyMMddHHmmssSSS
  96. public string Timestamp { get; set; }
  97. }
  98. public class YCTechYuERespData {
  99. //剩余金额
  100. public double SurplusYuE { get; set; }
  101. //授信金额
  102. public double ShouXinJE { get; set; }
  103. //剩余授信金额
  104. public double SurplusShouXinJE { get; set; }
  105. }
  106. public class YCTechSyncProductRequest : YCTechBaseRequest<List<YCTechSyncProductRespData>> {
  107. /// <summary>
  108. /// 商品同步接口
  109. /// </summary>
  110. public YCTechSyncProductRequest() : base("/api/order/SyncProduct") {
  111. }
  112. //时间戳,格式:yyyyMMddHHmmssSSS
  113. public string Timestamp { get; set; }
  114. }
  115. public class YCTechSyncProductRespData {
  116. //产品id
  117. public long Id { get; set; }
  118. //产品名称
  119. public string ProductName { get; set; }
  120. //面额
  121. public string MianE { get; set; }
  122. //面值
  123. public double MianZhi { get; set; }
  124. //计价类型
  125. public string JiJiaLX { get; set; }
  126. //计价
  127. public double JiJia { get; set; }
  128. //售价
  129. public double ShouJia { get; set; }
  130. }
  131. public class YCTechBaseResponse<TData> {
  132. public string Code { get; set; }
  133. public string Msg { get; set; }
  134. public TData Data { get; set; }
  135. public bool Sucess { get; set; } = false;
  136. //原始结果。
  137. public string raw;
  138. }
  139. public class YCTechOrderCallBackModel {
  140. public string AgentId { get; set; }
  141. public string OrderId { get; set; }
  142. public string OutOrderId { get; set; }
  143. public string OrderStatus { get; set; }
  144. public string OrderDesc { get; set; }
  145. public DateTime CompleteTime { get; set; }
  146. public string Sign { get; set; }
  147. }
  148. public enum OrderStatus {
  149. 订单失败=-1,
  150. 未更新=0,
  151. 订单成功=1
  152. }
  153. }
  154. }