Skip to content

Commit b541676

Browse files
committed
bump to version 0.4.0
Added more advanced features: - cancel refund - cancel capture - bind card - remove card
1 parent 79dd8c5 commit b541676

File tree

3 files changed

+134
-1
lines changed

3 files changed

+134
-1
lines changed

CHANGES.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
# 0.4.0
2+
3+
* Added more advanced features:
4+
- cancel refund
5+
- cancel capture
6+
- bind card
7+
- remove card
8+
19
# 0.3.0
210

311
* Added method to support pay-by-token

README.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,14 @@ response_data_dict = client.refund(rec_trade_id, refund_amount)
8181

8282
Docs: [https://docs.tappaysdk.com/tutorial/zh/back.html#refund-api](https://docs.tappaysdk.com/tutorial/zh/back.html#refund-api)
8383

84+
### Cancel Refund
85+
86+
```python
87+
response_data_dict = client.cancel_refund(rec_trade_id)
88+
```
89+
90+
Docs: [https://docs.tappaysdk.com/tutorial/zh/advanced.html#refund-cancel-api](https://docs.tappaysdk.com/tutorial/zh/advanced.html#refund-cancel-api)
91+
8492
### Get payment record
8593

8694
```python
@@ -99,6 +107,14 @@ response_data_dict = client.capture_today(rec_trade_id)
99107

100108
Docs: [https://docs.tappaysdk.com/tutorial/zh/advanced.html#cap-today-api](https://docs.tappaysdk.com/tutorial/zh/advanced.html#cap-today-api)
101109

110+
### Cancel Capture
111+
112+
```python
113+
response_data_dict = client.cancel_capture(rec_trade_id)
114+
```
115+
116+
Docs: [https://docs.tappaysdk.com/tutorial/zh/advanced.html#cap-cancel-api](https://docs.tappaysdk.com/tutorial/zh/advanced.html#cap-cancel-api)
117+
102118
### Get transaction record
103119

104120
```python
@@ -107,6 +123,22 @@ response_data_dict = client.get_trade_history(rec_trade_id)
107123

108124
Docs: [https://docs.tappaysdk.com/tutorial/zh/advanced.html#trade-history-api](https://docs.tappaysdk.com/tutorial/zh/advanced.html#trade-history-api)
109125

126+
### Bind card
127+
128+
```python
129+
response_data_dict = client.bind_card(prime, card_holder_data)
130+
```
131+
132+
Docs: [https://docs.tappaysdk.com/tutorial/zh/advanced.html#bind-card-api](https://docs.tappaysdk.com/tutorial/zh/advanced.html#bind-card-api)
133+
134+
### Remove card
135+
136+
```python
137+
response_data_dict = client.remove_card(card_key, card_token
138+
```
139+
140+
Docs: [https://docs.tappaysdk.com/tutorial/zh/advanced.html#remove-card-api](https://docs.tappaysdk.com/tutorial/zh/advanced.html#remove-card-api)
141+
110142

111143
License
112144
-------

tappay/__init__.py

Lines changed: 94 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
logger = logging.getLogger("tappay")
2323

24-
__version__ = '0.3.0'
24+
__version__ = '0.4.0'
2525

2626

2727
class Exceptions(object):
@@ -269,6 +269,23 @@ def capture_today(self, rec_trade_id):
269269

270270
return self.__post_with_partner_key('/tpc/transaction/cap', params)
271271

272+
def cancel_capture(self, rec_trade_id):
273+
274+
"""
275+
Cancel a specific capture
276+
Ref: https://docs.tappaysdk.com/tutorial/zh/advanced.html#cap-cancel-api
277+
:param str rec_trade_id: Transaction record ID from TapPay
278+
"""
279+
280+
params = {
281+
"rec_trade_id": rec_trade_id,
282+
}
283+
284+
return self.__post_with_partner_key(
285+
'/tpc/transaction/cap/cancel',
286+
params
287+
)
288+
272289
def get_trade_history(self, rec_trade_id):
273290

274291
"""
@@ -286,6 +303,82 @@ def get_trade_history(self, rec_trade_id):
286303
params
287304
)
288305

306+
def bind_card(self,
307+
prime,
308+
card_holder_data,
309+
**kwargs):
310+
311+
"""
312+
Bind new credit card
313+
Ref: https://docs.tappaysdk.com/tutorial/zh/advanced.html#bind-card-api
314+
:param str prime: The "prime token"
315+
:param CardHolderData card_holder_data: Info of card holder
316+
"""
317+
318+
# validate parameter types
319+
if not isinstance(card_holder_data, Models.CardHolderData):
320+
raise TypeError(
321+
"expected `CardHolderData` type for "
322+
"parameter `card_holder_data`, {} found".format(
323+
type(card_holder_data)))
324+
325+
params = {
326+
"prime": prime,
327+
"currency": Models.Currencies.TWD,
328+
"cardholder": card_holder_data.to_dict(),
329+
}
330+
331+
# add additional keyword arguments
332+
if kwargs:
333+
params.update(**kwargs)
334+
335+
return self.__post_with_partner_key_and_merchant_id(
336+
'/tpc/card/bind',
337+
params
338+
)
339+
340+
def remove_card(self,
341+
card_key,
342+
card_token):
343+
344+
"""
345+
Remove bound credit card
346+
Ref: https://docs.tappaysdk.com/tutorial/zh/advanced.html#remove-card-api
347+
:param str card_key: Card key
348+
:param str card_token: Card token
349+
"""
350+
351+
params = {
352+
"card_key": card_key,
353+
"card_token": card_token,
354+
}
355+
356+
return self.__post_with_partner_key(
357+
'/tpc/card/remove',
358+
params
359+
)
360+
361+
def cancel_refund(self, rec_trade_id, **kwargs):
362+
363+
"""
364+
Cancel a single refund
365+
Ref: https://docs.tappaysdk.com/tutorial/zh/advanced.html#refund-cancel-api
366+
:param str rec_trade_id: Transaction record ID from TapPay
367+
"""
368+
369+
params = {
370+
"rec_trade_id": rec_trade_id,
371+
}
372+
373+
# add additional keyword arguments
374+
if kwargs:
375+
params.update(**kwargs)
376+
377+
return self.__post_with_partner_key(
378+
'/tpc/transaction/refund/cancel',
379+
params
380+
)
381+
289382
# Utility methods
290383

291384
def __post_with_partner_key(self, request_uri, params):

0 commit comments

Comments
 (0)