Skip to content

Commit

Permalink
Merge pull request #2 from wepay/urlencode_query_string_params
Browse files Browse the repository at this point in the history
urlencode query string params
  • Loading branch information
vasusen committed Jan 4, 2017
2 parents ae33655 + 4f2a390 commit e0d1fd7
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 12 deletions.
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,8 @@ querystring = signer.generate_query_string_params(
#=> client_id=your_client_id&
#=> page=https://wepay.com/account/12345&
#=> redirect_uri=https://partnersite.com/home&
#=> token=dfbffab5b6f7156402da8147886bba3eba67bd5baf2e780ba9d39e8437db7c47...
#=> stoken=dfbffab5b6f7156402da8147886bba3eba67bd5baf2e780ba9d39e8437db7c47...&
#=> token=token=acb1b5b8-af32-5356-bd2a-5bac74366e4c
```

## Installation
Expand Down
6 changes: 4 additions & 2 deletions tests/test_runner.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,10 @@
DEFAULT_CLIENT_SECRET = '1594122c5c36f438f8ba'
DEFAULT_SIGNATURE = ('c2de34c15cd76f797cf80781747da3874639a827a4cb79dcd862cc17b35cf2e2c721ea7d49ab'
'9f60590d637ae0f51fd4ed8ddb551b922e0cd7e35a13b86de360')
ENCODED_PAGE = 'https%3A%2F%2Fwepay.com%2Faccount%2F12345'
DEFAULT_PAGE = 'https://wepay.com/account/12345'
DEFAULT_REDIRECT_URI = 'https://partnersite.com/home'
ENCODED_REDIRECT_URI = 'https%3A%2F%2Fpartnersite.com%2Fhome'
DEFAULT_QS = 'client_id={}&page={}&redirect_uri={}&stoken={}&token={}'
DEFAULT_TOKEN = '10c936ca-5e7c-508b-9e60-b211c20be9bc'

Expand Down Expand Up @@ -67,7 +69,7 @@ def test_query_string_params(self):
)

self.assertEqual(
DEFAULT_QS.format(DEFAULT_CLIENT_ID, DEFAULT_PAGE, DEFAULT_REDIRECT_URI, DEFAULT_SIGNATURE, DEFAULT_TOKEN),
DEFAULT_QS.format(DEFAULT_CLIENT_ID, ENCODED_PAGE, ENCODED_REDIRECT_URI, DEFAULT_SIGNATURE, DEFAULT_TOKEN),
querystring
)

Expand All @@ -82,7 +84,7 @@ def test_query_string_params_client_secret(self):
)

self.assertEqual(
DEFAULT_QS.format(DEFAULT_CLIENT_ID, DEFAULT_PAGE, DEFAULT_REDIRECT_URI, DEFAULT_SIGNATURE, DEFAULT_TOKEN),
DEFAULT_QS.format(DEFAULT_CLIENT_ID, ENCODED_PAGE, ENCODED_REDIRECT_URI, DEFAULT_SIGNATURE, DEFAULT_TOKEN),
querystring
)

Expand Down
12 changes: 3 additions & 9 deletions wepay/signer/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
"""

from __future__ import print_function
import collections
import hashlib
import hmac
import six
Expand Down Expand Up @@ -136,15 +137,8 @@ def generate_query_string_params(self, **kwargs):
signed_token = self.sign(**kwargs)
kwargs['client_id'] = self.client_id
kwargs['stoken'] = signed_token
qsa = []

payload_keys = list(six.viewkeys(kwargs))
payload_keys.sort()

for key in payload_keys:
qsa.append("{}={}".format(key, kwargs[key]))

return "&".join(qsa)
sorted_keyval = collections.OrderedDict(sorted(kwargs.items()))
return six.moves.urllib.parse.urlencode(sorted_keyval, True)

# --------------------------------------------------------------------------
# Private
Expand Down

0 comments on commit e0d1fd7

Please sign in to comment.