@@ -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 ())
0 commit comments