Skip to content

Commit 159edd4

Browse files
committed
API 3.0
1 parent 8e9e734 commit 159edd4

File tree

2 files changed

+9
-25
lines changed

2 files changed

+9
-25
lines changed

liqpay/liqpay.py

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -98,12 +98,11 @@ def cnb_form(self, params):
9898
currency=currency if currency != 'RUR' else 'RUB',
9999
sandbox=int(bool(params.get('sandbox')))
100100
)
101-
102-
params.update(signature=self.cnb_signature(params))
103-
form_action_url = urljoin(self._host, 'pay/')
101+
params_templ = {'data': base64.b64encode(json.dumps(params))}
102+
params_templ['signature'] = self._make_signature(self._private_key, params_templ['data'], self._private_key)
103+
form_action_url = urljoin(self._host, 'checkout/')
104104
format_input = lambda k, v: self.INPUT_TEMPLATE.format(name=k, value=to_unicode(v))
105-
inputs = [format_input(k, v) for k, v in params.iteritems()]
106-
105+
inputs = [format_input(k, v) for k, v in params_templ.iteritems()]
107106
return self.FORM_TEMPLATE.format(
108107
action=form_action_url,
109108
language=language,
@@ -112,18 +111,8 @@ def cnb_form(self, params):
112111

113112
def cnb_signature(self, params):
114113
params = self._prepare_params(params)
115-
signature_values = [
116-
self._private_key,
117-
to_unicode(params.get("amount", u'')),
118-
to_unicode(params.get("currency", u'')),
119-
to_unicode(params.get("public_key", u'')),
120-
to_unicode(params.get("order_id", u'')),
121-
to_unicode(params.get("type", u'')),
122-
to_unicode(params.get("description", u'')),
123-
to_unicode(params.get("result_url", u'')),
124-
to_unicode(params.get("server_url", u''))
125-
]
126-
return self._make_signature(*signature_values)
114+
print base64.b64encode(json.dumps(params))
115+
return self._make_signature(self._private_key, base64.b64encode(json.dumps(params)), self._private_key)
127116

128117
def str_to_sign(self, str):
129118
return base64.b64encode(hashlib.sha1(str).digest())

liqpay/test.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,9 @@ def test_api(self):
1414

1515
def test_gen_form(self):
1616
expected_form_out = (
17-
u'<form method="post" action="https://www.liqpay.com/api/pay/" accept-charset="utf-8">\n'
18-
u'\t<input type="hidden" name="public_key" value=""/>\n'
19-
u'\t<input type="hidden" name="description" value="\u0442\u0435\u0441\u0442"/>\n'
20-
u'\t<input type="hidden" name="language" value="ru"/>\n'
21-
u'\t<input type="hidden" name="sandbox" value="0"/>\n'
22-
u'\t<input type="hidden" name="currency" value="UAH"/>\n'
23-
u'\t<input type="hidden" name="amount" value="3940"/>\n'
24-
u'\t<input type="hidden" name="signature" value="jkwtxOAipwST6+xFKfleY/4ZES0="/>\n'
17+
u'<form method="post" action="https://www.liqpay.com/api/checkout/" accept-charset="utf-8">\n'
18+
u'\t<input type="hidden" name="data" value="eyJwdWJsaWNfa2V5IjogIiIsICJkZXNjcmlwdGlvbiI6ICJcdTA0NDJcdTA0MzVcdTA0NDFcdTA0NDIiLCAibGFuZ3VhZ2UiOiAicnUiLCAic2FuZGJveCI6IDAsICJjdXJyZW5jeSI6ICJVQUgiLCAiYW1vdW50IjogIjM5NDAiLCAidGVzdCI6ICJjY2NjIn0="/>\n'
19+
u'\t<input type="hidden" name="signature" value="Zdm/xbS30v9ZTNXrLXeW9QFVxHQ="/>\n'
2520
u' <input type="image" src="//static.liqpay.com/buttons/p1ru.radius.png" name="btn_text" />\n'
2621
u'</form>'
2722
)

0 commit comments

Comments
 (0)