[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"schema-global-basic:zh-CN":3,"developer-center-document-stjk6a2euo5bb9rnu5xidl9y-zh-CN":201},{"@graph":4,"@context":200},[5,103,164],{"@id":6,"url":7,"logo":8,"name":11,"@type":12,"brand":13,"sameAs":15,"slogan":18,"address":19,"audience":23,"areaServed":29,"knowsAbout":49,"makesOffer":69,"description":82,"serviceType":83,"contactPoint":84,"foundingDate":96,"alternateName":97,"hasCredential":98},"https://www.esign.ai/zh-CN/#org","https://www.esign.ai/zh-CN/",{"url":9,"@type":10},"https://www.esign.ai/cn/logo_black.svg","ImageObject","eSign.AI","Organization",{"name":11,"@type":14},"Brand",[16,17],"https://www.linkedin.com/company/esignai","https://www.youtube.com/@eSignAI","AI 驱动的全球合同自动化与合规电子签名平台",{"@type":20,"addressCountry":21,"addressLocality":22},"PostalAddress","HK","中国香港",{"@type":24,"audienceType":25},"Audience",[26,27,28],"企业客户","中大型企业","中小企业",[30,33,34,36,38,40,42,44,47],{"name":31,"@type":32},"中国","Country",{"name":22,"@type":32},{"name":35,"@type":32},"新加坡",{"name":37,"@type":32},"马来西亚",{"name":39,"@type":32},"印度尼西亚",{"name":41,"@type":32},"越南",{"name":43,"@type":32},"菲律宾",{"name":45,"@type":46},"亚太地区","Place",{"name":48,"@type":46},"全球",[50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68],"AI 合同自动化","电子签名","数字合同管理","工作流自动化","欧盟 eIDAS 条例","美国 ESIGN 法案","美国 UETA 法案","中国电子签名法","中国香港电子交易条例","新加坡电子交易法","马来西亚数字签名法","印度尼西亚 ITE 法","越南电子交易法","菲律宾电子商务法","GDPR 通用数据保护条例","跨境数据合规","数据安全与加密","企业级电子签名解决方案","亚太地区电子签名法规",{"url":70,"name":71,"@type":72,"itemListElement":73},"https://www.esign.ai/zh-CN/pricing","套餐与定价","OfferCatalog",[74,79],{"name":75,"@type":76,"price":77,"priceCurrency":78},"基础版","Offer","199","USD",{"name":80,"@type":76,"price":81,"priceCurrency":78},"专业版","联系销售","eSign.AI 是 AI 驱动的合同自动化平台,支持全球 180+ 国家合规电子签名,自动化文档流转,保障跨境合同合规与法律效力。",[50,51,52,53],[85],{"@type":86,"email":87,"telephone":88,"areaServed":89,"contactType":90,"availableLanguage":91},"ContactPoint","sales@esign.ai","+852-46749867","Global","客户支持",[92,93,94,95],"zh-CN","zh-HK","zh-TW","en","2016","eSignGlobal",{"url":99,"name":100,"@type":101,"description":102},"https://www.esign.ai/zh-CN/eSignature-Legality","AI 合同合法性与合规指南","CreativeWork","eSign.AI 利用 AI 确保合同执行符合 ESIGN 法案、UETA、eIDAS、中国电子签名法及亚太跨境合规要求。",{"@id":104,"url":105,"name":106,"@type":107,"hasPart":108,"publisher":157,"inLanguage":92,"description":158,"alternateName":159,"potentialAction":160,"mainEntityOfPage":7},"https://www.esign.ai/zh-CN/#website","https://www.esign.ai/zh-CN","eSign.AI 官方网站","WebSite",[109,115,121,126,129,133,137,142,147,152],{"@id":110,"url":111,"name":112,"@type":113,"description":114},"https://www.esign.ai/zh-CN/customer-story#list","https://www.esign.ai/zh-CN/customer-story","客户案例","WebPage","了解金融、制造、科技等行业的企业如何通过 AI 合同自动化加速数字签署,提升合规效率。",{"@id":116,"url":117,"name":118,"@type":113,"isPartOf":119,"description":120},"https://www.esign.ai/zh-CN/integrations#overview","https://www.esign.ai/zh-CN/integrations","产品集成",{"@id":104},"将 eSign.AI 与 Salesforce、Google Drive、Microsoft 365 等系统打通,实现 AI 合同流程自动化。",{"@id":122,"url":123,"name":124,"@type":113,"description":125},"https://www.esign.ai/zh-CN/features#overview","https://www.esign.ai/zh-CN/features","产品功能","了解 AI 合同执行、身份认证、流程自动化、模板与 API 等核心功能。",{"@id":127,"url":70,"name":71,"@type":113,"description":128},"https://www.esign.ai/zh-CN/pricing#catalog","对比 eSign.AI 各档套餐,为团队和企业找到最合适的 AI 合同自动化方案。",{"@id":130,"url":99,"name":131,"@type":113,"description":132},"https://www.esign.ai/zh-CN/eSignature-Legality#guide","法律效力与合规","查阅各国电子签名 AI 合规指南(eIDAS、ESIGN、UETA、中国电子签名法、亚太法规)。",{"@id":134,"url":135,"name":81,"@type":113,"description":136},"https://www.esign.ai/zh-CN/contact-sales#contact","https://www.esign.ai/zh-CN/contact-sales","与 eSign.AI 销售团队沟通企业级 AI 合同自动化需求。",{"@id":138,"url":139,"name":140,"@type":113,"description":141},"https://www.esign.ai/zh-CN/developers#overview","https://www.esign.ai/zh-CN/developers","开发者与 API","访问开发者文档、SDK 与 API 接口,将 AI 合同执行能力集成到您的应用中。",{"@id":143,"url":144,"name":145,"@type":113,"description":146},"https://www.esign.ai/zh-CN/resources#hub","https://www.esign.ai/zh-CN/resources","资源中心","浏览产品指南、客户案例、白皮书及 AI 合同自动化最佳实践。",{"@id":148,"url":149,"name":150,"@type":113,"description":151},"https://www.esign.ai/zh-CN/news#center","https://www.esign.ai/zh-CN/news","新闻与媒体","阅读 eSign.AI 的最新动态、产品更新与媒体报道。",{"@id":153,"url":154,"name":155,"@type":113,"description":156},"https://www.esign.ai/zh-CN/blog#hub","https://www.esign.ai/zh-CN/blog","博客","AI 合同自动化、合规与流程自动化的洞察与文章。",{"@id":6},"eSign.AI 官方网站——AI 驱动的合同自动化平台,为全球企业提供安全、合规、具备法律效力的电子签名服务。","eSign.AI AI 合同自动化平台",{"@type":161,"target":162,"query-input":163},"SearchAction","https://www.esign.ai/zh-CN/search?q={query}","required name=query",{"@id":165,"name":166,"@type":167,"itemListElement":168},"https://www.esign.ai/zh-CN/#pages","主要站点入口","ItemList",[169,173,176,179,182,185,188,191,194,197],{"item":170,"@type":171,"position":172},{"@id":110},"ListItem",1,{"item":174,"@type":171,"position":175},{"@id":116},2,{"item":177,"@type":171,"position":178},{"@id":122},3,{"item":180,"@type":171,"position":181},{"@id":127},4,{"item":183,"@type":171,"position":184},{"@id":130},5,{"item":186,"@type":171,"position":187},{"@id":134},6,{"item":189,"@type":171,"position":190},{"@id":138},7,{"item":192,"@type":171,"position":193},{"@id":143},8,{"item":195,"@type":171,"position":196},{"@id":148},9,{"item":198,"@type":171,"position":199},{"@id":153},10,"https://schema.org",{"apiTree":202,"documentTree":505,"securityTree":584,"detail":585},[203],{"id":204,"documentId":205,"title":206,"sort":172,"parent_id":207,"only_as_menu":208,"type":209,"nodeId":205,"routeId":205,"children":210},855,"o4686obgtwjoscs5s6xooyi1","API文档","0",true,"api",[211,222,285,326,351,368,398,424,440,500],{"id":212,"documentId":213,"title":214,"sort":172,"parent_id":205,"only_as_menu":208,"type":209,"nodeId":213,"routeId":213,"children":215},3370,"b1jzh5soo88eektjgjg0z9cj","oAuth2",[216],{"id":217,"documentId":218,"title":219,"sort":172,"parent_id":213,"only_as_menu":220,"type":209,"nodeId":218,"routeId":218,"children":221},872,"mmcjntoocjtwl1frc6khk3k4","oAuth授权",false,[],{"id":223,"documentId":224,"title":225,"sort":199,"parent_id":205,"only_as_menu":208,"type":209,"nodeId":224,"routeId":224,"children":226},3498,"emn5khbfwir61or7uzo7mrde","信封管理",[227,232,237,243,249,255,261,267,273,279],{"id":228,"documentId":229,"title":230,"sort":172,"parent_id":224,"only_as_menu":220,"type":209,"nodeId":229,"routeId":229,"children":231},3299,"q9infiuohmf1fui6dj083hxj","快速发起信封",[],{"id":233,"documentId":234,"title":235,"sort":199,"parent_id":224,"only_as_menu":220,"type":209,"nodeId":234,"routeId":234,"children":236},1346,"xlp3m1z044jtkeopyh7ccm5e","创建信封",[],{"id":238,"documentId":239,"title":240,"sort":241,"parent_id":224,"only_as_menu":220,"type":209,"nodeId":239,"routeId":239,"children":242},820,"ewmccs9nc11erxmwmg7ye609","开启信封",20,[],{"id":244,"documentId":245,"title":246,"sort":247,"parent_id":224,"only_as_menu":220,"type":209,"nodeId":245,"routeId":245,"children":248},797,"k1tcxkpirnvc17wubklucx6d","结束信封",40,[],{"id":250,"documentId":251,"title":252,"sort":253,"parent_id":224,"only_as_menu":220,"type":209,"nodeId":251,"routeId":251,"children":254},713,"xup11xm3pvlk7lkvejly03t4","获取签署地址",50,[],{"id":256,"documentId":257,"title":258,"sort":259,"parent_id":224,"only_as_menu":220,"type":209,"nodeId":257,"routeId":257,"children":260},3155,"pgwry228y585ip83zux1m7ky","查询信封详情",60,[],{"id":262,"documentId":263,"title":264,"sort":265,"parent_id":224,"only_as_menu":220,"type":209,"nodeId":263,"routeId":263,"children":266},1286,"n383yqr1z4cw0g2tncva1i9l","撤销信封",70,[],{"id":268,"documentId":269,"title":270,"sort":271,"parent_id":224,"only_as_menu":220,"type":209,"nodeId":269,"routeId":269,"children":272},581,"kfn3jzvf0coqrmgsyal5s3h7","催办信封",80,[],{"id":274,"documentId":275,"title":276,"sort":277,"parent_id":224,"only_as_menu":220,"type":209,"nodeId":275,"routeId":275,"children":278},803,"fsagl9dy4ybdzgef0sfek43a","获取预览签署页地址",90,[],{"id":280,"documentId":281,"title":282,"sort":283,"parent_id":224,"only_as_menu":220,"type":209,"nodeId":281,"routeId":281,"children":284},1264,"yohj3fn3f4ydc19bda85u0au","创建信封发送视图",100,[],{"id":286,"documentId":287,"title":288,"sort":241,"parent_id":205,"only_as_menu":208,"type":209,"nodeId":287,"routeId":287,"children":289},789,"ouy9r6x8lqhj09nuza6s28kq","文件管理",[290,295,300,305,311,316,321],{"id":291,"documentId":292,"title":293,"sort":172,"parent_id":287,"only_as_menu":220,"type":209,"nodeId":292,"routeId":292,"children":294},866,"uklome95b6imdx8l1s4kvpne","上传文件",[],{"id":296,"documentId":297,"title":298,"sort":199,"parent_id":287,"only_as_menu":220,"type":209,"nodeId":297,"routeId":297,"children":299},793,"r3sk47rnpk5laxqcvasszzj7","根据关键字获取坐标",[],{"id":301,"documentId":302,"title":303,"sort":241,"parent_id":287,"only_as_menu":220,"type":209,"nodeId":302,"routeId":302,"children":304},3450,"dygf6h69qejdsxxzzi1zzetb","下载文件",[],{"id":306,"documentId":307,"title":308,"sort":309,"parent_id":287,"only_as_menu":220,"type":209,"nodeId":307,"routeId":307,"children":310},3354,"b0uxzdvf2umyejj9td3go60x","添加签署文件",30,[],{"id":312,"documentId":313,"title":314,"sort":247,"parent_id":287,"only_as_menu":220,"type":209,"nodeId":313,"routeId":313,"children":315},3386,"c2s5iyao8xl60jnu9fyld71b","删除签署文件",[],{"id":317,"documentId":318,"title":319,"sort":253,"parent_id":287,"only_as_menu":220,"type":209,"nodeId":318,"routeId":318,"children":320},660,"mq2v1gptzmgbxdnpt2naew0z","添加附件",[],{"id":322,"documentId":323,"title":324,"sort":259,"parent_id":287,"only_as_menu":220,"type":209,"nodeId":323,"routeId":323,"children":325},676,"pd7zcrwaudxp9n5nhmax66th","删除附件",[],{"id":327,"documentId":328,"title":329,"sort":309,"parent_id":205,"only_as_menu":208,"type":209,"nodeId":328,"routeId":328,"children":330},64,"v8y4g3ok61tys8mwr0fjmq5g","参与方管理",[331,336,341,346],{"id":332,"documentId":333,"title":334,"sort":172,"parent_id":328,"only_as_menu":220,"type":209,"nodeId":333,"routeId":333,"children":335},3515,"maun35qmz3kx9haku23zhmme","添加签署人",[],{"id":337,"documentId":338,"title":339,"sort":199,"parent_id":328,"only_as_menu":220,"type":209,"nodeId":338,"routeId":338,"children":340},584,"xp595dh8tlzle8lt9bo3lyyt","删除签署人",[],{"id":342,"documentId":343,"title":344,"sort":241,"parent_id":328,"only_as_menu":220,"type":209,"nodeId":343,"routeId":343,"children":345},2858,"h434ytbkhv0177b778achv7u","添加抄送人",[],{"id":347,"documentId":348,"title":349,"sort":309,"parent_id":328,"only_as_menu":220,"type":209,"nodeId":348,"routeId":348,"children":350},583,"jw2f0dtk7ddfpbrwn2oo9rmc","删除抄送人",[],{"id":352,"documentId":353,"title":354,"sort":355,"parent_id":205,"only_as_menu":208,"type":209,"nodeId":353,"routeId":353,"children":356},3117,"qx2bl5kl3s0bwzvdkmzp71zh","信封模版",35,[357,363],{"id":358,"documentId":359,"title":360,"sort":361,"parent_id":353,"only_as_menu":220,"type":209,"nodeId":359,"routeId":359,"children":362},3106,"m53jxnuxwkayx1b7mnk3adca","查询信封模版详情",0,[],{"id":364,"documentId":365,"title":366,"sort":199,"parent_id":353,"only_as_menu":220,"type":209,"nodeId":365,"routeId":365,"children":367},3112,"smkcnczbyllcva0e51xbud5p","使用信封模版发起签署",[],{"id":369,"documentId":370,"title":371,"sort":247,"parent_id":205,"only_as_menu":208,"type":209,"nodeId":370,"routeId":370,"children":372},3322,"ais40oqq7r11n67gc0vrbd3v","模板服务",[373,378,383,388,393],{"id":374,"documentId":375,"title":376,"sort":172,"parent_id":370,"only_as_menu":220,"type":209,"nodeId":375,"routeId":375,"children":377},3188,"s7f24t0vc3oh7xjc1vd54min","获取签署人模板控件详情",[],{"id":379,"documentId":380,"title":381,"sort":175,"parent_id":370,"only_as_menu":220,"type":209,"nodeId":380,"routeId":380,"children":382},1328,"pqznounxwcdqpjjlo427cp2v","获取模板详情",[],{"id":384,"documentId":385,"title":386,"sort":199,"parent_id":370,"only_as_menu":220,"type":209,"nodeId":385,"routeId":385,"children":387},903,"nlabl9lmcchamxb4xb2sotgf","填写模板生成文件",[],{"id":389,"documentId":390,"title":391,"sort":241,"parent_id":370,"only_as_menu":220,"type":209,"nodeId":390,"routeId":390,"children":392},780,"h6u1p3mm2q9jh22drwhx7w3x","查询模板列表",[],{"id":394,"documentId":395,"title":396,"sort":309,"parent_id":370,"only_as_menu":220,"type":209,"nodeId":395,"routeId":395,"children":397},634,"upq57humugxijzhzsfl01e2r","查询文件合成任务详情",[],{"id":399,"documentId":400,"title":401,"sort":402,"parent_id":205,"only_as_menu":208,"type":209,"nodeId":400,"routeId":400,"children":403},1095,"r6a999am8z6ay9r6q78m9szt","图章管理",45,[404,409,414,419],{"id":405,"documentId":406,"title":407,"sort":172,"parent_id":400,"only_as_menu":220,"type":209,"nodeId":406,"routeId":406,"children":408},3338,"ap2udsj6jmd3f7nq1t2wtb6n","创建图章",[],{"id":410,"documentId":411,"title":412,"sort":175,"parent_id":400,"only_as_menu":220,"type":209,"nodeId":411,"routeId":411,"children":413},3466,"e27cq9n53oiassrm9dusczah","编辑图章",[],{"id":415,"documentId":416,"title":417,"sort":178,"parent_id":400,"only_as_menu":220,"type":209,"nodeId":416,"routeId":416,"children":418},1113,"nhodhim2gs6b0fnmhai68jl2","删除图章",[],{"id":420,"documentId":421,"title":422,"sort":181,"parent_id":400,"only_as_menu":220,"type":209,"nodeId":421,"routeId":421,"children":423},1111,"za70ia3hau1jmhh1odey7648","查询图章列表",[],{"id":425,"documentId":426,"title":427,"sort":428,"parent_id":205,"only_as_menu":208,"type":209,"nodeId":426,"routeId":426,"children":429},1303,"vjgy9wyqpueas3ifwl4sqtxo","合同比对",49,[430,435],{"id":431,"documentId":432,"title":433,"sort":172,"parent_id":426,"only_as_menu":220,"type":209,"nodeId":432,"routeId":432,"children":434},1309,"ncci0s4sdebcqnpez9hta140","获取合同比对结果页面",[],{"id":436,"documentId":437,"title":438,"sort":184,"parent_id":426,"only_as_menu":220,"type":209,"nodeId":437,"routeId":437,"children":439},3418,"czpws8dh6ef4ynxxwmgu796b","查询合同比对详情",[],{"id":441,"documentId":442,"title":443,"sort":253,"parent_id":205,"only_as_menu":220,"type":209,"nodeId":442,"routeId":442,"children":444},3512,"e3esec8grw834hdls3c5uket","回调事件",[445,450,455,460,465,470,475,480,485,490,495],{"id":446,"documentId":447,"title":448,"sort":172,"parent_id":442,"only_as_menu":220,"type":209,"nodeId":447,"routeId":447,"children":449},1234,"oqef89swtse7xva7ihxd4eah","信封开启通知",[],{"id":451,"documentId":452,"title":453,"sort":199,"parent_id":442,"only_as_menu":220,"type":209,"nodeId":452,"routeId":452,"children":454},1037,"m2b3cny59zr2019zx101vlq6","签署人签署完成通知",[],{"id":456,"documentId":457,"title":458,"sort":241,"parent_id":442,"only_as_menu":220,"type":209,"nodeId":457,"routeId":457,"children":459},1032,"ktoxlvvrj5777zxi5oqoebun","所有签署人签署完成通知",[],{"id":461,"documentId":462,"title":463,"sort":309,"parent_id":442,"only_as_menu":220,"type":209,"nodeId":462,"routeId":462,"children":464},3402,"c4g7knax4y890stvlk89zrgl","信封签署完成通知",[],{"id":466,"documentId":467,"title":468,"sort":355,"parent_id":442,"only_as_menu":220,"type":209,"nodeId":467,"routeId":467,"children":469},1275,"z5a7ce3eu1vayhclx05l4boz","签署人查看信封通知",[],{"id":471,"documentId":472,"title":473,"sort":247,"parent_id":442,"only_as_menu":220,"type":209,"nodeId":472,"routeId":472,"children":474},1038,"f6udt0g3kk1ty67u8o9dn0s3","信封撤销通知",[],{"id":476,"documentId":477,"title":478,"sort":253,"parent_id":442,"only_as_menu":220,"type":209,"nodeId":477,"routeId":477,"children":479},1043,"xn1qw8wfeosuql9e4qd983gx","信封过期通知",[],{"id":481,"documentId":482,"title":483,"sort":259,"parent_id":442,"only_as_menu":220,"type":209,"nodeId":482,"routeId":482,"children":484},1053,"hzf0ipligf96y2hsh4yrz8q7","签署任务中断通知",[],{"id":486,"documentId":487,"title":488,"sort":265,"parent_id":442,"only_as_menu":220,"type":209,"nodeId":487,"routeId":487,"children":489},3434,"dkyp87hoikayfcnpi7misr3z","文件合成结果通知",[],{"id":491,"documentId":492,"title":493,"sort":271,"parent_id":442,"only_as_menu":220,"type":209,"nodeId":492,"routeId":492,"children":494},1326,"zcv1ch0olb5ecpzo2u7jfw0e","合同比对结果回调通知",[],{"id":496,"documentId":497,"title":498,"sort":271,"parent_id":442,"only_as_menu":220,"type":209,"nodeId":497,"routeId":497,"children":499},1339,"il87aup17m7ydala24kjkhev","信封投递失败",[],{"id":501,"documentId":502,"title":503,"sort":259,"parent_id":205,"only_as_menu":220,"type":209,"nodeId":502,"routeId":502,"children":504},85,"lqqpn7hfhf3xzgf2d9vz9h7u","错误码对应表",[],[506],{"id":247,"documentId":507,"title":508,"sort":172,"parent_id":207,"only_as_menu":208,"type":509,"nodeId":507,"routeId":507,"children":510},"kmxyx6s30cspdrb6lpq2vlmw","开发者指南","document",[511,516,533,538],{"id":512,"documentId":513,"title":514,"sort":172,"parent_id":507,"only_as_menu":220,"type":509,"nodeId":513,"routeId":513,"children":515},795,"nqxvj8fpudh1phhwzjxyrqie","集成指南",[],{"id":517,"documentId":518,"title":519,"sort":181,"parent_id":507,"only_as_menu":220,"type":509,"nodeId":518,"routeId":518,"children":520},798,"rwuzqa9wdd8ifr9d2psn2oll","ISV生态伙伴接入指南",[521,527],{"id":522,"documentId":523,"title":524,"sort":525,"parent_id":518,"only_as_menu":220,"type":509,"nodeId":523,"routeId":523,"children":526},801,"stjk6a2euo5bb9rnu5xidl9y","OAuth2.0授权码模式接入指南",41,[],{"id":528,"documentId":529,"title":530,"sort":531,"parent_id":518,"only_as_menu":220,"type":509,"nodeId":529,"routeId":529,"children":532},804,"i640wop6allavqk5recnkqal","ISV生态应用接口Scope说明",42,[],{"id":534,"documentId":535,"title":536,"sort":184,"parent_id":507,"only_as_menu":220,"type":509,"nodeId":535,"routeId":535,"children":537},807,"pu5by7nny465eng8uuhqfau6","注意事项",[],{"id":539,"documentId":540,"title":541,"sort":199,"parent_id":507,"only_as_menu":220,"type":509,"nodeId":540,"routeId":540,"children":542},810,"vfj16znziy18o17n4sc5y7ng","Webhook事件",[543,548,553,558,563,568,573,579],{"id":544,"documentId":545,"title":448,"sort":546,"parent_id":540,"only_as_menu":220,"type":509,"nodeId":545,"routeId":545,"children":547},200,"zf1p4cqkhirgzmjqq9pk0a3i",11,[],{"id":549,"documentId":550,"title":453,"sort":551,"parent_id":540,"only_as_menu":220,"type":509,"nodeId":550,"routeId":550,"children":552},204,"fznrramnzm5xmc8xs34bqck1",12,[],{"id":554,"documentId":555,"title":458,"sort":556,"parent_id":540,"only_as_menu":220,"type":509,"nodeId":555,"routeId":555,"children":557},207,"yiz759dqo68gqbyhvq2zfquk",13,[],{"id":559,"documentId":560,"title":463,"sort":561,"parent_id":540,"only_as_menu":220,"type":509,"nodeId":560,"routeId":560,"children":562},191,"caadherlspjkiayulikfh1og",14,[],{"id":564,"documentId":565,"title":473,"sort":566,"parent_id":540,"only_as_menu":220,"type":509,"nodeId":565,"routeId":565,"children":567},194,"wxwcvoo5k3tx99cf3at6iiwm",15,[],{"id":569,"documentId":570,"title":478,"sort":571,"parent_id":540,"only_as_menu":220,"type":509,"nodeId":570,"routeId":570,"children":572},197,"anv65ys13nincm1kmfp7v512",16,[],{"id":574,"documentId":575,"title":576,"sort":577,"parent_id":540,"only_as_menu":220,"type":509,"nodeId":575,"routeId":575,"children":578},173,"fjy4rotdw8b6r66mkflvur4c","签署人审批驳回通知",110,[],{"id":580,"documentId":581,"title":498,"sort":582,"parent_id":540,"only_as_menu":220,"type":509,"nodeId":581,"routeId":581,"children":583},212,"gcgzjrnf215vhmixw7obvrtd",120,[],[],{"id":522,"documentId":523,"title":524,"content":586,"sort":525,"is_visible":208,"parent_id":518,"only_as_menu":220,"createdAt":587,"updatedAt":588,"publishedAt":589,"locale":92,"seo":590},"\u003Carticle class=\"4ever-article\" style=\"-webkit-text-stroke-width:0px;caret-color:rgb(0, 0, 0);color:rgb(0, 0, 0);font-style:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-thickness:auto;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">\u003Ch2 style=\"font-size:18pt;line-height:20.4px;margin-bottom:9px;margin-left:0px;margin-top:21.333333px;text-align:left;text-indent:0px;\">\u003Cspan style=\"font-size:16pt;\">\u003Cspan data-type=\"text\">\u003Cstrong>调用时序\u003C/strong>\u003C/span>\u003C/span>\u003C/h2>\u003Cfigure class=\"image\">\u003Cimg src=\"https://static.esignglobal.com/image_4047164e07.png\" alt=\"image.png\" srcset=\"https://static.esignglobal.com/thumbnail_image_4047164e07.png 245w, https://static.esignglobal.com/small_image_4047164e07.png 500w, https://static.esignglobal.com/medium_image_4047164e07.png 750w\" sizes=\"100vw\" width=\"750\">\u003C/figure>\u003Ch2 style=\"font-size:18pt;line-height:1.4;margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">概述\u003C/span>\u003C/h2>\u003Cp style=\"margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">OAuth 2.0 是一种广泛使用的授权协议，允许第三方应用程序通过用户的授权来访问其资源，而无需暴露用户的凭据。在 OAuth 2.0 的授权码模式中，客户端需要引导用户访问授权服务器的授权端点（Authorization Endpoint），以获取用户的授权许可。\u003C/span>\u003C/p>\u003Cp style=\"margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">本文档旨在详细说明如何根据 OAuth 2.0 协议拼接和使用授权地址，并提供实际的示例和注意事项。\u003C/span>\u003C/p>\u003Chr>\u003Ch2 style=\"font-size:18pt;line-height:20.4px;margin-bottom:9px;margin-left:0px;margin-top:21.333333px;text-align:left;text-indent:0px;\">\u003Cspan style=\"font-size:16pt;\">\u003Cspan data-type=\"text\">\u003Cstrong>一、拼接URL获取授权码\u003C/strong>\u003C/span>\u003C/span>\u003C/h2>\u003Ch2 style=\"font-size:18pt;line-height:1.4;margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">授权地址的基本结构\u003C/span>\u003C/h2>\u003Cp style=\"margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">授权地址是客户端向授权服务器发起请求时所使用的 URL。它由以下几个部分组成：\u003C/span>\u003C/p>\u003Cpre>\u003Ccode class=\"language-plaintext\" data-syntax=\"plaintext\" data-theme=\"default\">https://&lt;authorization-server-domain&gt;/oauth?\n    response_type=&lt;response_type&gt;&amp;\n    clientId=&lt;client_id&gt;&amp;\n    redirectUri=&lt;redirect_uri&gt;&amp;\n    scope=&lt;scope&gt;&amp;\n    state=&lt;state&gt;\u003C/code>\u003C/pre>\u003Ch3 style=\"font-size:14.5pt;line-height:1.4;margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">参数说明\u003C/span>\u003C/h3>\u003Cfigure class=\"table\" style=\"width:731px;\">\u003Ctable class=\"ck-table-resized\" style=\"border-collapse:collapse;table-layout:fixed;\">\u003Ccolgroup>\u003Ccol style=\"width:33.33%;\" width=\"216\">\u003Ccol style=\"width:33.33%;\" width=\"114\">\u003Ccol style=\"width:33.34%;\" width=\"401\">\u003C/colgroup>\u003Ctbody>\u003Ctr>\u003Ctd style=\"border-color:rgb(0, 0, 0);overflow-wrap:break-word;overflow:hidden;padding:4px 8px;vertical-align:top;\" colspan=\"1\" rowspan=\"1\">\u003Cp style=\"margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">参数名\u003C/span>\u003C/p>\u003C/td>\u003Ctd style=\"border-color:rgb(0, 0, 0);overflow-wrap:break-word;overflow:hidden;padding:4px 8px;vertical-align:top;\" colspan=\"1\" rowspan=\"1\">\u003Cp style=\"margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">是否必填\u003C/span>\u003C/p>\u003C/td>\u003Ctd style=\"border-color:rgb(0, 0, 0);overflow-wrap:break-word;overflow:hidden;padding:4px 8px;vertical-align:top;\" colspan=\"1\" rowspan=\"1\">\u003Cp style=\"margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">描述\u003C/span>\u003C/p>\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd style=\"border-color:rgb(0, 0, 0);overflow-wrap:break-word;overflow:hidden;padding:4px 8px;vertical-align:top;\" colspan=\"1\" rowspan=\"1\">\u003Cp style=\"margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">response_type\u003C/span>\u003C/code>\u003C/p>\u003C/td>\u003Ctd style=\"border-color:rgb(0, 0, 0);overflow-wrap:break-word;overflow:hidden;padding:4px 8px;vertical-align:top;\" colspan=\"1\" rowspan=\"1\">\u003Cp style=\"margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">必填\u003C/span>\u003C/p>\u003C/td>\u003Ctd style=\"border-color:rgb(0, 0, 0);overflow-wrap:break-word;overflow:hidden;padding:4px 8px;vertical-align:top;\" colspan=\"1\" rowspan=\"1\">\u003Cp style=\"margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">授权类型，通常为 \u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">code\u003C/span>\u003C/code>\u003Cspan data-type=\"text\">（表示使用授权码模式）\u003C/span>\u003C/p>\u003C/td>\u003C/tr>\u003Ctr style=\"height:41px;\">\u003Ctd style=\"border-color:rgb(0, 0, 0);overflow-wrap:break-word;overflow:hidden;padding:4px 8px;vertical-align:top;\" colspan=\"1\" rowspan=\"1\">\u003Cp style=\"margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">clientId\u003C/span>\u003C/code>\u003C/p>\u003C/td>\u003Ctd style=\"border-color:rgb(0, 0, 0);overflow-wrap:break-word;overflow:hidden;padding:4px 8px;vertical-align:top;\" colspan=\"1\" rowspan=\"1\">\u003Cp style=\"margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">必填\u003C/span>\u003C/p>\u003C/td>\u003Ctd style=\"border-color:rgb(0, 0, 0);overflow-wrap:break-word;overflow:hidden;padding:4px 8px;vertical-align:top;\" colspan=\"1\" rowspan=\"1\">\u003Cp style=\"margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">客户端的唯一标识符，\u003C/span>\u003Cspan style=\"color:rgb(0,0,0);font-size:12pt;\">\u003Cspan data-type=\"text\">即&nbsp;APP ID\u003C/span>\u003C/span>\u003C/p>\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd style=\"border-color:rgb(0, 0, 0);overflow-wrap:break-word;overflow:hidden;padding:4px 8px;vertical-align:top;\" colspan=\"1\" rowspan=\"1\">\u003Cp style=\"margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">redirectUri\u003C/span>\u003C/code>\u003C/p>\u003C/td>\u003Ctd style=\"border-color:rgb(0, 0, 0);overflow-wrap:break-word;overflow:hidden;padding:4px 8px;vertical-align:top;\" colspan=\"1\" rowspan=\"1\">\u003Cp style=\"margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">必填\u003C/span>\u003C/p>\u003C/td>\u003Ctd style=\"border-color:rgb(0, 0, 0);overflow-wrap:break-word;overflow:hidden;padding:4px 8px;vertical-align:top;\" colspan=\"1\" rowspan=\"1\">\u003Cp style=\"margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">授权完成后重定向的目标地址，必须与客户端注册时的回调地址一致\u003C/span>\u003C/p>\u003C/td>\u003C/tr>\u003Ctr style=\"height:65px;\">\u003Ctd style=\"border-color:rgb(0, 0, 0);overflow-wrap:break-word;overflow:hidden;padding:4px 8px;vertical-align:top;\" colspan=\"1\" rowspan=\"1\">\u003Cp style=\"margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">scope\u003C/span>\u003C/code>\u003C/p>\u003C/td>\u003Ctd style=\"border-color:rgb(0, 0, 0);overflow-wrap:break-word;overflow:hidden;padding:4px 8px;vertical-align:top;\" colspan=\"1\" rowspan=\"1\">\u003Cp style=\"margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">必填\u003C/span>\u003C/p>\u003C/td>\u003Ctd style=\"border-color:rgb(0, 0, 0);overflow-wrap:break-word;overflow:hidden;padding:4px 8px;vertical-align:top;\" colspan=\"1\" rowspan=\"1\">\u003Cp style=\"margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">请求的权限范围，目前支持\u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">signature\u003C/span>\u003C/code>\u003Cspan data-type=\"text\">、\u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">stamp\u003C/span>\u003C/code>\u003Cspan data-type=\"text\">、\u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">comparisons\u003C/span>\u003C/code>\u003Cspan data-type=\"text\">，授权后，可请求eSign.AI已有的openapi。多个scope可用空格分割\u003C/span>\u003C/p>\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd style=\"border-color:rgb(0, 0, 0);overflow-wrap:break-word;overflow:hidden;padding:4px 8px;vertical-align:top;\" colspan=\"1\" rowspan=\"1\">\u003Cp style=\"margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">state\u003C/span>\u003C/code>\u003C/p>\u003C/td>\u003Ctd style=\"border-color:rgb(0, 0, 0);overflow-wrap:break-word;overflow:hidden;padding:4px 8px;vertical-align:top;\" colspan=\"1\" rowspan=\"1\">\u003Cp style=\"margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">可选\u003C/span>\u003C/p>\u003C/td>\u003Ctd style=\"border-color:rgb(0, 0, 0);overflow-wrap:break-word;overflow:hidden;padding:4px 8px;vertical-align:top;\" colspan=\"1\" rowspan=\"1\">\u003Cp style=\"margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">用于防止 CSRF 攻击的随机字符串，客户端生成并在回调时验证其一致性\u003C/span>\u003C/p>\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\u003C/figure>\u003Chr>\u003Ch2 style=\"font-size:18pt;line-height:1.4;margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">授权地址拼接步骤\u003C/span>\u003C/h2>\u003Col style=\"list-style-type:decimal;\">\u003Cli>\u003Cdiv style=\"text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">\u003Cstrong>确定授权服务器地址\u003C/strong> 沙箱环境为：https://account-sml.esignglobal.com/oauth\u003C/span>\u003C/div>\u003Cp style=\"margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">正式环境为：https://account.esignglobal.com/oauth\u003C/span>\u003C/p>\u003C/li>\u003Cli>\u003Cdiv style=\"text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">\u003Cstrong>设置参数值\u003C/strong> 根据实际需求，设置各个参数的值。以下是一个示例：\u003C/span>\u003C/div>\u003Cul style=\"list-style-type:circle;\">\u003Cli>\u003Cdiv style=\"text-align:left;text-indent:0px;\">\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">response_type\u003C/span>\u003C/code>\u003Cspan data-type=\"text\">: \u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">code\u003C/span>\u003C/code>\u003C/div>\u003C/li>\u003Cli>\u003Cdiv style=\"text-align:left;text-indent:0px;\">\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">clientId\u003C/span>\u003C/code>\u003Cspan data-type=\"text\">: \u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">your-client-id-12345\u003C/span>\u003C/code>\u003C/div>\u003C/li>\u003Cli>\u003Cdiv style=\"text-align:left;text-indent:0px;\">\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">redirectUri\u003C/span>\u003C/code>\u003Cspan data-type=\"text\">: \u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">https://your-app.com/callback\u003C/span>\u003C/code>\u003C/div>\u003C/li>\u003Cli>\u003Cdiv style=\"text-align:left;text-indent:0px;\">\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">scope\u003C/span>\u003C/code>\u003Cspan data-type=\"text\">: \u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">signature\u003C/span>\u003C/code>\u003C/div>\u003C/li>\u003Cli>\u003Cdiv style=\"text-align:left;text-indent:0px;\">\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">state\u003C/span>\u003C/code>\u003Cspan data-type=\"text\">: \u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">random-state-value\u003C/span>\u003C/code>\u003C/div>\u003C/li>\u003C/ul>\u003C/li>\u003Cli>\u003Cdiv style=\"text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">\u003Cstrong>拼接查询参数\u003C/strong> 将上述参数按照键值对的形式拼接到授权服务器地址后，使用 \u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">&amp;\u003C/span>\u003C/code>\u003Cspan data-type=\"text\"> 连接每个参数。注意，参数值需要进行 URL 编码。\u003C/span>\u003C/div>\u003Cp style=\"margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">示例拼接结果：\u003C/span>\u003C/p>\u003Cpre>\u003Ccode class=\"language-plaintext\" data-syntax=\"plaintext\" data-theme=\"default\">https://account-sml.esignglobal.com/oauth?\n    response_type=code&amp;\n    clientId=your-client-id-12345&amp;\n    redirectUri=https%3A%2F%2Fyour-app.com%2Fcallback&amp;\n    scope=signature&amp;\n    state=random-state-value\u003C/code>\u003C/pre>\u003C/li>\u003Cli>\u003Cdiv style=\"text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">\u003Cstrong>验证拼接结果\u003C/strong> 确保拼接后的地址符合以下要求：\u003C/span>\u003C/div>\u003Cul style=\"list-style-type:circle;\">\u003Cli>\u003Cdiv style=\"text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">参数顺序可以任意\u003C/span>\u003C/div>\u003C/li>\u003Cli>\u003Cdiv style=\"text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">参数值已正确进行 URL 编码\u003C/span>\u003C/div>\u003C/li>\u003Cli>\u003Cdiv style=\"text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">所有必填参数均已包含\u003C/span>\u003C/div>\u003C/li>\u003C/ul>\u003C/li>\u003C/ol>\u003Cfigure class=\"image\">\u003Cimg src=\"https://static.esignglobal.com/2_4d2f50b136.png\" alt=\"2.png\" srcset=\"https://static.esignglobal.com/thumbnail_2_4d2f50b136.png 245w, https://static.esignglobal.com/small_2_4d2f50b136.png 500w, https://static.esignglobal.com/medium_2_4d2f50b136.png 750w, https://static.esignglobal.com/large_2_4d2f50b136.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C/figure>\u003Chr>\u003Ch2 style=\"font-size:18pt;line-height:1.4;margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">示例代码\u003C/span>\u003C/h2>\u003Cp style=\"margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">以下是几种常见编程语言中拼接授权地址的示例代码：\u003C/span>\u003C/p>\u003Ch3 style=\"font-size:14.5pt;line-height:1.4;margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">Python 示例\u003C/span>\u003C/h3>\u003Cpre>\u003Ccode class=\"language-plaintext\" data-syntax=\"python\" data-theme=\"default\">import urllib.parse\n\n# 定义参数\nbase_url = \"https://account-sml.esignglobal.com/oauth\"\nparams = {\n    \"response_type\": \"code\",\n    \"clientId\": \"your-client-id-12345\",\n    \"redirectUri\": \"https://your-app.com/callback\",\n    \"scope\": \"signature\",\n    \"state\": \"random-state-value\"\n}\n\n# 拼接地址\nquery_string = urllib.parse.urlencode(params)\nauthorization_url = f\"{base_url}?{query_string}\"\nprint(authorization_url)\u003C/code>\u003C/pre>\u003Ch3 style=\"font-size:14.5pt;line-height:1.4;margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">JavaScript 示例\u003C/span>\u003C/h3>\u003Cpre>\u003Ccode class=\"language-plaintext\" data-syntax=\"javascript\" data-theme=\"default\">// 定义参数\nconst baseUrl = \"https://account-sml.esignglobal.com/oauth\";\nconst params = new URLSearchParams({\n    response_type: \"code\",\n    clientId: \"your-client-id-12345\",\n    redirectUri: \"https://your-app.com/callback\",\n    scope: \"signature\",\n    state: \"random-state-value\"\n});\n\n// 拼接地址\nconst authorizationUrl = `${baseUrl}?${params.toString()}`;\nconsole.log(authorizationUrl);\u003C/code>\u003C/pre>\u003Ch3 style=\"font-size:14.5pt;line-height:1.4;margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">Java 示例\u003C/span>\u003C/h3>\u003Cpre>\u003Ccode class=\"language-plaintext\" data-syntax=\"java\" data-theme=\"default\">import java.net.URLEncoder;\nimport java.nio.charset.StandardCharsets;\n\npublic class OAuthUrlBuilder {\n\n    public static void main(String[ ] args) throws Exception {\n\n        // 定义参数\n        String baseUrl = \"https://account-sml.esignglobal.com/oauth\";\n        String responseType = \"code\";\n        String clientId = \"your-client-id-12345\";\n        String redirectUri = \"https://your-app.com/callback\";\n        String scope = \"signature\";\n        String state = \"random-state-value\";\n\n        // 拼接查询参数\n        String queryString = String.format(\n            \"response_type=%s&amp;clientId=%s&amp;redirectUri=%s&amp;scope=%s&amp;state=%s\",\n            URLEncoder.encode(responseType, StandardCharsets.UTF_8),\n            URLEncoder.encode(clientId, StandardCharsets.UTF_8),\n            URLEncoder.encode(redirectUri, StandardCharsets.UTF_8),\n            URLEncoder.encode(scope, StandardCharsets.UTF_8),\n            URLEncoder.encode(state, StandardCharsets.UTF_8)\n        );\n\n        // 生成完整的授权地址\n        String authorizationUrl = baseUrl + \"?\" + queryString;\n        System.out.println(authorizationUrl);\n    }\n}\u003C/code>\u003C/pre>\u003Cp style=\"margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">&nbsp;\u003C/p>\u003Chr>\u003Ch2 style=\"font-size:18pt;line-height:1.4;margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">注意事项\u003C/span>\u003C/h2>\u003Cp style=\"margin-bottom:0px;margin-left:0px;margin-top:0px;text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">在拼接和使用授权地址时，需要注意以下几点：\u003C/span>\u003C/p>\u003Col style=\"list-style-type:decimal;\">\u003Cli>\u003Cdiv style=\"text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">\u003Cstrong>URL 编码的正确性\u003C/strong> 所有参数值必须经过 URL 编码（\u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">percent-encoding\u003C/span>\u003C/code>\u003Cspan data-type=\"text\">），以确保特殊字符（如 \u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">:\u003C/span>\u003C/code>\u003Cspan data-type=\"text\">、\u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">/\u003C/span>\u003C/code>\u003Cspan data-type=\"text\">、\u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">?\u003C/span>\u003C/code>\u003Cspan data-type=\"text\"> 等）不会破坏 URL 的结构。例如，\u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">https://your-app.com/callback\u003C/span>\u003C/code>\u003Cspan data-type=\"text\"> 应编码为 \u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">https%3A%2F%2Fyour-app.com%2Fcallback\u003C/span>\u003C/code>\u003Cspan data-type=\"text\">。\u003C/span>\u003C/div>\u003C/li>\u003Cli>\u003Cdiv style=\"text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">\u003Cstrong>回调地址的一致性\u003C/strong>\u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">redirect_uri\u003C/span>\u003C/code>\u003Cspan data-type=\"text\"> 参数的值必须与客户端在授权服务器上注册的回调地址完全一致，包括协议（\u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">http\u003C/span>\u003C/code>\u003Cspan data-type=\"text\"> 或 \u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">https\u003C/span>\u003C/code>\u003Cspan data-type=\"text\">）、主机名、端口和路径。否则，授权服务器会拒绝请求。\u003C/span>\u003C/div>\u003C/li>\u003Cli>\u003Cdiv style=\"text-align:left;text-indent:0px;\">\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">\u003Cstrong>state\u003C/strong>\u003C/span>\u003C/code>\u003Cspan data-type=\"text\">\u003Cstrong> 参数的安全性\u003C/strong>\u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">state\u003C/span>\u003C/code>\u003Cspan data-type=\"text\"> 参数用于防止跨站请求伪造（CSRF）攻击。客户端应生成一个随机且不可预测的字符串，并在用户完成授权后验证回调中的 \u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">state\u003C/span>\u003C/code>\u003Cspan data-type=\"text\"> 值是否与最初发送的值一致。\u003C/span>\u003C/div>\u003C/li>\u003Cli>\u003Cdiv style=\"text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">\u003Cstrong>权限范围的合理性\u003C/strong>\u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">scope\u003C/span>\u003C/code>\u003Cspan data-type=\"text\"> 参数定义了客户端请求的权限范围。应根据实际需求选择最小化的权限范围，避免过度请求用户资源，从而提高用户信任度。\u003C/span>\u003C/div>\u003C/li>\u003Cli>\u003Cdiv style=\"text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">\u003Cstrong>环境区分\u003C/strong> 在开发和测试阶段，通常使用沙箱环境（如 \u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">account-sml.esignglobal.com\u003C/span>\u003C/code>\u003Cspan data-type=\"text\">），在正式上线后，需切换到生产环境（如 \u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">account.esignglobal.com\u003C/span>\u003C/code>\u003Cspan data-type=\"text\">），确保在不同环境中使用正确的授权服务器地址。\u003C/span>\u003C/div>\u003C/li>\u003Cli>\u003Cdiv style=\"text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">\u003Cstrong>授权成功后的信息处理\u003C/strong> 授权完成后，eSign.AI授权服务将通过\u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">redirect_uri\u003C/span>\u003C/code>\u003Cspan data-type=\"text\">拼接返回\u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">code\u003C/span>\u003C/code>\u003Cspan data-type=\"text\">和\u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">baseUrl\u003C/span>\u003C/code>\u003Cspan data-type=\"text\">，通过\u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">baseUrl\u003C/span>\u003C/code>\u003Cspan data-type=\"text\">可识别授权方数据所在的数据中心，执行openapi请求时，需要根据对应的数据中心发起请求。\u003C/span>\u003C/div>\u003C/li>\u003Cli>\u003Cdiv style=\"text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">\u003Cstrong>错误处理\u003C/strong> 如果用户拒绝授权或发生其他错误，授权服务器会通过 \u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">redirect_uri\u003C/span>\u003C/code>\u003Cspan data-type=\"text\"> 返回错误信息（如 \u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">error\u003C/span>\u003C/code>\u003Cspan data-type=\"text\"> 和 \u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">error_description\u003C/span>\u003C/code>\u003Cspan data-type=\"text\"> 参数），客户端应妥善处理这些错误，向用户提供清晰的反馈。\u003C/span>\u003C/div>\u003C/li>\u003C/ol>\u003C/article>","2026-04-30T10:32:27.115Z","2026-05-22T02:50:34.921Z","2026-05-22T02:50:20.263Z",null]