[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"doc-seo-306627-105":3,"detail-sidebar-cat-1-en-105":80,"doc-detail-306627-en":126},{"code":4,"msg":5,"data":6},0,"ok",{"site_id":7,"language":8,"slug":9,"title":10,"keywords":11,"description":12,"schema_data":13,"social_meta":73,"head_meta":75,"extra_data":77,"updated_unix":79},105,"en","compute-signature-version-20250917","Compute Signature - Version 20250917","","Online version instructions for generating API request signatures, including preparing key ID and secret key, building the CanonicalizedQueryString from sorted request parameters, and applying RFC3986-compliant UTF-8 percent-encoding. It details constructing the StringToSign from the HTTP method and canonical query string, computing the HMAC-SHA1 signature using the secret with UTF-8 encoding, then converting the result to Base64 as the final Signature value. Finally, it explains adding Signature to request parameters for authentication.",{"@graph":14,"@context":72},[15,34,55],{"@type":16,"itemListElement":17},"BreadcrumbList",[18,23,27,31],{"item":19,"name":20,"@type":21,"position":22},"https://docshare.wps.com","Home","ListItem",1,{"item":24,"name":25,"@type":21,"position":26},"https://docshare.wps.com/template/","Template",2,{"item":28,"name":29,"@type":21,"position":30},"https://docshare.wps.com/template/general/","General",3,{"item":32,"name":10,"@type":21,"position":33},"https://docshare.wps.com/template/compute-signature-version-20250917/306627/",4,{"url":32,"name":10,"@type":35,"image":36,"author":41,"headline":10,"publisher":44,"fileFormat":47,"inLanguage":8,"description":12,"dateModified":48,"datePublished":49,"encodingFormat":47,"isAccessibleForFree":50,"interactionStatistic":51},"DigitalDocument",{"url":37,"@type":38,"width":39,"height":40},"https://docshare.wps.com/thumbnails/compute-signature-version-20250917/306627.png","ImageObject",442,249,{"name":42,"@type":43},"Aran","Person",{"url":19,"name":45,"@type":46},"DocShare","Organization","application/pdf","2026-09-20","2026-09-19",true,{"@type":52,"interactionType":53,"userInteractionCount":22},"InteractionCounter",{"@type":54},"ViewAction",{"@type":56,"mainEntity":57},"FAQPage",[58,64,68],{"name":59,"@type":60,"acceptedAnswer":61},"What parameters are needed before calculating the signature?","Question",{"text":62,"@type":63},"Prepare the key ID and key. The key ID identifies visitors, while the key (secret) is used to encrypt the signature string and must remain confidential.","Answer",{"name":65,"@type":60,"acceptedAnswer":66},"How is the CanonicalizedQueryString constructed?",{"text":67,"@type":63},"Sort request parameters by parameter name in dictionary order, percent-encode each name and value using UTF-8 with RFC3986 rules, then join them with '=' and concatenate in order to form the CanonicalizedQueryString.",{"name":69,"@type":60,"acceptedAnswer":70},"How is the final Signature value computed?",{"text":71,"@type":63},"Create StringToSign, calculate HMAC-SHA1 using the AccessSecret with UTF-8 encoding of StringToSign, then Base64-encode the HMAC result to obtain Signature.","https://schema.org",{"og:url":32,"og:type":74,"og:title":10,"og:site_name":45,"og:description":12},"article",{"robots":76,"canonical":32},"index,follow",{"doc_id":78,"site_id":7},306627,1789839047,{"code":4,"msg":81,"data":82},"success",[83,88,93,98,103,108,113,118,123],{"id":84,"doc_module":22,"doc_module_name":25,"category_name":85,"show_sort_weight":86,"slug":87},11,"Presentations",90,"presentations",{"id":89,"doc_module":22,"doc_module_name":25,"category_name":90,"show_sort_weight":91,"slug":92},12,"Resumes",80,"resumes",{"id":94,"doc_module":22,"doc_module_name":25,"category_name":95,"show_sort_weight":96,"slug":97},14,"Invoices",70,"invoices",{"id":99,"doc_module":22,"doc_module_name":25,"category_name":100,"show_sort_weight":101,"slug":102},15,"Posters",60,"posters",{"id":104,"doc_module":22,"doc_module_name":25,"category_name":105,"show_sort_weight":106,"slug":107},16,"Social Media",50,"social-media",{"id":109,"doc_module":22,"doc_module_name":25,"category_name":110,"show_sort_weight":111,"slug":112},17,"Forms",40,"forms",{"id":114,"doc_module":22,"doc_module_name":25,"category_name":115,"show_sort_weight":116,"slug":117},18,"Letters",30,"letters",{"id":119,"doc_module":22,"doc_module_name":25,"category_name":120,"show_sort_weight":121,"slug":122},21,"Paper Templates",5,"papers-templates",{"id":124,"doc_module":22,"doc_module_name":25,"category_name":29,"show_sort_weight":4,"slug":125},158,"general-158",{"code":4,"msg":81,"data":127},{"doc_id":78,"user_id":128,"nickname":42,"user_avatar":129,"doc_module":22,"category_id":124,"category_name":29,"doc_title":10,"doc_description":12,"doc_content":130,"file_id":131,"file_url":132,"file_type":133,"file_size":134,"view_count":22,"is_deleted":4,"is_public":22,"is_downloadable":22,"audit_status":22,"page_count":135,"language":136,"language_code":8,"site_id":7,"html_lang":8,"table_of_contents":137,"faqs":138,"seo_title":139,"seo_description":12,"update_tm":79,"read_time":30},137455076865,"https://ap-avatar.wpscdn.com/davatar_29158cc5080c5b710cf443261637dec0","Compute Signature  \nVersion: 20250917  \nOnline Version  \nContents  \n1. 1. Get the key ID and key ...................................... 2  \n2. 2. Signature method ........................................... 3  \n2.1. 2.1. Construct a Canonicalized Query String using the request parameters......................................................... 3  \n2.2. 2.2. Construct a signature string ................................... 4  \n2.3. 2.3. Calculate the HMAC value ..................................... 4  \n2.4. 2.4. Calculate the signature value ................................. 4  \n2.5. 2.5. Add a signature ................................................ 5  \nIoT platform authenticates the sender of each API access request, so API requests must include Signature information in the request.  \nDescription The platform provides Java language signature sample code, reference code, quickly generate signatures. Download java signature sample code  \nThe following is a detailed method of calculating the signature  \n1. 1. Get the key ID and key  \nBefore actually calculating the signature, there are several necessary parameters that need to be prepared. When signing, you need to sign in the console. AccessKey managementpage to view your key ID and key . Among them, key ID used to identify visitors; key is the key used to encrypt the signature string and verify the signature string on the server side, must be strictly confidential .  \n2. 2. Signature method  \nSign the request as follows:  \n2.1. 2.1. Construct a Canonicalized Query String using the request parameters .  \na. Sort parameters. In the dictionary order of the parameter names, the request parameters (including Common parameters and interface, but cannot include Signature parameter itself) to sort.  \nDescription When using the GET method to submit a request, these parameters are the parameters in the request URL, that is, the URL. What? Later & connected parts.  \nb. Perform URL encoding on the name and value of each request parameter. Names and values are to be used in accordance with the UTF-8 character set. RFC3986rules for encoding. The encoding rules are as follows:  \n• characters A ~ Z, a ~ z, 0~9, and characters - , _ , . , ~ no coding.  \n• other characters are encoded %XY format, where XY is the hexadecimal representation of the character corresponding to the ASCII code. For example, double quotation marks in English “ the corresponding coding is %22 .  \n• extended UTF-8 characters, encoded %XY%ZA   the format of.  \n• english spaces should be encoded % 20 instead of a plus + .  \nThe encoding method and application/x-www-form-urlencoded the MIME format encoding algorithm is similar but different. If you are using the Java Standard [Library. java.net.URLEncoder](Library. java.net.URLEncoder) , you can use the standard library first percentEncode encoding, followed by a plus sign in the encoded character + replace % 20 , Asterisk * replace % 2A ,% 7E replace with tilde ~ , you can get the encoded string described by the above rule.  \n1 private static final String ENCODING = \"UTF-8\"; private static String percentEncode(String value) throws  \n2  \nUnsupportedEncodingException {  \nreturn value != null ? URLEncoder .encode(value, ENCODING) . replace(\"+\", 3  \n\"%20\") . replace(\"*\", \"%2A\") . replace(\"%7E\", \"~\") : null;  \n4 }  \nc. Connect the encoded parameter names and values with an equal sign (=) . d. Use the strings obtained by connecting English equal signs in the dictionary order of parameter names & symbolic connection. Once completed, the canonicalized request string (CanonicalizedQueryString) is obtained.  \n2.2. 2.2. Construct a signature string  \nUse percentEncode process the normalized string obtained in step 1 to construct the string used to calculate the signature. The following rules can be referred:  \n1 StringToSign=  \n2 [HTTPMethod](HTTPMethod) + \"&\" +  \n3 percentEncode(\"/\") + \"&\" +  \n4 percentEncode(CanonicalizedQueryString)  \nParameter description: ○ [HTTPMethod: The](HT","cbCaiq0eBDaQK5Lp","https://ap.wps.com/l/cbCaiq0eBDaQK5Lp","pdf",63438,7,"English","# Contents\n## Get the key ID and key\n## Signature method\n### Construct a Canonicalized Query String using the request parameters\n### Construct a signature string\n### Calculate the HMAC value\n### Calculate the signature value\n### Add a signature","[{\"question\":\"What parameters are needed before calculating the signature?\",\"answer\":\"Prepare the key ID and key. The key ID identifies visitors, while the key (secret) is used to encrypt the signature string and must remain confidential.\"},{\"question\":\"How is the CanonicalizedQueryString constructed?\",\"answer\":\"Sort request parameters by parameter name in dictionary order, percent-encode each name and value using UTF-8 with RFC3986 rules, then join them with '=' and concatenate in order to form the CanonicalizedQueryString.\"},{\"question\":\"How is the final Signature value computed?\",\"answer\":\"Create StringToSign, calculate HMAC-SHA1 using the AccessSecret with UTF-8 encoding of StringToSign, then Base64-encode the HMAC result to obtain Signature.\"}]","Compute Signature - Version 20250917 | PDF"]