Scot Sunnergren
06/20/2019, 6:10 PMdbarnett
06/20/2019, 6:14 PMdbarnett
06/20/2019, 6:14 PMScot Sunnergren
06/20/2019, 6:17 PMScot Sunnergren
06/20/2019, 6:18 PMdbarnett
06/20/2019, 6:18 PMdbarnett
06/20/2019, 6:18 PMScot Sunnergren
06/20/2019, 6:20 PMScot Sunnergren
06/20/2019, 6:20 PMdbarnett
06/20/2019, 6:21 PMdbarnett
06/20/2019, 6:22 PMScot Sunnergren
06/20/2019, 6:25 PMScot Sunnergren
06/20/2019, 6:26 PMScot Sunnergren
06/20/2019, 6:27 PMScot Sunnergren
06/21/2019, 2:27 PMdbarnett
06/21/2019, 2:47 PMdbarnett
06/21/2019, 2:48 PMScot Sunnergren
06/21/2019, 2:48 PMScot Sunnergren
06/21/2019, 2:53 PMdbaghdanov
06/21/2019, 3:55 PM<soap:Header>
<messages:tokenPassport>
<core:account>{{NSAccount}}</core:account>
<core:consumerKey>{{ConsumerKey.MyService}}</core:consumerKey>
<core:token>{{TokenKey.MyService}}</core:token>
<core:nonce>{{nonce}}</core:nonce>
<core:timestamp>{{timestamp}}</core:timestamp>
<core:signature algorithm="HMAC-SHA1">{{signature}}</core:signature>
</messages:tokenPassport>
</soap:Header>
dbaghdanov
06/21/2019, 3:56 PMbattk
06/21/2019, 4:01 PMScot Sunnergren
06/21/2019, 5:07 PMScot Sunnergren
06/21/2019, 5:08 PMdbaghdanov
06/21/2019, 5:20 PM{{TokenKey.MyService}}
is, it just holds the token key values.
I didn't see a <tokenPassport>
in your sample.battk
06/21/2019, 5:23 PMScot Sunnergren
06/21/2019, 5:24 PMdbaghdanov
06/21/2019, 5:27 PMdbaghdanov
06/21/2019, 5:28 PMdbaghdanov
06/21/2019, 5:28 PMdbaghdanov
06/21/2019, 5:30 PM<ns1:signature algorithm="HMAC-SHA1">{{signature}}1</ns1:signature>
but that: {{signature}}1
is in error, it should just be:
<ns1:signature algorithm="HMAC-SHA1">{{signature}}</ns1:signature>
Scot Sunnergren
06/21/2019, 5:48 PM<SOAP-ENV:Header>
<ns5:tokenPassport >
<ns3:account>1234567_SB1</ns3:account>
<ns3:consumerKey>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</ns3:consumerKey>
<ns3:token>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</ns3:token>
<ns3:nonce>ac5390e72f1126e8c144</ns3:nonce>
<ns3:timestamp>1561138990</ns3:timestamp>
<ns3:signature algorithm="HMAC-SHA1">hexRQbAQxxxxxxxxxxxxE96w=</ns3:signature>
</ns5:tokenPassport>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
Scot Sunnergren
06/21/2019, 5:48 PM<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Server.userException</faultcode>
<faultstring>Invalid login attempt.</faultstring>
<detail>
<platformFaults:invalidCredentialsFault xmlns:platformFaults="urn:<http://faults_2017_1.platform.webservices.netsuite.com|faults_2017_1.platform.webservices.netsuite.com>">
<platformFaults:code>USER_ERROR</platformFaults:code>
<platformFaults:message>Invalid login attempt.</platformFaults:message>
</platformFaults:invalidCredentialsFault>
<ns1:hostname xmlns:ns1="<http://xml.apache.org/axis/>">partners013.prod.svale.netledger.com</ns1:hostname>
</detail>
</soapenv:Fault>
Scot Sunnergren
06/21/2019, 5:50 PMdbaghdanov
06/21/2019, 5:52 PMlet account = pm.environment.get("NSAccount");
let consumerKey = pm.environment.get("ConsumerKey");
let consumerSecret = pm.environment.get("ConsumerSecret");
let tokenId = pm.environment.get("TokenKey");
let tokenSecret = pm.environment.get("TokenSecret");
let timestamp = new Date().getTime().toString().substring(0,10);
let nonce = CryptoJS.lib.WordArray.random(10).toString();
let baseString = `${account}&${consumerKey}&${tokenId}&${nonce}&${timestamp}`;
let key = `${consumerSecret}&${tokenSecret}`;
let signature = CryptoJS.HmacSHA1(baseString, key).toString(CryptoJS.enc.Base64);
pm.environment.set("signature", signature);
pm.environment.set("nonce", nonce);
pm.environment.set("timestamp", timestamp);
And you've setup your environment variables and everything?Scot Sunnergren
06/21/2019, 5:53 PMScot Sunnergren
06/21/2019, 5:53 PMScot Sunnergren
06/21/2019, 5:53 PMdbaghdanov
06/21/2019, 5:54 PMScot Sunnergren
06/21/2019, 5:57 PMdbaghdanov
06/21/2019, 6:01 PMpm.environment.set("signature", signature);
should be updating the environment variable each timeScot Sunnergren
06/21/2019, 6:01 PMScot Sunnergren
06/21/2019, 6:01 PMdbaghdanov
06/21/2019, 6:02 PMScot Sunnergren
06/21/2019, 6:03 PMScot Sunnergren
06/21/2019, 6:04 PMdbaghdanov
06/21/2019, 6:04 PMdbarnett
06/21/2019, 6:37 PMScot Sunnergren
06/21/2019, 6:40 PMdbarnett
06/21/2019, 6:41 PMdbarnett
06/21/2019, 6:41 PMScot Sunnergren
06/21/2019, 6:41 PMScot Sunnergren
06/21/2019, 6:42 PMScot Sunnergren
06/21/2019, 6:42 PMScot Sunnergren
06/21/2019, 6:42 PMdbarnett
06/21/2019, 6:43 PMbattk
06/21/2019, 6:43 PMbattk
06/21/2019, 6:43 PMdbarnett
06/21/2019, 6:43 PMdbarnett
06/21/2019, 6:44 PMScot Sunnergren
06/21/2019, 6:44 PMScot Sunnergren
06/21/2019, 6:44 PM<SOAP-ENV:Header>
<ns5:tokenPassport >
<ns3:account>{{account}}</ns3:account>
<ns3:consumerKey>{{consumerKey}}</ns3:consumerKey>
<ns3:token>{{tokenId}}</ns3:token>
<ns3:nonce>{{nonce}}</ns3:nonce>
<ns3:timestamp>{{timestamp}}</ns3:timestamp>
<ns3:signature algorithm="HMAC-SHA1">{{signature}}</ns3:signature>
</ns5:tokenPassport>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ns4:add>
Scot Sunnergren
06/21/2019, 6:45 PMlet account = pm.environment.get("account");
let consumerKey = pm.environment.get("consumerKey");
let consumerSecret = pm.environment.get("consumerSecret");
let tokenId = pm.environment.get("tokenId");
let tokenSecret = pm.environment.get("tokenSecret");
let timestamp = new Date().getTime().toString().substring(0,10);
let nonce = CryptoJS.lib.WordArray.random(10).toString();
let baseString = `${account}&${consumerKey}&${tokenId}&${nonce}&${timestamp}`;
let key = `${consumerSecret}&${tokenSecret}`;
let signature = CryptoJS.HmacSHA1(baseString, key).toString(CryptoJS.enc.Base64);
pm.environment.set("signature", signature);
pm.environment.set("nonce", nonce);
pm.environment.set("timestamp", timestamp);
Scot Sunnergren
06/21/2019, 6:47 PMScot Sunnergren
06/21/2019, 6:47 PMScot Sunnergren
06/21/2019, 6:49 PMbattk
06/21/2019, 6:50 PMScot Sunnergren
06/21/2019, 6:51 PMScot Sunnergren
06/21/2019, 6:52 PMdbarnett
06/22/2019, 1:27 AM