KoubeiMallScanpurchaseTradePayModel.py 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import json
  4. from alipay.aop.api.constant.ParamConstants import *
  5. from alipay.aop.api.domain.MallDiscountDetail import MallDiscountDetail
  6. from alipay.aop.api.domain.MallGoodsDetail import MallGoodsDetail
  7. class KoubeiMallScanpurchaseTradePayModel(object):
  8. def __init__(self):
  9. self._advance_order_id = None
  10. self._buyer_user_id = None
  11. self._discount_details = None
  12. self._discountable_amount = None
  13. self._goods_detail = None
  14. self._out_trade_no = None
  15. self._total_amount = None
  16. self._undiscountable_amount = None
  17. @property
  18. def advance_order_id(self):
  19. return self._advance_order_id
  20. @advance_order_id.setter
  21. def advance_order_id(self, value):
  22. self._advance_order_id = value
  23. @property
  24. def buyer_user_id(self):
  25. return self._buyer_user_id
  26. @buyer_user_id.setter
  27. def buyer_user_id(self, value):
  28. self._buyer_user_id = value
  29. @property
  30. def discount_details(self):
  31. return self._discount_details
  32. @discount_details.setter
  33. def discount_details(self, value):
  34. if isinstance(value, list):
  35. self._discount_details = list()
  36. for i in value:
  37. if isinstance(i, MallDiscountDetail):
  38. self._discount_details.append(i)
  39. else:
  40. self._discount_details.append(MallDiscountDetail.from_alipay_dict(i))
  41. @property
  42. def discountable_amount(self):
  43. return self._discountable_amount
  44. @discountable_amount.setter
  45. def discountable_amount(self, value):
  46. self._discountable_amount = value
  47. @property
  48. def goods_detail(self):
  49. return self._goods_detail
  50. @goods_detail.setter
  51. def goods_detail(self, value):
  52. if isinstance(value, list):
  53. self._goods_detail = list()
  54. for i in value:
  55. if isinstance(i, MallGoodsDetail):
  56. self._goods_detail.append(i)
  57. else:
  58. self._goods_detail.append(MallGoodsDetail.from_alipay_dict(i))
  59. @property
  60. def out_trade_no(self):
  61. return self._out_trade_no
  62. @out_trade_no.setter
  63. def out_trade_no(self, value):
  64. self._out_trade_no = value
  65. @property
  66. def total_amount(self):
  67. return self._total_amount
  68. @total_amount.setter
  69. def total_amount(self, value):
  70. self._total_amount = value
  71. @property
  72. def undiscountable_amount(self):
  73. return self._undiscountable_amount
  74. @undiscountable_amount.setter
  75. def undiscountable_amount(self, value):
  76. self._undiscountable_amount = value
  77. def to_alipay_dict(self):
  78. params = dict()
  79. if self.advance_order_id:
  80. if hasattr(self.advance_order_id, 'to_alipay_dict'):
  81. params['advance_order_id'] = self.advance_order_id.to_alipay_dict()
  82. else:
  83. params['advance_order_id'] = self.advance_order_id
  84. if self.buyer_user_id:
  85. if hasattr(self.buyer_user_id, 'to_alipay_dict'):
  86. params['buyer_user_id'] = self.buyer_user_id.to_alipay_dict()
  87. else:
  88. params['buyer_user_id'] = self.buyer_user_id
  89. if self.discount_details:
  90. if isinstance(self.discount_details, list):
  91. for i in range(0, len(self.discount_details)):
  92. element = self.discount_details[i]
  93. if hasattr(element, 'to_alipay_dict'):
  94. self.discount_details[i] = element.to_alipay_dict()
  95. if hasattr(self.discount_details, 'to_alipay_dict'):
  96. params['discount_details'] = self.discount_details.to_alipay_dict()
  97. else:
  98. params['discount_details'] = self.discount_details
  99. if self.discountable_amount:
  100. if hasattr(self.discountable_amount, 'to_alipay_dict'):
  101. params['discountable_amount'] = self.discountable_amount.to_alipay_dict()
  102. else:
  103. params['discountable_amount'] = self.discountable_amount
  104. if self.goods_detail:
  105. if isinstance(self.goods_detail, list):
  106. for i in range(0, len(self.goods_detail)):
  107. element = self.goods_detail[i]
  108. if hasattr(element, 'to_alipay_dict'):
  109. self.goods_detail[i] = element.to_alipay_dict()
  110. if hasattr(self.goods_detail, 'to_alipay_dict'):
  111. params['goods_detail'] = self.goods_detail.to_alipay_dict()
  112. else:
  113. params['goods_detail'] = self.goods_detail
  114. if self.out_trade_no:
  115. if hasattr(self.out_trade_no, 'to_alipay_dict'):
  116. params['out_trade_no'] = self.out_trade_no.to_alipay_dict()
  117. else:
  118. params['out_trade_no'] = self.out_trade_no
  119. if self.total_amount:
  120. if hasattr(self.total_amount, 'to_alipay_dict'):
  121. params['total_amount'] = self.total_amount.to_alipay_dict()
  122. else:
  123. params['total_amount'] = self.total_amount
  124. if self.undiscountable_amount:
  125. if hasattr(self.undiscountable_amount, 'to_alipay_dict'):
  126. params['undiscountable_amount'] = self.undiscountable_amount.to_alipay_dict()
  127. else:
  128. params['undiscountable_amount'] = self.undiscountable_amount
  129. return params
  130. @staticmethod
  131. def from_alipay_dict(d):
  132. if not d:
  133. return None
  134. o = KoubeiMallScanpurchaseTradePayModel()
  135. if 'advance_order_id' in d:
  136. o.advance_order_id = d['advance_order_id']
  137. if 'buyer_user_id' in d:
  138. o.buyer_user_id = d['buyer_user_id']
  139. if 'discount_details' in d:
  140. o.discount_details = d['discount_details']
  141. if 'discountable_amount' in d:
  142. o.discountable_amount = d['discountable_amount']
  143. if 'goods_detail' in d:
  144. o.goods_detail = d['goods_detail']
  145. if 'out_trade_no' in d:
  146. o.out_trade_no = d['out_trade_no']
  147. if 'total_amount' in d:
  148. o.total_amount = d['total_amount']
  149. if 'undiscountable_amount' in d:
  150. o.undiscountable_amount = d['undiscountable_amount']
  151. return o