[{"data":1,"prerenderedAt":620},["ShallowReactive",2],{"navigation_docs_zh":3,"-zh-getting-started-quick-start":208,"-zh-getting-started-quick-start-surround":617},[4,22,40,50,64,82,180,194],{"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],{"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\u002Flist-public-products","zh\u002F6.reference\u002F3.operations\u002F11.list-public-products",{"title":145,"path":146,"stem":147},"按 slug 读取公开商品","\u002Fzh\u002Freference\u002Foperations\u002Fget-public-product","zh\u002F6.reference\u002F3.operations\u002F12.get-public-product",{"title":149,"path":150,"stem":151},"读取公开店铺资料","\u002Fzh\u002Freference\u002Foperations\u002Fget-public-merchant","zh\u002F6.reference\u002F3.operations\u002F13.get-public-merchant",{"title":153,"path":154,"stem":155},"读取店铺公开商品","\u002Fzh\u002Freference\u002Foperations\u002Flist-public-merchant-products","zh\u002F6.reference\u002F3.operations\u002F14.list-public-merchant-products",{"title":157,"path":158,"stem":159},"读取店铺公开分类","\u002Fzh\u002Freference\u002Foperations\u002Flist-public-merchant-categories","zh\u002F6.reference\u002F3.operations\u002F15.list-public-merchant-categories",{"title":161,"path":162,"stem":163},"读取店铺公开商品详情","\u002Fzh\u002Freference\u002Foperations\u002Fget-public-merchant-product","zh\u002F6.reference\u002F3.operations\u002F16.get-public-merchant-product",{"title":165,"path":166,"stem":167},"读取当前 API Key 的标识与 scope","\u002Fzh\u002Freference\u002Foperations\u002Fget-api-key-identity","zh\u002F6.reference\u002F3.operations\u002F17.get-api-key-identity",{"title":169,"path":170,"stem":171},"通过 API Key 读取公开分类","\u002Fzh\u002Freference\u002Foperations\u002Flist-api-key-catalog-categories","zh\u002F6.reference\u002F3.operations\u002F18.list-api-key-catalog-categories",{"title":173,"path":174,"stem":175},"通过 API Key 读取公开商品目录","\u002Fzh\u002Freference\u002Foperations\u002Flist-api-key-catalog-products","zh\u002F6.reference\u002F3.operations\u002F19.list-api-key-catalog-products",{"title":177,"path":178,"stem":179},"通过 API Key 读取公开商品","\u002Fzh\u002Freference\u002Foperations\u002Fget-api-key-catalog-product","zh\u002F6.reference\u002F3.operations\u002F20.get-api-key-catalog-product",{"title":181,"icon":182,"path":183,"stem":184,"children":185,"page":21},"示例","i-lucide-code-xml","\u002Fzh\u002Fexamples","zh\u002F7.examples",[186,190],{"title":187,"path":188,"stem":189},"最小 Nuxt Storefront","\u002Fzh\u002Fexamples\u002Fnuxt-storefront","zh\u002F7.examples\u002F1.nuxt-storefront",{"title":191,"path":192,"stem":193},"Webhook 验签","\u002Fzh\u002Fexamples\u002Fwebhook-verification","zh\u002F7.examples\u002F2.webhook-verification",{"title":195,"icon":196,"path":197,"stem":198,"children":199,"page":21},"版本与支持","i-lucide-life-buoy","\u002Fzh\u002Foperations","zh\u002F8.operations",[200,204],{"title":201,"path":202,"stem":203},"版本、迁移与变更记录","\u002Fzh\u002Foperations\u002Fversions-and-migrations","zh\u002F8.operations\u002F1.versions-and-migrations",{"title":205,"path":206,"stem":207},"支持与安全披露","\u002Fzh\u002Foperations\u002Fsupport-and-security","zh\u002F8.operations\u002F2.support-and-security",{"id":209,"title":5,"body":210,"description":611,"extension":612,"links":613,"meta":614,"navigation":497,"path":11,"seo":615,"stem":12,"__hash__":616},"docs_zh\u002Fzh\u002F1.getting-started\u002F1.quick-start.md",{"type":211,"value":212,"toc":606},"minimark",[213,216,224,228,294,297,301,307,343,350,353,574,602],[214,215,5],"h1",{"id":5},[217,218,219,220,223],"p",{},"如果你负责企业级正式接入，请先按",[221,222,18],"a",{"href":19},"完成从前置检查到生产与应急的全部门禁。本页只覆盖首个公开读取请求。",[225,226,227],"h2",{"id":227},"选择接入边界",[229,230,231,247],"table",{},[232,233,234],"thead",{},[235,236,237,241,244],"tr",{},[238,239,240],"th",{},"目标",[238,242,243],{},"使用",[238,245,246],{},"禁止使用",[248,249,250,261,272,283],"tbody",{},[235,251,252,255,258],{},[253,254,141],"td",{},[253,256,257],{},"公开 Storefront API",[253,259,260],{},"Merchant 会话 Cookie",[235,262,263,266,269],{},[253,264,265],{},"访问用户账号（开放后）",[253,267,268],{},"Authorization Code + PKCE S256，经官方授权域",[253,270,271],{},"密码模式、仿冒登录页或共享 Ayalink Cookie",[235,273,274,277,280],{},[253,275,276],{},"服务端应用",[253,278,279],{},"最小 scope 的安装令牌",[253,281,282],{},"浏览器保存 client secret",[235,284,285,288,291],{},[253,286,287],{},"接收业务事件",[253,289,290],{},"安装级签名 Webhook",[253,292,293],{},"无签名回调或 query token",[217,295,296],{},"在 Ayalink Merchant 开发者工作区创建开发者组织、应用版本与店铺安装。文档不代表生产资格：应用版本、scope、法律同意、店铺能力、市场和安装都必须处于有效状态。",[225,298,300],{"id":299},"配置公开-base-url","配置公开 Base URL",[217,302,303,306],{},[221,304,305],{"href":188},"Nuxt 示例","只需要公开配置：",[308,309,314],"pre",{"className":310,"code":311,"language":312,"meta":313,"style":313},"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","",[315,316,317,325,331,337],"code",{"__ignoreMap":313},[318,319,322],"span",{"class":320,"line":321},"line",1,[318,323,324],{},"NUXT_PUBLIC_AYALINK_API_BASE=https:\u002F\u002Fapi.example.invalid\u002Fapi\u002Fv1\n",[318,326,328],{"class":320,"line":327},2,[318,329,330],{},"NUXT_PUBLIC_AYALINK_AUTH_BASE=https:\u002F\u002Fstorefront.example.invalid\n",[318,332,334],{"class":320,"line":333},3,[318,335,336],{},"NUXT_PUBLIC_AYALINK_CLIENT_ID=replace-with-public-client-id\n",[318,338,340],{"class":320,"line":339},4,[318,341,342],{},"NUXT_PUBLIC_AYALINK_REDIRECT_URI=https:\u002F\u002Fshop.example.invalid\u002Foauth\u002Fcallback\n",[217,344,345,346,349],{},"以上均为不可用占位值，不是生产地址。禁止给任何秘密加上 ",[315,347,348],{},"NUXT_PUBLIC_","。",[225,351,352],{"id":352},"请求公开数据",[308,354,358],{"className":355,"code":356,"language":357,"meta":313,"style":313},"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",[315,359,360,407,418,437,458,478,484,492,499,551],{"__ignoreMap":313},[318,361,362,366,370,374,378,382,385,388,391,394,398,401,404],{"class":320,"line":321},[318,363,365],{"class":364},"spNyl","const",[318,367,369],{"class":368},"sTEyZ"," response ",[318,371,373],{"class":372},"sMK4o","=",[318,375,377],{"class":376},"s7zQu"," await",[318,379,381],{"class":380},"s2Zo4"," fetch",[318,383,384],{"class":368},"(",[318,386,387],{"class":372},"`${",[318,389,390],{"class":368},"apiBase",[318,392,393],{"class":372},"}",[318,395,397],{"class":396},"sfazB","\u002Fcatalog\u002Fproducts",[318,399,400],{"class":372},"`",[318,402,403],{"class":372},",",[318,405,406],{"class":372}," {\n",[318,408,409,413,416],{"class":320,"line":327},[318,410,412],{"class":411},"swJcz","  headers",[318,414,415],{"class":372},":",[318,417,406],{"class":372},[318,419,420,423,425,428,431,434],{"class":320,"line":333},[318,421,422],{"class":411},"    accept",[318,424,415],{"class":372},[318,426,427],{"class":372}," '",[318,429,430],{"class":396},"application\u002Fjson",[318,432,433],{"class":372},"'",[318,435,436],{"class":372},",\n",[318,438,439,442,445,447,449,451,454,456],{"class":320,"line":339},[318,440,441],{"class":372},"    '",[318,443,444],{"class":411},"accept-language",[318,446,433],{"class":372},[318,448,415],{"class":372},[318,450,427],{"class":372},[318,452,453],{"class":396},"zh-CN",[318,455,433],{"class":372},[318,457,436],{"class":372},[318,459,461,463,466,468,470,472,475],{"class":320,"line":460},5,[318,462,441],{"class":372},[318,464,465],{"class":411},"x-ayalink-market",[318,467,433],{"class":372},[318,469,415],{"class":372},[318,471,427],{"class":372},[318,473,474],{"class":396},"CN",[318,476,477],{"class":372},"'\n",[318,479,481],{"class":320,"line":480},6,[318,482,483],{"class":372},"  }\n",[318,485,487,489],{"class":320,"line":486},7,[318,488,393],{"class":372},[318,490,491],{"class":368},")\n",[318,493,495],{"class":320,"line":494},8,[318,496,498],{"emptyLinePlaceholder":497},true,"\n",[318,500,502,505,508,511,514,517,520,523,526,529,531,533,536,539,541,543,546,549],{"class":320,"line":501},9,[318,503,504],{"class":376},"if",[318,506,507],{"class":368}," (",[318,509,510],{"class":372},"!",[318,512,513],{"class":368},"response",[318,515,516],{"class":372},".",[318,518,519],{"class":368},"ok) ",[318,521,522],{"class":376},"throw",[318,524,525],{"class":372}," new",[318,527,528],{"class":380}," Error",[318,530,384],{"class":368},[318,532,400],{"class":372},[318,534,535],{"class":396},"AYALINK_HTTP_",[318,537,538],{"class":372},"${",[318,540,513],{"class":368},[318,542,516],{"class":372},[318,544,545],{"class":368},"status",[318,547,548],{"class":372},"}`",[318,550,491],{"class":368},[318,552,554,556,559,561,563,566,568,571],{"class":320,"line":553},10,[318,555,365],{"class":364},[318,557,558],{"class":368}," envelope ",[318,560,373],{"class":372},[318,562,377],{"class":376},[318,564,565],{"class":368}," response",[318,567,516],{"class":372},[318,569,570],{"class":380},"json",[318,572,573],{"class":368},"()\n",[217,575,576,577,580,581,580,584,580,587,580,590,593,594,597,598,601],{},"API 不可用时不得生成假商品。",[315,578,579],{},"401","、",[315,582,583],{},"403",[315,585,586],{},"404",[315,588,589],{},"409",[315,591,592],{},"422"," 与 ",[315,595,596],{},"429"," 必须按",[221,599,600],{"href":93},"错误码与限流","分别处理。",[603,604,605],"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":313,"searchDepth":327,"depth":327,"links":607},[608,609,610],{"id":227,"depth":327,"text":227},{"id":299,"depth":327,"text":300},{"id":352,"depth":327,"text":352},"选择正确接入环境，并在不把密钥放进浏览器的前提下发起首个公开 API 请求。","md",null,{},{"title":5,"description":611},"DsMBJboZSiiNZNr0x10sqGOPtaGa6WYnLOSm6KbO2Ts",[613,618],{"title":14,"path":15,"stem":16,"description":619,"children":-1},"理解公开文档、平台、店铺、安装、用户与 Provider 的信任边界。",1785955330811]