Skip to content

Commit e2f9f3a

Browse files
committed
fix:PaymentOption缺少字段
1 parent 0bbb9d8 commit e2f9f3a

File tree

3 files changed

+164
-0
lines changed

3 files changed

+164
-0
lines changed
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
import json
2+
3+
from com.alipay.ams.api.model.amount import Amount
4+
5+
6+
class InterestFree(object):
7+
def __init__(self):
8+
self.__provider = None
9+
self.__expireTime = None
10+
self.__installment_free_nums = None #type:list
11+
self.__min_payment_amount = None#type:Amount
12+
self.__max_payment_amount = None #type:Amount
13+
self.__free_percentage = None
14+
15+
@property
16+
def provider(self):
17+
return self.__provider
18+
19+
@provider.setter
20+
def provider(self, value):
21+
self.__provider = value
22+
23+
@property
24+
def expireTime(self):
25+
return self.__expireTime
26+
27+
@expireTime.setter
28+
def expireTime(self, value):
29+
self.__expireTime = value
30+
31+
@property
32+
def installment_free_nums(self):
33+
return self.__installment_free_nums
34+
35+
@installment_free_nums.setter
36+
def installment_free_nums(self, value):
37+
self.__installment_free_nums = value
38+
39+
@property
40+
def min_payment_amount(self):
41+
return self.__min_payment_amount
42+
43+
@min_payment_amount.setter
44+
def min_payment_amount(self, value):
45+
self.__min_payment_amount = value
46+
47+
@property
48+
def max_payment_amount(self):
49+
return self.__max_payment_amount
50+
51+
@max_payment_amount.setter
52+
def max_payment_amount(self, value):
53+
self.__max_payment_amount = value
54+
55+
@property
56+
def free_percentage(self):
57+
return self.__free_percentage
58+
59+
@free_percentage.setter
60+
def free_percentage(self, value):
61+
self.__free_percentage = value
62+
63+
def parse_rsp_body(self, interest_free_body):
64+
if type(interest_free_body) == str:
65+
interest_free_body = json.loads(interest_free_body)
66+
67+
if 'provider' in interest_free_body:
68+
self.provider = interest_free_body['provider']
69+
70+
if 'expireTime' in interest_free_body:
71+
self.expireTime = interest_free_body['expireTime']
72+
73+
if 'installmentFreeNums' in interest_free_body:
74+
self.installment_free_nums = interest_free_body['installmentFreeNums']
75+
76+
if 'minPaymentAmount' in interest_free_body:
77+
self.min_payment_amount = Amount()
78+
self.min_payment_amount.parse_rsp_body(interest_free_body['minPaymentAmount'])
79+
80+
if 'maxPaymentAmount' in interest_free_body:
81+
self.max_payment_amount = Amount()
82+
self.max_payment_amount.parse_rsp_body(interest_free_body['maxPaymentAmount'])
83+
84+
if 'freePercentage' in interest_free_body:
85+
self.free_percentage = interest_free_body['freePercentage']

com/alipay/ams/api/model/payment_option.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from com.alipay.ams.api.model.DisableReasonType import DisableReasonType
77
from com.alipay.ams.api.model.payment_method_category_type import PaymentMethodCategoryType
88
from com.alipay.ams.api.model.amount_limit_info import AmountLimitInfo
9+
from com.alipay.ams.api.model.promotion_info import PromotionInfo
910

1011

1112
class PaymentOption(object):
@@ -23,6 +24,7 @@ def __init__(self):
2324
self.__logo = None
2425
self.__promo_names = None
2526
self.__installment = None
27+
self.__promotion_infos = None #type: list:PromotionInfo
2628

2729
@property
2830
def payment_method_type(self):
@@ -72,6 +74,10 @@ def promo_names(self):
7274
def installment(self):
7375
return self.__installment
7476

77+
@property
78+
def promotion_infos(self):
79+
return self.__promotion_infos
80+
7581
def parse_rsp_body(self, payment_option_body):
7682
if type(payment_option_body) == str:
7783
payment_option_body = json.loads(payment_option_body)
@@ -117,3 +123,11 @@ def parse_rsp_body(self, payment_option_body):
117123

118124
if 'installment' in payment_option_body:
119125
self.__installment = payment_option_body['installment']
126+
127+
if 'promotionInfos' in payment_option_body:
128+
promotion_infos = list()
129+
for promotion_info_body in payment_option_body['promotionInfos']:
130+
promotion_info = PromotionInfo()
131+
promotion_info.parse_rsp_body(promotion_info_body)
132+
promotion_infos.append(promotion_info)
133+
self.__promotion_infos = promotion_infos
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
import json
2+
3+
from com.alipay.ams.api.model.discount import Discount
4+
from com.alipay.ams.api.model.interest_free import InterestFree
5+
from com.alipay.ams.api.model.promotion_type import PromotionType
6+
7+
8+
class PromotionInfo(object):
9+
def __init__(self):
10+
self.__promotion_type = None #type:PromotionType
11+
self.__discount = None #type:Discount
12+
self.__interest_free = None #type:InterestFree
13+
14+
@property
15+
def promotion_type(self):
16+
return self.__promotion_type
17+
@promotion_type.setter
18+
def promotion_type(self, value):
19+
self.__promotion_type = value
20+
21+
22+
@property
23+
def discount(self):
24+
return self.__discount
25+
@discount.setter
26+
def discount(self, value):
27+
self.__discount = value
28+
29+
30+
@property
31+
def interest_free(self):
32+
return self.__interest_free
33+
@interest_free.setter
34+
def interest_free(self, value):
35+
self.__interest_free = value
36+
37+
def to_ams_dict(self):
38+
params = dict()
39+
if hasattr(self, "promotion_type") and self.promotion_type:
40+
params['promotionType'] = self.promotion_type.value
41+
42+
if hasattr(self, "discount") and self.discount:
43+
params['discount'] = self.discount.to_ams_dict()
44+
45+
if hasattr(self, "interest_free") and self.interest_free:
46+
params['interestFree'] = self.interest_free.to_ams_dict()
47+
48+
return params
49+
50+
def parse_rsp_body(self, amount_body):
51+
if type(amount_body) == str:
52+
amount_body = json.loads(amount_body)
53+
54+
if 'promotionType' in amount_body:
55+
self.promotion_type = PromotionType(amount_body['promotionType'])
56+
57+
if 'discount' in amount_body:
58+
discount_result = Discount()
59+
discount_result.parse_rsp_body(amount_body['discount'])
60+
self.discount = discount_result
61+
62+
if 'interestFree' in amount_body:
63+
interest_free_result = InterestFree()
64+
interest_free_result.parse_rsp_body(amount_body['interestFree'])
65+
self.interest_free = interest_free_result

0 commit comments

Comments
 (0)