Advertisement
Guest User

Untitled

a guest
Jul 29th, 2015
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.30 KB | None | 0 0
  1. from hashlib import sha1
  2. import hmac
  3. from base64 import b64encode
  4. from urllib import urlencode
  5. from datetime import datetime
  6.  
  7. def paypal_urlencode(s):
  8. encode = lambda x: x if x in "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_+" else '%%%x' % ord(x)
  9. return ''.join(map(encode, s.replace(' ','+')))
  10.  
  11. def paypal_authorisation(token, ep, consumer, method="POST", sandbox=True):
  12. params = OrderedDict(
  13. oauth_consumer_key=consumer['key'],
  14. oauth_version='1.0',
  15. oauth_signature_method="HMAC-SHA1",
  16. oauth_token=token['key'],
  17. oauth_timestamp=datetime.now().strftime('%s')
  18. )
  19. print params['oauth_timestamp']
  20. key = "&".join((paypal_urlencode(consumer['secret']), paypal_urlencode(token['secret'])))
  21. sig_base = "&".join((method, paypal_urlencode(ep), paypal_urlencode("oauth_consumer_key=%(oauth_consumer_key)s&oauth_signature_method=%(oauth_signature_method)s&oauth_timestamp=%(oauth_timestamp)s&oauth_token=%(oauth_token)s&oauth_version=%(oauth_version)s" % params)))
  22. h= hmac.new(key.encode('ascii'), sig_base.encode('ascii'), sha1)
  23. signature=b64encode(h.digest())
  24. print dict(key=key,sigbase=sig_base.encode('ascii'), sig=signature)
  25.  
  26. return "token=%s,signature=%s,timestamp=%s" % (token['key'], signature, params['oauth_timestamp'])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement