Skip to content

Commit a6c9708

Browse files
authored
Merge pull request #25 from alipay/feature-250106
订阅支付新增“更新接口”
2 parents 99420f5 + 291050d commit a6c9708

File tree

8 files changed

+153
-3
lines changed

8 files changed

+153
-3
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Changelog
22

3+
## 1.4.1 - 2024-01-06
4+
* [#25](https://github.com/alipay/global-open-sdk-python/pull/25) feature-250105
5+
- 订阅支付新增“更新接口”
6+
37
## 1.4.0 - 2024-12-24
48
* [#24](https://github.com/alipay/global-open-sdk-python/pull/24) feature-241224
59
- CKP二期支持商户传入可选支付方式列表

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
```
22
Language:Python
33
Python version:2.7+
4-
Releass ^1.4.0
4+
Releass ^1.4.1
55
Copyright:Ant financial services group
66
```
77

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ class AntomPathConstants(Enum):
2626
SUBSCRIPTION_CREATE_PATH = "/ams/api/v1/subscriptions/create"
2727
SUBSCRIPTION_CHANGE_PATH = "/ams/api/v1/subscriptions/change"
2828
SUBSCRIPTION_CANCEL_PATH = "/ams/api/v1/subscriptions/cancel"
29+
SUBSCRIPTION_UPDATE_PATH = "/ams/api/v1/subscriptions/update"
2930

3031
ACCEPT_DISPUTE_PATH = "/ams/api/v1/payments/acceptDispute"
3132
SUPPLY_DEFENCE_DOC_PATH = "/ams/api/v1/payments/supplyDefenseDocument"

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

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,18 @@
66
class Discount(object):
77

88
def __init__(self):
9+
self.discountTag = None
910
self.discountName = None
1011
self.savingsAmount = None # type: Amount
12+
self.estimateSavingsAmount = None # type: Amount
13+
14+
@property
15+
def discountTag(self):
16+
return self.__discountTag
17+
18+
@discountTag.setter
19+
def discountTag(self, value):
20+
self.__discountTag = value
1121

1222
@property
1323
def discountName(self):
@@ -25,22 +35,42 @@ def savingsAmount(self):
2535
def savingsAmount(self, value):
2636
self.__savingsAmount = value
2737

38+
@property
39+
def estimateSavingsAmount(self):
40+
return self.__estimateSavingsAmount
41+
42+
@estimateSavingsAmount.setter
43+
def estimateSavingsAmount(self, value):
44+
self.__estimateSavingsAmount = value
45+
2846
def to_ams_dict(self):
2947
params = dict()
48+
if self.discountTag is not None:
49+
params['discountTag'] = self.discountTag
3050
if self.discountName is not None:
3151
params['discountName'] = self.discountName
3252
if self.savingsAmount is not None:
3353
params['savingsAmount'] = self.savingsAmount.to_ams_dict()
54+
if self.estimateSavingsAmount is not None:
55+
params['estimateSavingsAmount'] = self.estimateSavingsAmount.to_ams_dict()
3456
return params
3557

3658
def parse_rsp_body(self, discount_body):
3759
if type(discount_body) == str:
3860
discount_body = json.loads(discount_body)
3961

62+
if 'discountTag' in discount_body:
63+
self.discountTag = discount_body['discountTag']
64+
4065
if 'discountName' in discount_body:
4166
self.discountName = discount_body['discountName']
4267

4368
if 'savingsAmount' in discount_body:
4469
payment_amount = Amount()
4570
payment_amount.parse_rsp_body(discount_body['savingsAmount'])
4671
self.__savingsAmount = payment_amount
72+
73+
if 'estimateSavingsAmount' in discount_body:
74+
payment_amount = Amount()
75+
payment_amount.parse_rsp_body(discount_body['estimateSavingsAmount'])
76+
self.__estimateSavingsAmount = payment_amount
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
import json
2+
3+
from com.alipay.ams.api.model.amount import Amount
4+
from com.alipay.ams.api.model.antom_path_constants import AntomPathConstants
5+
from com.alipay.ams.api.model.order_info import OrderInfo
6+
from com.alipay.ams.api.model.period_rule import PeriodRule
7+
from com.alipay.ams.api.request.alipay_request import AlipayRequest
8+
9+
10+
class AlipaySubscriptionUpdateRequest(AlipayRequest):
11+
12+
def __init__(self):
13+
super(AlipaySubscriptionUpdateRequest, self).__init__(AntomPathConstants.SUBSCRIPTION_UPDATE_PATH)
14+
self.__subscription_update_requestId = None
15+
self.__subscription_id = None
16+
self.__subscription_description = None
17+
self.__period_rule = None #type: PeriodRule
18+
self.__payment_amount = None #type: Amount
19+
self.__subscription_end_time = None
20+
self.__order_info = None #type: OrderInfo
21+
22+
@property
23+
def subscription_update_requestId(self):
24+
return self.__subscription_update_requestId
25+
26+
@subscription_update_requestId.setter
27+
def subscription_update_requestId(self, value):
28+
self.__subscription_update_requestId = value
29+
30+
@property
31+
def subscription_id(self):
32+
return self.__subscription_id
33+
34+
@subscription_id.setter
35+
def subscription_id(self, value):
36+
self.__subscription_id = value
37+
38+
@property
39+
def subscription_description(self):
40+
return self.__subscription_description
41+
42+
@subscription_description.setter
43+
def subscription_description(self, value):
44+
self.__subscription_description = value
45+
46+
@property
47+
def period_rule(self):
48+
return self.__period_rule
49+
50+
@period_rule.setter
51+
def period_rule(self, value):
52+
self.__period_rule = value
53+
54+
@property
55+
def payment_amount(self):
56+
return self.__payment_amount
57+
58+
@payment_amount.setter
59+
def payment_amount(self, value):
60+
self.__payment_amount = value
61+
62+
@property
63+
def subscription_end_time(self):
64+
return self.__subscription_end_time
65+
66+
@subscription_end_time.setter
67+
def subscription_end_time(self, value):
68+
self.__subscription_end_time = value
69+
70+
@property
71+
def order_info(self):
72+
return self.__order_info
73+
74+
@order_info.setter
75+
def order_info(self, value):
76+
self.__order_info = value
77+
78+
79+
def to_ams_json(self):
80+
json_str = json.dumps(obj=self.__to_ams_dict(), default=lambda o: o.to_ams_dict(), indent=3)
81+
return json_str
82+
83+
def __to_ams_dict(self):
84+
params = dict()
85+
86+
if self.__subscription_update_requestId is not None:
87+
params['subscriptionUpdateRequestId'] = self.__subscription_update_requestId
88+
if self.__subscription_id is not None:
89+
params['subscriptionId'] = self.__subscription_id
90+
if self.__subscription_description is not None:
91+
params['subscriptionDescription'] = self.__subscription_description
92+
if self.__period_rule is not None:
93+
params['periodRule'] = self.__period_rule.to_ams_dict()
94+
if self.__payment_amount is not None:
95+
params['paymentAmount'] = self.__payment_amount.to_ams_dict()
96+
if self.__subscription_end_time is not None:
97+
params['subscriptionEndTime'] = self.__subscription_end_time
98+
if self.__order_info is not None:
99+
params['orderInfo'] = self.__order_info.to_ams_dict()
100+
return params
101+
102+
103+
104+
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from com.alipay.ams.api.response.alipay_response import AlipayResponse
2+
3+
4+
class AlipaySubscriptionUpdateResponse(AlipayResponse):
5+
def __init__(self, rsp_body):
6+
super(AlipaySubscriptionUpdateResponse, self).__init__()
7+
self.__parse_rsp_body(rsp_body)
8+
9+
10+
def __parse_rsp_body(self, rsp_body):
11+
rsp_dict = super(AlipaySubscriptionUpdateResponse, self).parse_rsp_body(rsp_body)

setup.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[metadata]
22
name = global-alipay-sdk-python
3-
version = 1.4.0
3+
version = 1.4.1
44

55
[options]
66
packages = find:

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
AUTHOR = "guodong.wzj"
1313
AUTHOR_EMAIL = "[email protected]"
1414
URL = "https://github.com/alipay/global-open-sdk-python"
15-
VERSION = "1.4.0"
15+
VERSION = "1.4.1"
1616
'''
1717
only python2 need enum34、pytz
1818
'''

0 commit comments

Comments
 (0)