Skip to content

Commit 95f26f1

Browse files
authored
Merge pull request #12 from barbossa/feature/add_decode_data_from_str_method
added new method decode_data_from_str to LiqPay class
2 parents 1684b9c + 5534cb9 commit 95f26f1

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed

liqpay/liqpay.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,3 +124,28 @@ def str_to_sign(self, str):
124124

125125
def data_to_sign(self, params):
126126
return base64.b64encode(json.dumps(params))
127+
128+
def decode_data_from_str(self, data):
129+
"""Decoding data that were encoded by base64.b64encode(str)
130+
131+
Note:
132+
Often case of using is decoding data from LiqPay Callback.
133+
Dict contains all information about payment.
134+
More info about callback params see in documentation
135+
https://www.liqpay.ua/documentation/api/callback.
136+
137+
Args:
138+
data: json string with api params and encoded by base64.b64encode(str).
139+
140+
Returns:
141+
Dict
142+
143+
Example:
144+
liqpay = LiqPay(settings.LIQPAY_PUBLIC_KEY, settings.LIQPAY_PRIVATE_KEY)
145+
data = request.POST.get('data')
146+
response = liqpay.decode_data_from_str(data)
147+
print(response)
148+
{'commission_credit': 0.0, 'order_id': 'order_id_1', 'liqpay_order_id': 'T8SRXWM71509085055293216', ...}
149+
150+
"""
151+
return json.loads(base64.b64decode(data).decode('utf-8'))

liqpay/liqpay3.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,3 +110,28 @@ def str_to_sign(self, str):
110110

111111
def data_to_sign(self, params):
112112
return base64.b64encode(json.dumps(params).encode("utf-8")).decode("ascii")
113+
114+
def decode_data_from_str(self, data):
115+
"""Decoding data that were encoded by base64.b64encode(str)
116+
117+
Note:
118+
Often case of using is decoding data from LiqPay Callback.
119+
Dict contains all information about payment.
120+
More info about callback params see in documentation
121+
https://www.liqpay.ua/documentation/api/callback.
122+
123+
Args:
124+
data: json string with api params and encoded by base64.b64encode(str).
125+
126+
Returns:
127+
Dict
128+
129+
Example:
130+
liqpay = LiqPay(settings.LIQPAY_PUBLIC_KEY, settings.LIQPAY_PRIVATE_KEY)
131+
data = request.POST.get('data')
132+
response = liqpay.decode_data_from_str(data)
133+
print(response)
134+
{'commission_credit': 0.0, 'order_id': 'order_id_1', 'liqpay_order_id': 'T8SRXWM71509085055293216', ...}
135+
136+
"""
137+
return json.loads(base64.b64decode(data).decode('utf-8'))

0 commit comments

Comments
 (0)