function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Kiran Naidu 7Kiran Naidu 7 

Netsuite Oauth1.0 authentication from Salesforce


Kiran Naidu 7 
NetSuite oauth1.0 - oauth_signature_method= hmac-sha256
Hi All,
I am trying to integrate salesforce with Netsuite using Oauth 1.0 with oauth_signature_method= hmac-sha256 
I have the below code and trying to Get the Customer details

String nonce = String.valueOf(Crypto.getRandomLong());
String tnow = String.valueOf(DateTime.now().getTime()/1000);
String baseString = '7156829&ecbb91e9da54d2fb032284c475a19359ab93bf7f4f9397ee0f88de66c8408e7f&b8410d1e3f16268240a7627f26b60b54c8e089109340ffaf892ba916ca2c1b93&'+nonce+'&'+tnow+'';
system.debug('baseString'+ baseString);
String consumerSecret = '4ed07ff01980f0aa7afaaabba0d754769206ababb3e6155cf4908b7c3784caba';
String tokenSecret = '9f0c2fd6348a851dc1054f243da4883b9588c6724a4a65f0999c008bcd09dd5c';
String signingkey = consumerSecret+'&'+tokenSecret;
system.debug('signingkey'+ signingkey);
//Blob sig = Crypto.generateMac('hmacSHA256', Blob.valueOf(baseString), Blob.valueOf(consumerSecret+'&'+(tokenSecret!=null ? tokenSecret : '')));
Blob sig = Crypto.generateMac('hmacSHA256', Blob.valueOf(baseString), Blob.valueOf(signingkey));
String signature = EncodingUtil.urlEncode(EncodingUtil.base64encode(sig), 'UTF-8');
system.debug('sig'+ sig);        
System.debug('Signature: '+signature);
            Http http = new Http();
            HttpRequest request = new HttpRequest();
            String AuthString = 'OAuth realm=XXXXXXX", oauth_consumer_key="ecbb91e9da54d2fb032284c475a19359ab93bf7f4f9397ee0f88de66c8408e7f", oauth_token="b8410d1e3f16268240a7627f26b60b54c8e089109340ffaf892ba916ca2c1b93", oauth_signature_method="HMAC-SHA256", oauth_timestamp="'+tnow+'", oauth_nonce="'+nonce+'", oauth_version="1.0", oauth_signature="'+signature+'"';
            System.debug('Authorization: '+AuthString);
            request.setEndpoint('https://xxxxxx.suitetalk.api.netsuite.com/services/rest/record/v1/customer/7');
            request.setMethod('GET');
            request.setHeader('Authorization', AuthString);
            //request.setHeader('Content-Type', 'application/x-www-form-urlencoded');
            HttpResponse response = http.send(request);
            System.debug(response.getBody());


but I get below Error

{"type":"https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2","title":"Unauthorized","status":401,"o:errorDetails":[{"detail":"Invalid login attempt.","o:errorCode":"INVALID_LOGIN_ATTEMPT"}]}

I verified Audit log in NetSuite and I see "Invalid Signature"

Can anyone help/suggest me to fix this issue.
SwethaSwetha (Salesforce Developers) 
Duplicate of https://developer.salesforce.com/forums/ForumsMain?id=9062I000000DJc3