OrderDetail.py 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  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.ExtendParams import ExtendParams
  6. from alipay.aop.api.domain.GoodsDetail import GoodsDetail
  7. from alipay.aop.api.domain.SettleInfo import SettleInfo
  8. from alipay.aop.api.domain.SubMerchant import SubMerchant
  9. class OrderDetail(object):
  10. def __init__(self):
  11. self._app_id = None
  12. self._body = None
  13. self._extend_params = None
  14. self._goods_detail = None
  15. self._out_trade_no = None
  16. self._passback_params = None
  17. self._product_code = None
  18. self._seller_id = None
  19. self._seller_logon_id = None
  20. self._settle_info = None
  21. self._show_url = None
  22. self._sub_merchant = None
  23. self._subject = None
  24. self._total_amount = None
  25. @property
  26. def app_id(self):
  27. return self._app_id
  28. @app_id.setter
  29. def app_id(self, value):
  30. self._app_id = value
  31. @property
  32. def body(self):
  33. return self._body
  34. @body.setter
  35. def body(self, value):
  36. self._body = value
  37. @property
  38. def extend_params(self):
  39. return self._extend_params
  40. @extend_params.setter
  41. def extend_params(self, value):
  42. if isinstance(value, ExtendParams):
  43. self._extend_params = value
  44. else:
  45. self._extend_params = ExtendParams.from_alipay_dict(value)
  46. @property
  47. def goods_detail(self):
  48. return self._goods_detail
  49. @goods_detail.setter
  50. def goods_detail(self, value):
  51. if isinstance(value, list):
  52. self._goods_detail = list()
  53. for i in value:
  54. if isinstance(i, GoodsDetail):
  55. self._goods_detail.append(i)
  56. else:
  57. self._goods_detail.append(GoodsDetail.from_alipay_dict(i))
  58. @property
  59. def out_trade_no(self):
  60. return self._out_trade_no
  61. @out_trade_no.setter
  62. def out_trade_no(self, value):
  63. self._out_trade_no = value
  64. @property
  65. def passback_params(self):
  66. return self._passback_params
  67. @passback_params.setter
  68. def passback_params(self, value):
  69. self._passback_params = value
  70. @property
  71. def product_code(self):
  72. return self._product_code
  73. @product_code.setter
  74. def product_code(self, value):
  75. self._product_code = value
  76. @property
  77. def seller_id(self):
  78. return self._seller_id
  79. @seller_id.setter
  80. def seller_id(self, value):
  81. self._seller_id = value
  82. @property
  83. def seller_logon_id(self):
  84. return self._seller_logon_id
  85. @seller_logon_id.setter
  86. def seller_logon_id(self, value):
  87. self._seller_logon_id = value
  88. @property
  89. def settle_info(self):
  90. return self._settle_info
  91. @settle_info.setter
  92. def settle_info(self, value):
  93. if isinstance(value, SettleInfo):
  94. self._settle_info = value
  95. else:
  96. self._settle_info = SettleInfo.from_alipay_dict(value)
  97. @property
  98. def show_url(self):
  99. return self._show_url
  100. @show_url.setter
  101. def show_url(self, value):
  102. self._show_url = value
  103. @property
  104. def sub_merchant(self):
  105. return self._sub_merchant
  106. @sub_merchant.setter
  107. def sub_merchant(self, value):
  108. if isinstance(value, SubMerchant):
  109. self._sub_merchant = value
  110. else:
  111. self._sub_merchant = SubMerchant.from_alipay_dict(value)
  112. @property
  113. def subject(self):
  114. return self._subject
  115. @subject.setter
  116. def subject(self, value):
  117. self._subject = value
  118. @property
  119. def total_amount(self):
  120. return self._total_amount
  121. @total_amount.setter
  122. def total_amount(self, value):
  123. self._total_amount = value
  124. def to_alipay_dict(self):
  125. params = dict()
  126. if self.app_id:
  127. if hasattr(self.app_id, 'to_alipay_dict'):
  128. params['app_id'] = self.app_id.to_alipay_dict()
  129. else:
  130. params['app_id'] = self.app_id
  131. if self.body:
  132. if hasattr(self.body, 'to_alipay_dict'):
  133. params['body'] = self.body.to_alipay_dict()
  134. else:
  135. params['body'] = self.body
  136. if self.extend_params:
  137. if hasattr(self.extend_params, 'to_alipay_dict'):
  138. params['extend_params'] = self.extend_params.to_alipay_dict()
  139. else:
  140. params['extend_params'] = self.extend_params
  141. if self.goods_detail:
  142. if isinstance(self.goods_detail, list):
  143. for i in range(0, len(self.goods_detail)):
  144. element = self.goods_detail[i]
  145. if hasattr(element, 'to_alipay_dict'):
  146. self.goods_detail[i] = element.to_alipay_dict()
  147. if hasattr(self.goods_detail, 'to_alipay_dict'):
  148. params['goods_detail'] = self.goods_detail.to_alipay_dict()
  149. else:
  150. params['goods_detail'] = self.goods_detail
  151. if self.out_trade_no:
  152. if hasattr(self.out_trade_no, 'to_alipay_dict'):
  153. params['out_trade_no'] = self.out_trade_no.to_alipay_dict()
  154. else:
  155. params['out_trade_no'] = self.out_trade_no
  156. if self.passback_params:
  157. if hasattr(self.passback_params, 'to_alipay_dict'):
  158. params['passback_params'] = self.passback_params.to_alipay_dict()
  159. else:
  160. params['passback_params'] = self.passback_params
  161. if self.product_code:
  162. if hasattr(self.product_code, 'to_alipay_dict'):
  163. params['product_code'] = self.product_code.to_alipay_dict()
  164. else:
  165. params['product_code'] = self.product_code
  166. if self.seller_id:
  167. if hasattr(self.seller_id, 'to_alipay_dict'):
  168. params['seller_id'] = self.seller_id.to_alipay_dict()
  169. else:
  170. params['seller_id'] = self.seller_id
  171. if self.seller_logon_id:
  172. if hasattr(self.seller_logon_id, 'to_alipay_dict'):
  173. params['seller_logon_id'] = self.seller_logon_id.to_alipay_dict()
  174. else:
  175. params['seller_logon_id'] = self.seller_logon_id
  176. if self.settle_info:
  177. if hasattr(self.settle_info, 'to_alipay_dict'):
  178. params['settle_info'] = self.settle_info.to_alipay_dict()
  179. else:
  180. params['settle_info'] = self.settle_info
  181. if self.show_url:
  182. if hasattr(self.show_url, 'to_alipay_dict'):
  183. params['show_url'] = self.show_url.to_alipay_dict()
  184. else:
  185. params['show_url'] = self.show_url
  186. if self.sub_merchant:
  187. if hasattr(self.sub_merchant, 'to_alipay_dict'):
  188. params['sub_merchant'] = self.sub_merchant.to_alipay_dict()
  189. else:
  190. params['sub_merchant'] = self.sub_merchant
  191. if self.subject:
  192. if hasattr(self.subject, 'to_alipay_dict'):
  193. params['subject'] = self.subject.to_alipay_dict()
  194. else:
  195. params['subject'] = self.subject
  196. if self.total_amount:
  197. if hasattr(self.total_amount, 'to_alipay_dict'):
  198. params['total_amount'] = self.total_amount.to_alipay_dict()
  199. else:
  200. params['total_amount'] = self.total_amount
  201. return params
  202. @staticmethod
  203. def from_alipay_dict(d):
  204. if not d:
  205. return None
  206. o = OrderDetail()
  207. if 'app_id' in d:
  208. o.app_id = d['app_id']
  209. if 'body' in d:
  210. o.body = d['body']
  211. if 'extend_params' in d:
  212. o.extend_params = d['extend_params']
  213. if 'goods_detail' in d:
  214. o.goods_detail = d['goods_detail']
  215. if 'out_trade_no' in d:
  216. o.out_trade_no = d['out_trade_no']
  217. if 'passback_params' in d:
  218. o.passback_params = d['passback_params']
  219. if 'product_code' in d:
  220. o.product_code = d['product_code']
  221. if 'seller_id' in d:
  222. o.seller_id = d['seller_id']
  223. if 'seller_logon_id' in d:
  224. o.seller_logon_id = d['seller_logon_id']
  225. if 'settle_info' in d:
  226. o.settle_info = d['settle_info']
  227. if 'show_url' in d:
  228. o.show_url = d['show_url']
  229. if 'sub_merchant' in d:
  230. o.sub_merchant = d['sub_merchant']
  231. if 'subject' in d:
  232. o.subject = d['subject']
  233. if 'total_amount' in d:
  234. o.total_amount = d['total_amount']
  235. return o