[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"schema-global-basic:es-MX":3,"developer-center-document-stjk6a2euo5bb9rnu5xidl9y-es-MX":191},{"@graph":4,"@context":190},[5,92,154],{"@id":6,"url":7,"logo":8,"name":11,"@type":12,"brand":13,"sameAs":15,"slogan":19,"address":20,"founder":24,"audience":27,"areaServed":33,"knowsAbout":43,"makesOffer":59,"description":72,"serviceType":73,"contactPoint":74,"foundingDate":85,"alternateName":86,"hasCredential":87},"https://www.esign.ai/#org","https://www.esign.ai/",{"url":9,"@type":10},"https://www.esign.ai/cn/logo_black.svg","ImageObject","eSign.ai","Organization",{"name":11,"@type":14},"Brand",[16,17,18],"https://www.linkedin.com/company/esignglobal","https://twitter.com/esignglobal","https://www.youtube.com/@esignglobal","AI-powered contract execution and compliance platform for global business",{"@type":21,"addressCountry":22,"addressLocality":23},"PostalAddress","HK","Hong Kong",{"name":25,"@type":26},"eSignGlobal Founding Team","Person",{"@type":28,"audienceType":29},"Audience",[30,31,32],"Business","Enterprise","SMB",[34,35,36,37,38,39,40,41,42],"China","Hong Kong SAR","Singapore","Malaysia","Thailand","United States","Asia","Europe","Global",[44,45,46,47,48,49,50,51,52,53,54,55,56,57,58],"AI Contract Execution","Electronic Signature","Digital Contract Management","Workflow Automation","eIDAS Regulation (EU)","ESIGN Act (US)","UETA (US)","China Electronic Signature Law","Hong Kong Electronic Transactions Ordinance","Singapore Electronic Transactions Act","GDPR","Cross-border Data Compliance","Data Security and Encryption","Enterprise eSignature Solutions","APAC eSignature Laws",{"url":60,"name":61,"@type":62,"itemListElement":63},"https://www.esign.ai/pricing","Pricing Plans","OfferCatalog",[64,69],{"name":65,"@type":66,"price":67,"priceCurrency":68},"Essential Plan","Offer","199","USD",{"name":70,"@type":66,"price":71,"priceCurrency":68},"Professional Plan","Contact Sales","eSign.ai is an AI-powered contract execution platform that automates document workflows, ensures global compliance, and delivers legally binding e-signatures across 180+ countries.",[44,45,46,47],[75],{"@type":76,"email":77,"telephone":78,"areaServed":42,"contactType":79,"availableLanguage":80},"ContactPoint","sales@esignglobal.com","+852-46749867","customer support",[81,82,83,84],"en","zh-CN","zh-HK","zh-TW","2016","eSign Global",{"url":88,"name":89,"@type":90,"description":91},"https://www.esign.ai/eSignature-Legality","AI Contract Legality & Compliance Guide","CreativeWork","eSign.ai uses AI to ensure contract execution complies with ESIGN Act, UETA, eIDAS, China Electronic Signature Law, and APAC cross-border regulations.",{"@id":93,"url":94,"name":95,"@type":96,"hasPart":97,"publisher":146,"inLanguage":147,"description":148,"alternateName":149,"potentialAction":150,"mainEntityOfPage":7},"https://www.esign.ai/#website","https://www.esign.ai","eSign.ai Official Website","WebSite",[98,104,110,115,118,122,126,131,136,141],{"@id":99,"url":100,"name":101,"@type":102,"description":103},"https://www.esign.ai/customer-story#list","https://www.esign.ai/customer-story","Customer Stories","WebPage","See how enterprises use AI contract execution to accelerate digital signing and improve compliance across finance, manufacturing and technology.",{"@id":105,"url":106,"name":107,"@type":102,"isPartOf":108,"description":109},"https://www.esign.ai/integrations#overview","https://www.esign.ai/integrations","Integrations",{"@id":93},"Connect eSign.ai with Salesforce, Google Drive, Microsoft 365 and more to automate contract workflows with AI.",{"@id":111,"url":112,"name":113,"@type":102,"description":114},"https://www.esign.ai/features#overview","https://www.esign.ai/features","Features","Discover AI-powered contract execution, identity verification, workflow automation, templates and API.",{"@id":116,"url":60,"name":61,"@type":102,"description":117},"https://www.esign.ai/pricing#catalog","Compare eSign.ai pricing plans for teams and enterprises, and find the right AI contract execution package.",{"@id":119,"url":88,"name":120,"@type":102,"description":121},"https://www.esign.ai/eSignature-Legality#guide","Legality & Compliance","Review AI-driven compliance guides for e-signatures across regions (eIDAS, ESIGN, UETA, China, APAC).",{"@id":123,"url":124,"name":71,"@type":102,"description":125},"https://www.esign.ai/contact-sales#contact","https://www.esign.ai/contact-sales","Contact the eSign.ai team to discuss enterprise AI contract execution requirements.",{"@id":127,"url":128,"name":129,"@type":102,"description":130},"https://www.esign.ai/developers#overview","https://www.esign.ai/developers","Developers & API","Access developer documentation, SDKs and API references to integrate AI contract execution into your apps.",{"@id":132,"url":133,"name":134,"@type":102,"description":135},"https://www.esign.ai/resources#hub","https://www.esign.ai/resources","Resources Center","Browse product guides, case studies, whitepapers and best practices for AI contract execution.",{"@id":137,"url":138,"name":139,"@type":102,"description":140},"https://www.esign.ai/news#center","https://www.esign.ai/news","News & Press","Read the latest announcements, product updates and media coverage from eSign.ai.",{"@id":142,"url":143,"name":144,"@type":102,"description":145},"https://www.esign.ai/blog#hub","https://www.esign.ai/blog","Blog","Insights and articles on AI contract execution, compliance, and workflow automation.",{"@id":6},[81,82,83],"Official site of eSign.ai — AI-powered contract execution platform providing secure, compliant, and legally recognized e-signatures for global enterprises.","eSign.ai AI Contract Execution Platform",{"@type":151,"target":152,"query-input":153},"SearchAction","https://www.esign.ai/search?q={query}","required name=query",{"@id":155,"name":156,"@type":157,"itemListElement":158},"https://www.esign.ai/#pages","Primary Site Sections","ItemList",[159,163,166,169,172,175,178,181,184,187],{"item":160,"@type":161,"position":162},{"@id":99},"ListItem",1,{"item":164,"@type":161,"position":165},{"@id":105},2,{"item":167,"@type":161,"position":168},{"@id":111},3,{"item":170,"@type":161,"position":171},{"@id":116},4,{"item":173,"@type":161,"position":174},{"@id":119},5,{"item":176,"@type":161,"position":177},{"@id":123},6,{"item":179,"@type":161,"position":180},{"@id":127},7,{"item":182,"@type":161,"position":183},{"@id":132},8,{"item":185,"@type":161,"position":186},{"@id":137},9,{"item":188,"@type":161,"position":189},{"@id":142},10,"https://schema.org",{"apiTree":192,"documentTree":489,"securityTree":570,"detail":571},[193],{"id":194,"documentId":195,"title":196,"sort":162,"parent_id":197,"only_as_menu":198,"type":199,"nodeId":195,"routeId":195,"children":200},1935,"o4686obgtwjoscs5s6xooyi1","Documentación de la API","0",true,"api",[201,212,275,316,341,352,382,408,424,484],{"id":202,"documentId":203,"title":204,"sort":162,"parent_id":195,"only_as_menu":198,"type":199,"nodeId":203,"routeId":203,"children":205},1492,"b1jzh5soo88eektjgjg0z9cj","oAuth2",[206],{"id":207,"documentId":208,"title":209,"sort":162,"parent_id":203,"only_as_menu":210,"type":199,"nodeId":208,"routeId":208,"children":211},1987,"mmcjntoocjtwl1frc6khk3k4","Autorización oAuth",false,[],{"id":213,"documentId":214,"title":215,"sort":189,"parent_id":195,"only_as_menu":198,"type":199,"nodeId":214,"routeId":214,"children":216},1453,"emn5khbfwir61or7uzo7mrde","Administración de sobres",[217,222,227,233,239,245,251,257,263,269],{"id":218,"documentId":219,"title":220,"sort":162,"parent_id":214,"only_as_menu":210,"type":199,"nodeId":219,"routeId":219,"children":221},3222,"q9infiuohmf1fui6dj083hxj","Crear sobre rápidamente",[],{"id":223,"documentId":224,"title":225,"sort":189,"parent_id":214,"only_as_menu":210,"type":199,"nodeId":224,"routeId":224,"children":226},2753,"xlp3m1z044jtkeopyh7ccm5e","Crear sobre",[],{"id":228,"documentId":229,"title":230,"sort":231,"parent_id":214,"only_as_menu":210,"type":199,"nodeId":229,"routeId":229,"children":232},1883,"ewmccs9nc11erxmwmg7ye609","Abrir sobre",20,[],{"id":234,"documentId":235,"title":236,"sort":237,"parent_id":214,"only_as_menu":210,"type":199,"nodeId":235,"routeId":235,"children":238},1837,"k1tcxkpirnvc17wubklucx6d","Finalizar sobre",40,[],{"id":240,"documentId":241,"title":242,"sort":243,"parent_id":214,"only_as_menu":210,"type":199,"nodeId":241,"routeId":241,"children":244},1733,"xup11xm3pvlk7lkvejly03t4","Obtener la dirección de firma",50,[],{"id":246,"documentId":247,"title":248,"sort":249,"parent_id":214,"only_as_menu":210,"type":199,"nodeId":247,"routeId":247,"children":250},3158,"pgwry228y585ip83zux1m7ky","Consultar detalles del sobre",60,[],{"id":252,"documentId":253,"title":254,"sort":255,"parent_id":214,"only_as_menu":210,"type":199,"nodeId":253,"routeId":253,"children":256},2507,"n383yqr1z4cw0g2tncva1i9l","Cancelar sobre",70,[],{"id":258,"documentId":259,"title":260,"sort":261,"parent_id":214,"only_as_menu":210,"type":199,"nodeId":259,"routeId":259,"children":262},1505,"kfn3jzvf0coqrmgsyal5s3h7","Sobre de recordatorio",80,[],{"id":264,"documentId":265,"title":266,"sort":267,"parent_id":214,"only_as_menu":210,"type":199,"nodeId":265,"routeId":265,"children":268},1861,"fsagl9dy4ybdzgef0sfek43a","Obtener la dirección de la página de firma de vista previa",90,[],{"id":270,"documentId":271,"title":272,"sort":273,"parent_id":214,"only_as_menu":210,"type":199,"nodeId":271,"routeId":271,"children":274},2454,"yohj3fn3f4ydc19bda85u0au","Crear vista de envío de sobre",100,[],{"id":276,"documentId":277,"title":278,"sort":231,"parent_id":195,"only_as_menu":198,"type":199,"nodeId":277,"routeId":277,"children":279},1785,"ouy9r6x8lqhj09nuza6s28kq","Administración de archivos",[280,285,290,295,301,306,311],{"id":281,"documentId":282,"title":283,"sort":162,"parent_id":277,"only_as_menu":210,"type":199,"nodeId":282,"routeId":282,"children":284},1961,"uklome95b6imdx8l1s4kvpne","Subir archivo",[],{"id":286,"documentId":287,"title":288,"sort":189,"parent_id":277,"only_as_menu":210,"type":199,"nodeId":287,"routeId":287,"children":289},1811,"r3sk47rnpk5laxqcvasszzj7","Obtener coordenadas según la palabra clave",[],{"id":291,"documentId":292,"title":293,"sort":231,"parent_id":277,"only_as_menu":210,"type":199,"nodeId":292,"routeId":292,"children":294},3180,"dygf6h69qejdsxxzzi1zzetb","Descargar archivo",[],{"id":296,"documentId":297,"title":298,"sort":299,"parent_id":277,"only_as_menu":210,"type":199,"nodeId":297,"routeId":297,"children":300},1681,"b0uxzdvf2umyejj9td3go60x","Agregar documento para firmar",30,[],{"id":302,"documentId":303,"title":304,"sort":237,"parent_id":277,"only_as_menu":210,"type":199,"nodeId":303,"routeId":303,"children":305},1551,"c2s5iyao8xl60jnu9fyld71b","Eliminar documento firmado",[],{"id":307,"documentId":308,"title":309,"sort":243,"parent_id":277,"only_as_menu":210,"type":199,"nodeId":308,"routeId":308,"children":310},1655,"mq2v1gptzmgbxdnpt2naew0z","Agregar adjunto",[],{"id":312,"documentId":313,"title":314,"sort":249,"parent_id":277,"only_as_menu":210,"type":199,"nodeId":313,"routeId":313,"children":315},1707,"pd7zcrwaudxp9n5nhmax66th","Eliminar archivo adjunto",[],{"id":317,"documentId":318,"title":319,"sort":299,"parent_id":195,"only_as_menu":198,"type":199,"nodeId":318,"routeId":318,"children":320},1466,"v8y4g3ok61tys8mwr0fjmq5g","Gestión de participantes",[321,326,331,336],{"id":322,"documentId":323,"title":324,"sort":162,"parent_id":318,"only_as_menu":210,"type":199,"nodeId":323,"routeId":323,"children":325},3228,"maun35qmz3kx9haku23zhmme","Añadir firmante",[],{"id":327,"documentId":328,"title":329,"sort":189,"parent_id":318,"only_as_menu":210,"type":199,"nodeId":328,"routeId":328,"children":330},1531,"xp595dh8tlzle8lt9bo3lyyt","Eliminar firmante",[],{"id":332,"documentId":333,"title":334,"sort":231,"parent_id":318,"only_as_menu":210,"type":199,"nodeId":333,"routeId":333,"children":335},2862,"h434ytbkhv0177b778achv7u","Agregar con copia a",[],{"id":337,"documentId":338,"title":339,"sort":299,"parent_id":318,"only_as_menu":210,"type":199,"nodeId":338,"routeId":338,"children":340},1518,"jw2f0dtk7ddfpbrwn2oo9rmc","Eliminar Cc",[],{"id":342,"documentId":343,"title":344,"sort":345,"parent_id":195,"only_as_menu":198,"type":199,"nodeId":343,"routeId":343,"children":346},3061,"qx2bl5kl3s0bwzvdkmzp71zh","Plantilla de sobre",35,[347],{"id":348,"documentId":349,"title":350,"sort":189,"parent_id":343,"only_as_menu":210,"type":199,"nodeId":349,"routeId":349,"children":351},3128,"smkcnczbyllcva0e51xbud5p","Iniciar la firma con una plantilla de sobre",[],{"id":353,"documentId":354,"title":355,"sort":237,"parent_id":195,"only_as_menu":198,"type":199,"nodeId":354,"routeId":354,"children":356},1603,"ais40oqq7r11n67gc0vrbd3v","Servicio de plantillas",[357,362,367,372,377],{"id":358,"documentId":359,"title":360,"sort":162,"parent_id":354,"only_as_menu":210,"type":199,"nodeId":359,"routeId":359,"children":361},3205,"s7f24t0vc3oh7xjc1vd54min","Obtener detalles del control de plantilla del firmante",[],{"id":363,"documentId":364,"title":365,"sort":165,"parent_id":354,"only_as_menu":210,"type":199,"nodeId":364,"routeId":364,"children":366},2637,"pqznounxwcdqpjjlo427cp2v","Obtener detalles de la plantilla",[],{"id":368,"documentId":369,"title":370,"sort":189,"parent_id":354,"only_as_menu":210,"type":199,"nodeId":369,"routeId":369,"children":371},2012,"nlabl9lmcchamxb4xb2sotgf","Llenar la plantilla para generar el archivo",[],{"id":373,"documentId":374,"title":375,"sort":231,"parent_id":354,"only_as_menu":210,"type":199,"nodeId":374,"routeId":374,"children":376},1759,"h6u1p3mm2q9jh22drwhx7w3x","Consultar lista de plantillas",[],{"id":378,"documentId":379,"title":380,"sort":299,"parent_id":354,"only_as_menu":210,"type":199,"nodeId":379,"routeId":379,"children":381},1629,"upq57humugxijzhzsfl01e2r","Consultar detalles de la tarea de síntesis de archivos",[],{"id":383,"documentId":384,"title":385,"sort":386,"parent_id":195,"only_as_menu":198,"type":199,"nodeId":384,"routeId":384,"children":387},2194,"r6a999am8z6ay9r6q78m9szt","Gestión de sellos",45,[388,393,398,403],{"id":389,"documentId":390,"title":391,"sort":162,"parent_id":384,"only_as_menu":210,"type":199,"nodeId":390,"routeId":390,"children":392},2246,"ap2udsj6jmd3f7nq1t2wtb6n","Crear sello",[],{"id":394,"documentId":395,"title":396,"sort":165,"parent_id":384,"only_as_menu":210,"type":199,"nodeId":395,"routeId":395,"children":397},2220,"e27cq9n53oiassrm9dusczah","Editar sello",[],{"id":399,"documentId":400,"title":401,"sort":168,"parent_id":384,"only_as_menu":210,"type":199,"nodeId":400,"routeId":400,"children":402},2296,"nhodhim2gs6b0fnmhai68jl2","Eliminar sello",[],{"id":404,"documentId":405,"title":406,"sort":171,"parent_id":384,"only_as_menu":210,"type":199,"nodeId":405,"routeId":405,"children":407},2272,"za70ia3hau1jmhh1odey7648","Consultar lista de sellos",[],{"id":409,"documentId":410,"title":411,"sort":412,"parent_id":195,"only_as_menu":198,"type":199,"nodeId":410,"routeId":410,"children":413},2559,"vjgy9wyqpueas3ifwl4sqtxo","Comparación de contratos",49,[414,419],{"id":415,"documentId":416,"title":417,"sort":162,"parent_id":410,"only_as_menu":210,"type":199,"nodeId":416,"routeId":416,"children":418},2585,"ncci0s4sdebcqnpez9hta140","Obtener la página de resultados de comparación de contratos",[],{"id":420,"documentId":421,"title":422,"sort":174,"parent_id":410,"only_as_menu":210,"type":199,"nodeId":421,"routeId":421,"children":423},2719,"czpws8dh6ef4ynxxwmgu796b","Consultar detalles de la comparación de contratos",[],{"id":425,"documentId":426,"title":427,"sort":243,"parent_id":195,"only_as_menu":210,"type":199,"nodeId":426,"routeId":426,"children":428},1577,"e3esec8grw834hdls3c5uket","Evento de retrollamada",[429,434,439,444,449,454,459,464,469,474,479],{"id":430,"documentId":431,"title":432,"sort":162,"parent_id":426,"only_as_menu":210,"type":199,"nodeId":431,"routeId":431,"children":433},2426,"oqef89swtse7xva7ihxd4eah","Notificación de apertura de sobre",[],{"id":435,"documentId":436,"title":437,"sort":189,"parent_id":426,"only_as_menu":210,"type":199,"nodeId":436,"routeId":436,"children":438},2090,"m2b3cny59zr2019zx101vlq6","Notificación de firma completada por el firmante",[],{"id":440,"documentId":441,"title":442,"sort":231,"parent_id":426,"only_as_menu":210,"type":199,"nodeId":441,"routeId":441,"children":443},2064,"ktoxlvvrj5777zxi5oqoebun","Notificación de finalización de la firma por todos los firmantes",[],{"id":445,"documentId":446,"title":447,"sort":299,"parent_id":426,"only_as_menu":210,"type":199,"nodeId":446,"routeId":446,"children":448},2038,"c4g7knax4y890stvlk89zrgl","Notificación de firma de sobre completada",[],{"id":450,"documentId":451,"title":452,"sort":345,"parent_id":426,"only_as_menu":210,"type":199,"nodeId":451,"routeId":451,"children":453},2480,"z5a7ce3eu1vayhclx05l4boz","El firmante ve la notificación del sobre",[],{"id":455,"documentId":456,"title":457,"sort":237,"parent_id":426,"only_as_menu":210,"type":199,"nodeId":456,"routeId":456,"children":458},2116,"f6udt0g3kk1ty67u8o9dn0s3","Notificación de revocación de sobre",[],{"id":460,"documentId":461,"title":462,"sort":243,"parent_id":426,"only_as_menu":210,"type":199,"nodeId":461,"routeId":461,"children":463},2142,"xn1qw8wfeosuql9e4qd983gx","Notificación de vencimiento del sobre",[],{"id":465,"documentId":466,"title":467,"sort":249,"parent_id":426,"only_as_menu":210,"type":199,"nodeId":466,"routeId":466,"children":468},2168,"hzf0ipligf96y2hsh4yrz8q7","Firmar la notificación de interrupción de la tarea",[],{"id":470,"documentId":471,"title":472,"sort":255,"parent_id":426,"only_as_menu":210,"type":199,"nodeId":471,"routeId":471,"children":473},1909,"dkyp87hoikayfcnpi7misr3z","Notificación de resultado de síntesis de archivos",[],{"id":475,"documentId":476,"title":477,"sort":261,"parent_id":426,"only_as_menu":210,"type":199,"nodeId":476,"routeId":476,"children":478},2611,"zcv1ch0olb5ecpzo2u7jfw0e","Notificación de devolución de llamada de resultados de comparación de contratos",[],{"id":480,"documentId":481,"title":482,"sort":261,"parent_id":426,"only_as_menu":210,"type":199,"nodeId":481,"routeId":481,"children":483},2689,"il87aup17m7ydala24kjkhev","Error al entregar el sobre",[],{"id":485,"documentId":486,"title":487,"sort":249,"parent_id":195,"only_as_menu":210,"type":199,"nodeId":486,"routeId":486,"children":488},1479,"lqqpn7hfhf3xzgf2d9vz9h7u","Tabla de correspondencia de códigos de error",[],[490],{"id":491,"documentId":492,"title":493,"sort":162,"parent_id":197,"only_as_menu":198,"type":494,"nodeId":492,"routeId":492,"children":495},556,"kmxyx6s30cspdrb6lpq2vlmw","Guía para desarrolladores","document",[496,501,518,523],{"id":497,"documentId":498,"title":499,"sort":162,"parent_id":492,"only_as_menu":210,"type":494,"nodeId":498,"routeId":498,"children":500},608,"nqxvj8fpudh1phhwzjxyrqie","Guía de integración",[],{"id":502,"documentId":503,"title":504,"sort":171,"parent_id":492,"only_as_menu":210,"type":494,"nodeId":503,"routeId":503,"children":505},753,"rwuzqa9wdd8ifr9d2psn2oll","Guía de integración para socios del ecosistema ISV",[506,512],{"id":507,"documentId":508,"title":509,"sort":510,"parent_id":503,"only_as_menu":210,"type":494,"nodeId":508,"routeId":508,"children":511},734,"stjk6a2euo5bb9rnu5xidl9y","Guía de integración del flujo de código de autorización de OAuth 2.0",41,[],{"id":513,"documentId":514,"title":515,"sort":516,"parent_id":503,"only_as_menu":210,"type":494,"nodeId":514,"routeId":514,"children":517},769,"i640wop6allavqk5recnkqal","Descripción del alcance de las interfaces de la aplicación del ecosistema ISV",42,[],{"id":519,"documentId":520,"title":521,"sort":174,"parent_id":492,"only_as_menu":210,"type":494,"nodeId":520,"routeId":520,"children":522},595,"pu5by7nny465eng8uuhqfau6","Precauciones",[],{"id":524,"documentId":525,"title":526,"sort":189,"parent_id":492,"only_as_menu":210,"type":494,"nodeId":525,"routeId":525,"children":527},582,"vfj16znziy18o17n4sc5y7ng","Evento Webhook",[528,533,539,544,549,554,559,565],{"id":529,"documentId":530,"title":432,"sort":531,"parent_id":525,"only_as_menu":210,"type":494,"nodeId":530,"routeId":530,"children":532},454,"zf1p4cqkhirgzmjqq9pk0a3i",11,[],{"id":534,"documentId":535,"title":536,"sort":537,"parent_id":525,"only_as_menu":210,"type":494,"nodeId":535,"routeId":535,"children":538},480,"fznrramnzm5xmc8xs34bqck1","Notificación de finalización de firma del firmante",12,[],{"id":540,"documentId":541,"title":442,"sort":542,"parent_id":525,"only_as_menu":210,"type":494,"nodeId":541,"routeId":541,"children":543},506,"yiz759dqo68gqbyhvq2zfquk",13,[],{"id":545,"documentId":546,"title":447,"sort":547,"parent_id":525,"only_as_menu":210,"type":494,"nodeId":546,"routeId":546,"children":548},376,"caadherlspjkiayulikfh1og",14,[],{"id":550,"documentId":551,"title":457,"sort":552,"parent_id":525,"only_as_menu":210,"type":494,"nodeId":551,"routeId":551,"children":553},402,"wxwcvoo5k3tx99cf3at6iiwm",15,[],{"id":555,"documentId":556,"title":462,"sort":557,"parent_id":525,"only_as_menu":210,"type":494,"nodeId":556,"routeId":556,"children":558},428,"anv65ys13nincm1kmfp7v512",16,[],{"id":560,"documentId":561,"title":562,"sort":563,"parent_id":525,"only_as_menu":210,"type":494,"nodeId":561,"routeId":561,"children":564},621,"fjy4rotdw8b6r66mkflvur4c","Notificación de rechazo de aprobación del firmante",110,[],{"id":566,"documentId":567,"title":482,"sort":568,"parent_id":525,"only_as_menu":210,"type":494,"nodeId":567,"routeId":567,"children":569},532,"gcgzjrnf215vhmixw7obvrtd",120,[],[],{"id":507,"documentId":508,"title":509,"content":572,"sort":510,"is_visible":198,"parent_id":503,"only_as_menu":210,"createdAt":573,"updatedAt":574,"publishedAt":575,"locale":576,"seo":577},"\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>Secuencia de llamadas\u003C/strong>\u003C/span>\u003C/span>\u003C/h2>\u003Cfigure class=\"image\">\u003Cimg alt=\"image.png\" src=\"https://static.esignglobal.com/image_4047164e07.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\">Descripción general\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 es un protocolo de autorización ampliamente utilizado que permite a las aplicaciones de terceros acceder a los recursos del usuario mediante su consentimiento, sin necesidad de exponer sus credenciales. En el flujo de código de autorización de OAuth 2.0, el cliente debe dirigir al usuario al punto de conexión de autorización (Authorization Endpoint) del servidor de autorización para obtener el permiso correspondiente.\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\">Este documento tiene como objetivo detallar cómo construir y utilizar la URL de autorización según el protocolo OAuth 2.0, proporcionando ejemplos prácticos y consideraciones importantes.\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>I. Construcción de la URL para obtener el código de autorización\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\">Estructura básica de la URL de autorización\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\">La URL de autorización es la dirección que utiliza el cliente para realizar una solicitud al servidor de autorización. Está compuesta por los siguientes componentes:\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\">Descripción de los parámetros\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\">Nombre del parámetro\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\">Requerido\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\">Descripción\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\">Requerido\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\">Tipo de autorización, generalmente \u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">code\u003C/span>\u003C/code>\u003Cspan data-type=\"text\">(indica el uso del flujo de código de autorización)\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\">Requerido\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\">Identificador único del cliente,\u003C/span>\u003Cspan style=\"color:rgb(0,0,0);font-size:12pt;\">\u003Cspan data-type=\"text\">es decir,&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\">Obligatorio\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\">Dirección de destino para la redirección tras completar la autorización, debe coincidir con la dirección de callback registrada durante el registro del cliente\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\">Obligatorio\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\">Alcance de permisos solicitado, actualmente se admiten\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\">, después de la autorización, se podrán solicitar las openapi existentes de eSignGlobal. Múltiples scopes se pueden separar con espacios\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\">Opcional\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\">Cadena aleatoria utilizada para prevenir ataques CSRF, generada por el cliente y verificada en cuanto a su consistencia durante el callback\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\">Pasos para construir la URL de autorización\u003C/span>\u003C/h2>\u003Col style=\"list-style-type:decimal;\">\u003Cli>\u003Cdiv style=\"text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">\u003Cstrong>Determinar la dirección del servidor de autorización\u003C/strong>  Entorno sandbox: 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\">Entorno de producción: 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>Configurar los valores de los parámetros\u003C/strong>  Configure los valores de cada parámetro según sus necesidades reales. A continuación se muestra un ejemplo:\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>Construir parámetros de consulta\u003C/strong>  Una vez concatenados los parámetros anteriores en formato clave-valor a la dirección del servidor de autorización, utilice \u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">&amp;\u003C/span>\u003C/code>\u003Cspan data-type=\"text\">  para unir cada parámetro. Tenga en cuenta que los valores de los parámetros deben codificarse en 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\">Resultado de ejemplo:\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>Verificar el resultado de la concatenación\u003C/strong>  Asegúrese de que la dirección concatenada cumpla con los siguientes requisitos:\u003C/span>\u003C/div>\u003Cul style=\"list-style-type:circle;\">\u003Cli>\u003Cdiv style=\"text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">El orden de los parámetros puede ser cualquiera\u003C/span>\u003C/div>\u003C/li>\u003Cli>\u003Cdiv style=\"text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">Los valores de los parámetros están correctamente codificados en URL\u003C/span>\u003C/div>\u003C/li>\u003Cli>\u003Cdiv style=\"text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">Se han incluido todos los parámetros obligatorios\u003C/span>\u003C/div>\u003C/li>\u003C/ul>\u003C/li>\u003C/ol>\u003Cfigure class=\"image\">\u003Cimg alt=\"2.png\" src=\"https://static.esignglobal.com/2_4d2f50b136.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\">Código de ejemplo\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\">A continuación se muestra código de ejemplo para construir la dirección de autorización en varios lenguajes de programación comunes:\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\">Ejemplo en 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\">Ejemplo en 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\">Ejemplo en 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\">Consideraciones importantes\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\">Al construir y utilizar la dirección de autorización, se deben tener en cuenta los siguientes puntos:\u003C/span>\u003C/p>\u003Col style=\"list-style-type:decimal;\">\u003Cli>\u003Cdiv style=\"text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">\u003Cstrong>Correctitud de la codificación URL\u003C/strong> Todos los valores de los parámetros deben someterse a codificación URL (\u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">percent-encoding\u003C/span>\u003C/code>\u003Cspan data-type=\"text\">）， para asegurar que los caracteres especiales (como \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\"> 等） no modificarán la estructura de la URL. Por ejemplo,\u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">https://your-app.com/callback\u003C/span>\u003C/code>\u003Cspan data-type=\"text\"> debe codificarse como \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>Consistencia de la dirección de redireccionamiento\u003C/strong>\u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">redirect_uri\u003C/span>\u003C/code>\u003Cspan data-type=\"text\"> El valor del parámetro debe coincidir exactamente con la dirección de devolución de llamada registrada por el cliente en el servidor de autorización, incluido el protocolo (\u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">http\u003C/span>\u003C/code>\u003Cspan data-type=\"text\"> o \u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">https\u003C/span>\u003C/code>\u003Cspan data-type=\"text\">）、nombre de host, puerto y ruta. De lo contrario, el servidor de autorización rechazará la solicitud.\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> Seguridad del parámetro\u003C/strong>\u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">state\u003C/span>\u003C/code>\u003Cspan data-type=\"text\"> El parámetro se utiliza para prevenir ataques de falsificación de solicitudes entre sitios (CSRF). El cliente debe generar una cadena aleatoria e impredecible y, tras completar la autorización por parte del usuario, verificar si el valor de \u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">state\u003C/span>\u003C/code>\u003Cspan data-type=\"text\"> coincide con el valor enviado inicialmente.\u003C/span>\u003C/div>\u003C/li>\u003Cli>\u003Cdiv style=\"text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">\u003Cstrong>Razonabilidad del alcance de los permisos\u003C/strong>\u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">scope\u003C/span>\u003C/code>\u003Cspan data-type=\"text\"> El parámetro define el alcance de los permisos solicitados por el cliente. Debe elegirse un alcance de permisos mínimo según las necesidades reales, evitando solicitar recursos del usuario en exceso, mejorando así la confianza del usuario.\u003C/span>\u003C/div>\u003C/li>\u003Cli>\u003Cdiv style=\"text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">\u003Cstrong>Diferenciación de entornos\u003C/strong>  Durante las fases de desarrollo y pruebas, por lo general se utiliza un entorno de sandbox (como \u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">account-sml.esignglobal.com\u003C/span>\u003C/code>\u003Cspan data-type=\"text\"> ), tras el lanzamiento oficial, es necesario cambiar al entorno de producción (como \u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">account.esignglobal.com\u003C/span>\u003C/code>\u003Cspan data-type=\"text\"> ). Asegúrese de utilizar la dirección correcta del servidor de autorización en cada entorno.\u003C/span>\u003C/div>\u003C/li>\u003Cli>\u003Cdiv style=\"text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">\u003Cstrong>Procesamiento de información tras una autorización exitosa\u003C/strong>  Tras finalizar la autorización, el servicio de autorización de eSignGlobal utilizará \u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">redirect_uri\u003C/span>\u003C/code>\u003Cspan data-type=\"text\">concatenar y devolver\u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">code\u003C/span>\u003C/code>\u003Cspan data-type=\"text\">y\u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">baseUrl\u003C/span>\u003C/code>\u003Cspan data-type=\"text\"> , a través de \u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">baseUrl\u003C/span>\u003C/code>\u003Cspan data-type=\"text\"> se podrá identificar el centro de datos donde se encuentran los datos del autorizador; al ejecutar solicitudes openapi, es necesario realizarlas según el centro de datos correspondiente.\u003C/span>\u003C/div>\u003C/li>\u003Cli>\u003Cdiv style=\"text-align:left;text-indent:0px;\">\u003Cspan data-type=\"text\">\u003Cstrong>Manejo de errores\u003C/strong>  Si el usuario deniega la autorización o se produce otro error, el servidor de autorización devolverá a través de \u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">redirect_uri\u003C/span>\u003C/code>\u003Cspan data-type=\"text\"> la información de error (como \u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">error\u003C/span>\u003C/code>\u003Cspan data-type=\"text\"> y \u003C/span>\u003Ccode data-type=\"inlineCode\">\u003Cspan data-type=\"text\">error_description\u003C/span>\u003C/code>\u003Cspan data-type=\"text\"> parámetros), el cliente debe gestionar adecuadamente estos errores y proporcionar una respuesta clara al usuario.\u003C/span>\u003C/div>\u003C/li>\u003C/ol>\u003C/article>","2026-04-30T10:43:52.992Z","2026-05-07T11:04:18.685Z","2026-05-06T06:05:26.517Z","es-MX",null]