Создание подписи NetSuite - PullRequest
       18

Создание подписи NetSuite

0 голосов
/ 12 февраля 2020

Я успешно справился с этим в PostMan и пытаюсь перепроектировать, как создается подпись. Я успешно справлялся с «учебными пособиями», но не с этим, я перепробовал все, что мог придумать, разные варианты URL, разную последовательность кодирования и т. Д. c ... Я все еще не успешен. Будем очень благодарны за любые предложения о том, что я могу попробовать или что я делаю неправильно. Код ниже:

import hmac
import hashlib
import urllib.parse
import base64

client_secret = '3d1cxxxxxxxxxxxxxx'
token_secret = '9axxxxxxxxx'

accept = 'application/swagger+json'
oauth_consumer_key='f1415068f6b2ab480d1f'
oauth_token =   'b0dc6b9449'
oauth_nonce = '8ADKswXgwCa'
oauth_timestamp = '1581522490'
oauth_signature_method ='HMAC-SHA256'
oauth_version = '1.0'
oauth_realm="ns_realm"
select = 'customer'

method = 'GET&'
url = 'https://ns_realm.suitetalk.api.netsuite.com/rest/platform/v1/record'

basestring= ''
basestring = basestring + method
basestring = basestring + url
basestring = basestring + '&oauth_consumer_key='+ oauth_consumer_key
basestring = basestring + '&oauth_nonce='+ oauth_nonce
basestring = basestring + '&oauth_realm='+oauth_realm
basestring = basestring + '&oauth_signature_method='+oauth_signature_method
basestring = basestring + '&oauth_timestamp='+oauth_timestamp
basestring = basestring + '&oauth_token='+ oauth_token
basestring = basestring + '&oauth_version=' + oauth_version
basestring = basestring + '&select=' + select

basestring_encoded = urllib.parse.quote(basestring)

signature_key = client_secret+'&'+token_secret
signature_key = urllib.parse.quote(signature_key)

h = hmac.new(signature_key.encode('utf-8'), msg=basestring_encoded.encode('utf-8'), digestmod=hashlib.sha256).digest()
h = base64.b64encode(h).decode()
...