[{"data":1,"prerenderedAt":640},["ShallowReactive",2],{"navigation_docs_zh":3,"-zh-getting-started-quick-start":228,"-zh-getting-started-quick-start-surround":637},[4,22,40,50,64,82,200,214],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":21},"快速开始","i-lucide-rocket","\u002Fzh\u002Fgetting-started","zh\u002F1.getting-started",[10,13,17],{"title":5,"path":11,"stem":12},"\u002Fzh\u002Fgetting-started\u002Fquick-start","zh\u002F1.getting-started\u002F1.quick-start",{"title":14,"path":15,"stem":16},"信任模型","\u002Fzh\u002Fgetting-started\u002Ftrust-model","zh\u002F1.getting-started\u002F2.trust-model",{"title":18,"path":19,"stem":20},"大客户端到端接入指南","\u002Fzh\u002Fgetting-started\u002Fenterprise-integration","zh\u002F1.getting-started\u002F3.enterprise-integration",false,{"title":23,"icon":24,"path":25,"stem":26,"children":27,"page":21},"自研 Storefront","i-lucide-store","\u002Fzh\u002Fstorefront","zh\u002F2.storefront",[28,32,36],{"title":29,"path":30,"stem":31},"第三方 Storefront","\u002Fzh\u002Fstorefront\u002Fthird-party-storefront","zh\u002F2.storefront\u002F1.third-party-storefront",{"title":33,"path":34,"stem":35},"Turnstile 的信任边界","\u002Fzh\u002Fstorefront\u002Fchallenge-and-turnstile","zh\u002F2.storefront\u002F2.challenge-and-turnstile",{"title":37,"path":38,"stem":39},"第三方店铺前端公共 API","\u002Fzh\u002Fstorefront\u002Fpublic-api","zh\u002F2.storefront\u002F3.public-api",{"title":41,"icon":42,"path":43,"stem":44,"children":45,"page":21},"OAuth 与身份","i-lucide-key-round","\u002Fzh\u002Foauth","zh\u002F3.oauth",[46],{"title":47,"path":48,"stem":49},"第三方账号授权安全边界","\u002Fzh\u002Foauth\u002Fauthorization-code-pkce","zh\u002F3.oauth\u002F1.authorization-code-pkce",{"title":51,"icon":52,"path":53,"stem":54,"children":55,"page":21},"开发者平台","i-lucide-blocks","\u002Fzh\u002Fplatform","zh\u002F4.platform",[56,60],{"title":57,"path":58,"stem":59},"应用、版本、安装与 Scope","\u002Fzh\u002Fplatform\u002Fapps-installations-scopes","zh\u002F4.platform\u002F1.apps-installations-scopes",{"title":61,"path":62,"stem":63},"Origin、Redirect、反向代理与环境","\u002Fzh\u002Fplatform\u002Fsecurity-and-environments","zh\u002F4.platform\u002F2.security-and-environments",{"title":65,"icon":66,"path":67,"stem":68,"children":69,"page":21},"运行时扩展","i-lucide-workflow","\u002Fzh\u002Fruntime","zh\u002F5.runtime",[70,74,78],{"title":71,"path":72,"stem":73},"安装级 Webhook","\u002Fzh\u002Fruntime\u002Fwebhooks","zh\u002F5.runtime\u002F1.webhooks",{"title":75,"path":76,"stem":77},"库存同步","\u002Fzh\u002Fruntime\u002Finventory-sync","zh\u002F5.runtime\u002F2.inventory-sync",{"title":79,"path":80,"stem":81},"自动发货 Provider","\u002Fzh\u002Fruntime\u002Fauto-fulfillment","zh\u002F5.runtime\u002F3.auto-fulfillment",{"title":83,"icon":84,"path":85,"stem":86,"children":87,"page":21},"API 参考","i-lucide-braces","\u002Fzh\u002Freference","zh\u002F6.reference",[88,91,95],{"title":83,"path":89,"stem":90},"\u002Fzh\u002Freference\u002Fapi","zh\u002F6.reference\u002F1.api",{"title":92,"path":93,"stem":94},"错误、幂等与限流","\u002Fzh\u002Freference\u002Ferrors-and-limits","zh\u002F6.reference\u002F2.errors-and-limits",{"title":96,"path":97,"stem":98,"children":99,"page":21},"Endpoint 目录","\u002Fzh\u002Freference\u002Foperations","zh\u002F6.reference\u002F3.operations",[100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192,196],{"title":101,"path":102,"stem":103},"读取公开运行配置","\u002Fzh\u002Freference\u002Foperations\u002Fget-public-runtime-config","zh\u002F6.reference\u002F3.operations\u002F01.get-public-runtime-config",{"title":105,"path":106,"stem":107},"读取公开站点启动配置","\u002Fzh\u002Freference\u002Foperations\u002Fget-public-bootstrap","zh\u002F6.reference\u002F3.operations\u002F02.get-public-bootstrap",{"title":109,"path":110,"stem":111},"读取公开联系渠道","\u002Fzh\u002Freference\u002Foperations\u002Fget-public-contact","zh\u002F6.reference\u002F3.operations\u002F03.get-public-contact",{"title":113,"path":114,"stem":115},"按语言读取当前已发布法律正文","\u002Fzh\u002Freference\u002Foperations\u002Flist-public-legal-documents","zh\u002F6.reference\u002F3.operations\u002F04.list-public-legal-documents",{"title":117,"path":118,"stem":119},"读取店铺已发布装修","\u002Fzh\u002Freference\u002Foperations\u002Fget-public-storefront-decoration","zh\u002F6.reference\u002F3.operations\u002F05.get-public-storefront-decoration",{"title":121,"path":122,"stem":123},"读取店铺公开安全配置","\u002Fzh\u002Freference\u002Foperations\u002Fget-public-store-security-config","zh\u002F6.reference\u002F3.operations\u002F06.get-public-store-security-config",{"title":125,"path":126,"stem":127},"搜索可公开销售商品","\u002Fzh\u002Freference\u002Foperations\u002Fsearch-public-products","zh\u002F6.reference\u002F3.operations\u002F07.search-public-products",{"title":129,"path":130,"stem":131},"读取公开分类","\u002Fzh\u002Freference\u002Foperations\u002Flist-public-categories","zh\u002F6.reference\u002F3.operations\u002F08.list-public-categories",{"title":133,"path":134,"stem":135},"读取安装级凭据绑定身份","\u002Fzh\u002Freference\u002Foperations\u002Fget-installation-credential-identity","zh\u002F6.reference\u002F3.operations\u002F09.get-installation-credential-identity",{"title":137,"path":138,"stem":139},"读取安装级凭据就绪与阻塞事实","\u002Fzh\u002Freference\u002Foperations\u002Fget-installation-credential-readiness","zh\u002F6.reference\u002F3.operations\u002F10.get-installation-credential-readiness",{"title":141,"path":142,"stem":143},"创建官方托管登录流程","\u002Fzh\u002Freference\u002Foperations\u002Finitiate-hosted-login","zh\u002F6.reference\u002F3.operations\u002F11.initiate-hosted-login",{"title":145,"path":146,"stem":147},"以 PKCE 单次消费托管登录返回码","\u002Fzh\u002Freference\u002Foperations\u002Fconsume-hosted-login-return","zh\u002F6.reference\u002F3.operations\u002F12.consume-hosted-login-return",{"title":149,"path":150,"stem":151},"创建服务端重算的托管结账会话","\u002Fzh\u002Freference\u002Foperations\u002Fcreate-hosted-checkout-session","zh\u002F6.reference\u002F3.operations\u002F13.create-hosted-checkout-session",{"title":153,"path":154,"stem":155},"读取绑定安装的托管结账状态","\u002Fzh\u002Freference\u002Foperations\u002Fget-hosted-checkout-session","zh\u002F6.reference\u002F3.operations\u002F14.get-hosted-checkout-session",{"title":157,"path":158,"stem":159},"取消尚未进入不可逆支付阶段的托管结账","\u002Fzh\u002Freference\u002Foperations\u002Fcancel-hosted-checkout-session","zh\u002F6.reference\u002F3.operations\u002F15.cancel-hosted-checkout-session",{"title":161,"path":162,"stem":163},"读取公开商品目录","\u002Fzh\u002Freference\u002Foperations\u002Flist-public-products","zh\u002F6.reference\u002F3.operations\u002F16.list-public-products",{"title":165,"path":166,"stem":167},"按 slug 读取公开商品","\u002Fzh\u002Freference\u002Foperations\u002Fget-public-product","zh\u002F6.reference\u002F3.operations\u002F17.get-public-product",{"title":169,"path":170,"stem":171},"读取公开店铺资料","\u002Fzh\u002Freference\u002Foperations\u002Fget-public-merchant","zh\u002F6.reference\u002F3.operations\u002F18.get-public-merchant",{"title":173,"path":174,"stem":175},"读取店铺公开商品","\u002Fzh\u002Freference\u002Foperations\u002Flist-public-merchant-products","zh\u002F6.reference\u002F3.operations\u002F19.list-public-merchant-products",{"title":177,"path":178,"stem":179},"读取店铺公开分类","\u002Fzh\u002Freference\u002Foperations\u002Flist-public-merchant-categories","zh\u002F6.reference\u002F3.operations\u002F20.list-public-merchant-categories",{"title":181,"path":182,"stem":183},"读取店铺公开商品详情","\u002Fzh\u002Freference\u002Foperations\u002Fget-public-merchant-product","zh\u002F6.reference\u002F3.operations\u002F21.get-public-merchant-product",{"title":185,"path":186,"stem":187},"读取当前 API Key 的标识与 scope","\u002Fzh\u002Freference\u002Foperations\u002Fget-api-key-identity","zh\u002F6.reference\u002F3.operations\u002F22.get-api-key-identity",{"title":189,"path":190,"stem":191},"通过 API Key 读取公开分类","\u002Fzh\u002Freference\u002Foperations\u002Flist-api-key-catalog-categories","zh\u002F6.reference\u002F3.operations\u002F23.list-api-key-catalog-categories",{"title":193,"path":194,"stem":195},"通过 API Key 读取公开商品目录","\u002Fzh\u002Freference\u002Foperations\u002Flist-api-key-catalog-products","zh\u002F6.reference\u002F3.operations\u002F24.list-api-key-catalog-products",{"title":197,"path":198,"stem":199},"通过 API Key 读取公开商品","\u002Fzh\u002Freference\u002Foperations\u002Fget-api-key-catalog-product","zh\u002F6.reference\u002F3.operations\u002F25.get-api-key-catalog-product",{"title":201,"icon":202,"path":203,"stem":204,"children":205,"page":21},"示例","i-lucide-code-xml","\u002Fzh\u002Fexamples","zh\u002F7.examples",[206,210],{"title":207,"path":208,"stem":209},"最小 Nuxt Storefront","\u002Fzh\u002Fexamples\u002Fnuxt-storefront","zh\u002F7.examples\u002F1.nuxt-storefront",{"title":211,"path":212,"stem":213},"Webhook 验签","\u002Fzh\u002Fexamples\u002Fwebhook-verification","zh\u002F7.examples\u002F2.webhook-verification",{"title":215,"icon":216,"path":217,"stem":218,"children":219,"page":21},"版本与支持","i-lucide-life-buoy","\u002Fzh\u002Foperations","zh\u002F8.operations",[220,224],{"title":221,"path":222,"stem":223},"版本、迁移与变更记录","\u002Fzh\u002Foperations\u002Fversions-and-migrations","zh\u002F8.operations\u002F1.versions-and-migrations",{"title":225,"path":226,"stem":227},"支持与安全披露","\u002Fzh\u002Foperations\u002Fsupport-and-security","zh\u002F8.operations\u002F2.support-and-security",{"id":229,"title":5,"body":230,"description":631,"extension":632,"links":633,"meta":634,"navigation":517,"path":11,"seo":635,"stem":12,"__hash__":636},"docs_zh\u002Fzh\u002F1.getting-started\u002F1.quick-start.md",{"type":231,"value":232,"toc":626},"minimark",[233,236,244,248,314,317,321,327,363,370,373,594,622],[234,235,5],"h1",{"id":5},[237,238,239,240,243],"p",{},"如果你负责企业级正式接入，请先按",[241,242,18],"a",{"href":19},"完成从前置检查到生产与应急的全部门禁。本页只覆盖首个公开读取请求。",[245,246,247],"h2",{"id":247},"选择接入边界",[249,250,251,267],"table",{},[252,253,254],"thead",{},[255,256,257,261,264],"tr",{},[258,259,260],"th",{},"目标",[258,262,263],{},"使用",[258,265,266],{},"禁止使用",[268,269,270,281,292,303],"tbody",{},[255,271,272,275,278],{},[273,274,161],"td",{},[273,276,277],{},"公开 Storefront API",[273,279,280],{},"Merchant 会话 Cookie",[255,282,283,286,289],{},[273,284,285],{},"访问用户账号（开放后）",[273,287,288],{},"Authorization Code + PKCE S256，经官方授权域",[273,290,291],{},"密码模式、仿冒登录页或共享 Ayalink Cookie",[255,293,294,297,300],{},[273,295,296],{},"服务端应用",[273,298,299],{},"最小 scope 的安装令牌",[273,301,302],{},"浏览器保存 client secret",[255,304,305,308,311],{},[273,306,307],{},"接收业务事件",[273,309,310],{},"安装级签名 Webhook",[273,312,313],{},"无签名回调或 query token",[237,315,316],{},"在 Ayalink Merchant 开发者工作区创建开发者组织、应用版本与店铺安装。文档不代表生产资格：应用版本、scope、法律同意、店铺能力、市场和安装都必须处于有效状态。",[245,318,320],{"id":319},"配置公开-base-url","配置公开 Base URL",[237,322,323,326],{},[241,324,325],{"href":208},"Nuxt 示例","只需要公开配置：",[328,329,334],"pre",{"className":330,"code":331,"language":332,"meta":333,"style":333},"language-env shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","NUXT_PUBLIC_AYALINK_API_BASE=https:\u002F\u002Fapi.example.invalid\u002Fapi\u002Fv1\nNUXT_PUBLIC_AYALINK_AUTH_BASE=https:\u002F\u002Fstorefront.example.invalid\nNUXT_PUBLIC_AYALINK_CLIENT_ID=replace-with-public-client-id\nNUXT_PUBLIC_AYALINK_REDIRECT_URI=https:\u002F\u002Fshop.example.invalid\u002Foauth\u002Fcallback\n","env","",[335,336,337,345,351,357],"code",{"__ignoreMap":333},[338,339,342],"span",{"class":340,"line":341},"line",1,[338,343,344],{},"NUXT_PUBLIC_AYALINK_API_BASE=https:\u002F\u002Fapi.example.invalid\u002Fapi\u002Fv1\n",[338,346,348],{"class":340,"line":347},2,[338,349,350],{},"NUXT_PUBLIC_AYALINK_AUTH_BASE=https:\u002F\u002Fstorefront.example.invalid\n",[338,352,354],{"class":340,"line":353},3,[338,355,356],{},"NUXT_PUBLIC_AYALINK_CLIENT_ID=replace-with-public-client-id\n",[338,358,360],{"class":340,"line":359},4,[338,361,362],{},"NUXT_PUBLIC_AYALINK_REDIRECT_URI=https:\u002F\u002Fshop.example.invalid\u002Foauth\u002Fcallback\n",[237,364,365,366,369],{},"以上均为不可用占位值，不是生产地址。禁止给任何秘密加上 ",[335,367,368],{},"NUXT_PUBLIC_","。",[245,371,372],{"id":372},"请求公开数据",[328,374,378],{"className":375,"code":376,"language":377,"meta":333,"style":333},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const response = await fetch(`${apiBase}\u002Fcatalog\u002Fproducts`, {\n  headers: {\n    accept: 'application\u002Fjson',\n    'accept-language': 'zh-CN',\n    'x-ayalink-market': 'CN'\n  }\n})\n\nif (!response.ok) throw new Error(`AYALINK_HTTP_${response.status}`)\nconst envelope = await response.json()\n","ts",[335,379,380,427,438,457,478,498,504,512,519,571],{"__ignoreMap":333},[338,381,382,386,390,394,398,402,405,408,411,414,418,421,424],{"class":340,"line":341},[338,383,385],{"class":384},"spNyl","const",[338,387,389],{"class":388},"sTEyZ"," response ",[338,391,393],{"class":392},"sMK4o","=",[338,395,397],{"class":396},"s7zQu"," await",[338,399,401],{"class":400},"s2Zo4"," fetch",[338,403,404],{"class":388},"(",[338,406,407],{"class":392},"`${",[338,409,410],{"class":388},"apiBase",[338,412,413],{"class":392},"}",[338,415,417],{"class":416},"sfazB","\u002Fcatalog\u002Fproducts",[338,419,420],{"class":392},"`",[338,422,423],{"class":392},",",[338,425,426],{"class":392}," {\n",[338,428,429,433,436],{"class":340,"line":347},[338,430,432],{"class":431},"swJcz","  headers",[338,434,435],{"class":392},":",[338,437,426],{"class":392},[338,439,440,443,445,448,451,454],{"class":340,"line":353},[338,441,442],{"class":431},"    accept",[338,444,435],{"class":392},[338,446,447],{"class":392}," '",[338,449,450],{"class":416},"application\u002Fjson",[338,452,453],{"class":392},"'",[338,455,456],{"class":392},",\n",[338,458,459,462,465,467,469,471,474,476],{"class":340,"line":359},[338,460,461],{"class":392},"    '",[338,463,464],{"class":431},"accept-language",[338,466,453],{"class":392},[338,468,435],{"class":392},[338,470,447],{"class":392},[338,472,473],{"class":416},"zh-CN",[338,475,453],{"class":392},[338,477,456],{"class":392},[338,479,481,483,486,488,490,492,495],{"class":340,"line":480},5,[338,482,461],{"class":392},[338,484,485],{"class":431},"x-ayalink-market",[338,487,453],{"class":392},[338,489,435],{"class":392},[338,491,447],{"class":392},[338,493,494],{"class":416},"CN",[338,496,497],{"class":392},"'\n",[338,499,501],{"class":340,"line":500},6,[338,502,503],{"class":392},"  }\n",[338,505,507,509],{"class":340,"line":506},7,[338,508,413],{"class":392},[338,510,511],{"class":388},")\n",[338,513,515],{"class":340,"line":514},8,[338,516,518],{"emptyLinePlaceholder":517},true,"\n",[338,520,522,525,528,531,534,537,540,543,546,549,551,553,556,559,561,563,566,569],{"class":340,"line":521},9,[338,523,524],{"class":396},"if",[338,526,527],{"class":388}," (",[338,529,530],{"class":392},"!",[338,532,533],{"class":388},"response",[338,535,536],{"class":392},".",[338,538,539],{"class":388},"ok) ",[338,541,542],{"class":396},"throw",[338,544,545],{"class":392}," new",[338,547,548],{"class":400}," Error",[338,550,404],{"class":388},[338,552,420],{"class":392},[338,554,555],{"class":416},"AYALINK_HTTP_",[338,557,558],{"class":392},"${",[338,560,533],{"class":388},[338,562,536],{"class":392},[338,564,565],{"class":388},"status",[338,567,568],{"class":392},"}`",[338,570,511],{"class":388},[338,572,574,576,579,581,583,586,588,591],{"class":340,"line":573},10,[338,575,385],{"class":384},[338,577,578],{"class":388}," envelope ",[338,580,393],{"class":392},[338,582,397],{"class":396},[338,584,585],{"class":388}," response",[338,587,536],{"class":392},[338,589,590],{"class":400},"json",[338,592,593],{"class":388},"()\n",[237,595,596,597,600,601,600,604,600,607,600,610,613,614,617,618,621],{},"API 不可用时不得生成假商品。",[335,598,599],{},"401","、",[335,602,603],{},"403",[335,605,606],{},"404",[335,608,609],{},"409",[335,611,612],{},"422"," 与 ",[335,615,616],{},"429"," 必须按",[241,619,620],{"href":93},"错误码与限流","分别处理。",[623,624,625],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}",{"title":333,"searchDepth":347,"depth":347,"links":627},[628,629,630],{"id":247,"depth":347,"text":247},{"id":319,"depth":347,"text":320},{"id":372,"depth":347,"text":372},"选择正确接入环境，并在不把密钥放进浏览器的前提下发起首个公开 API 请求。","md",null,{},{"title":5,"description":631},"DsMBJboZSiiNZNr0x10sqGOPtaGa6WYnLOSm6KbO2Ts",[633,638],{"title":14,"path":15,"stem":16,"description":639,"children":-1},"理解公开文档、平台、店铺、安装、用户与 Provider 的信任边界。",1785961916874]