TmallDeviceTradePrecreateRequest.cs 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. using System;
  2. using System.Xml.Serialization;
  3. using System.Collections.Generic;
  4. using Top.Api.Util;
  5. namespace Top.Api.Request
  6. {
  7. /// <summary>
  8. /// TOP API: tmall.device.trade.precreate
  9. /// </summary>
  10. public class TmallDeviceTradePrecreateRequest : BaseTopRequest<Top.Api.Response.TmallDeviceTradePrecreateResponse>
  11. {
  12. /// <summary>
  13. /// 导购员手机号码
  14. /// </summary>
  15. public string BaPhone { get; set; }
  16. /// <summary>
  17. /// 导购员所属门店
  18. /// </summary>
  19. public Nullable<long> BaStoreId { get; set; }
  20. /// <summary>
  21. /// 回调地址,当订单创建,付款成功后,会收到回调。必须是https地址,HTTP响应必须包含success,否则系统会重发
  22. /// </summary>
  23. public string CallbackUrl { get; set; }
  24. /// <summary>
  25. /// 设备业务编码
  26. /// </summary>
  27. public string DeviceCode { get; set; }
  28. /// <summary>
  29. /// 商品列表
  30. /// </summary>
  31. public string ItemList { get; set; }
  32. public List<TradeItemDoDomain> ItemList_ { set { this.ItemList = TopUtils.ObjectToJson(value); } }
  33. /// <summary>
  34. /// 外部订单ID,用户下保证唯一。最大长度22
  35. /// </summary>
  36. public string OutTradeId { get; set; }
  37. /// <summary>
  38. /// 交易类型。1,售卖。2,派样
  39. /// </summary>
  40. public Nullable<long> Type { get; set; }
  41. #region ITopRequest Members
  42. public override string GetApiName()
  43. {
  44. return "tmall.device.trade.precreate";
  45. }
  46. public override IDictionary<string, string> GetParameters()
  47. {
  48. TopDictionary parameters = new TopDictionary();
  49. parameters.Add("ba_phone", this.BaPhone);
  50. parameters.Add("ba_store_id", this.BaStoreId);
  51. parameters.Add("callback_url", this.CallbackUrl);
  52. parameters.Add("device_code", this.DeviceCode);
  53. parameters.Add("item_list", this.ItemList);
  54. parameters.Add("out_trade_id", this.OutTradeId);
  55. parameters.Add("type", this.Type);
  56. if (this.otherParams != null)
  57. {
  58. parameters.AddAll(this.otherParams);
  59. }
  60. return parameters;
  61. }
  62. public override void Validate()
  63. {
  64. RequestValidator.ValidateRequired("device_code", this.DeviceCode);
  65. RequestValidator.ValidateRequired("item_list", this.ItemList);
  66. RequestValidator.ValidateObjectMaxListSize("item_list", this.ItemList, 20);
  67. RequestValidator.ValidateRequired("out_trade_id", this.OutTradeId);
  68. RequestValidator.ValidateMaxLength("out_trade_id", this.OutTradeId, 22);
  69. }
  70. /// <summary>
  71. /// TradeItemDoDomain Data Structure.
  72. /// </summary>
  73. [Serializable]
  74. public class TradeItemDoDomain : TopObject
  75. {
  76. /// <summary>
  77. /// 购买件数,默认为1
  78. /// </summary>
  79. [XmlElement("buy_amount")]
  80. public Nullable<long> BuyAmount { get; set; }
  81. /// <summary>
  82. /// 商品ID
  83. /// </summary>
  84. [XmlElement("item_id")]
  85. public Nullable<long> ItemId { get; set; }
  86. /// <summary>
  87. /// 商品SKU ID
  88. /// </summary>
  89. [XmlElement("sku_id")]
  90. public Nullable<long> SkuId { get; set; }
  91. /// <summary>
  92. /// 售卖单价,单位分
  93. /// </summary>
  94. [XmlElement("unit_price")]
  95. public Nullable<long> UnitPrice { get; set; }
  96. /// <summary>
  97. /// 是否使用开放定价。这里的价格由 tmall.device.item.openprice.update API预先设置
  98. /// </summary>
  99. [XmlElement("use_open_price")]
  100. public Nullable<bool> UseOpenPrice { get; set; }
  101. }
  102. #endregion
  103. }
  104. }