# 小程序连接小店
# 开发前准备
- 功能了解:开发前建议先阅读以下运营文档了解完整业务流程
- 微信小店「小程序连接小店」功能指引
- 微信小店「关联账号」使用指南:介绍视频号、公众号、企业微信、小程序等各渠道的关联能力与操作方法
- 微信小店「礼物抽奖」使用指南:介绍小程序/公众号/视频号直播场景下的礼物抽奖活动创建与管理
- 权限与凭证:商家自研可直接调用,使用小店 access_token;第三方服务商需获得商家对
权限集 ID:131的授权,使用 authorizer_access_token - 消息推送配置:需配置消息推送回调 URL,本模块涉及的事件:[事件] 订单通知 / cooperation_shop_order。详见 消息通知(回调)说明
# 关联账号
小程序与微信小店之间需要先建立关联关系才能使用连接能力。关联关系由小店侧发起邀请,小程序侧接受后生效(status=1);解绑后 status=2。
# 接入流程
# 关联关系建立
# 小程序组件接入
关联关系建立后,小程序可以直接使用以下原生组件展示小店内容:
| 组件名称 | 组件标签 | 最低基础库 | 用途说明 |
|---|---|---|---|
| 商品卡组件 | <store-product> | 3.7.0 | 在小程序中展示微信小店商品卡片,需与小店建立关联关系 |
| 店铺卡组件 | <store-home> | 3.5.5 | 在小程序中展示微信小店店铺卡片,无关联关系限制 |
| 礼物组件 | <store-gift> | 3.8.10 | 在小程序中展示微信小店礼物功能,需与小店建立关联关系,且商家需对该小程序创建礼物活动 |
| 优惠券组件 | <store-coupon> | 3.8.3 | 在小程序中展示微信小店优惠券,无关联关系限制 |
# 小程序 API 接入
| API 名称 | 用途说明 |
|---|---|
| wx.openStoreOrderDetail | 打开微信小店订单详情页 |
| wx.openStoreCouponDetail | 打开微信小店优惠券详情页 |
# 定制商品接入
适用于个性化印刷、定制刻字、3D 打印等定制商品场景。用户在小程序内完成定制操作后先上传文件获取 media_id,将 media_id 作为参数传入 <store-product> 商品卡;用户点击商品卡跳转到小店下单页完成下单;商家收到订单后通过小店服务端获取文件下载链接,完成定制发货。
| 步骤 | 接口 | 调用方 | 说明 |
|---|---|---|---|
| 用户定制后上传文件 | [API] 上传资料 / uploadec | 小程序服务端 | 传入用户 openid,返回 media_id;支持图片、CAD、3DMax、文档、压缩包等格式,最大 50M |
| 商家获取文件并发货 | [API] 获取文件下载链接 / getdownloadurl | 小店服务端 | 传入 openid 和 order_id,返回临时下载链接(有效期 10 分钟,每订单限 10 次/天) |
两个接口均须在服务端调用,不可在小程序前端直接调用。上传资料权限集 ID:180,获取文件下载链接权限集 ID:131。
# 礼物营销接入
礼物营销支持两种玩法:直接送礼(第三方应用直接发放礼物给指定用户)和礼物抽奖(在第三方应用内发起抽奖活动,用户参与后随机中奖)。两种玩法均需在小店后台创建礼物活动并授权关联第三方应用,通过相同的 API 接口实现。
礼物 API 支持小程序、小游戏、微信小店、移动应用四种账号类型调用。小店商家在后台创建礼物活动,授权关联的第三方应用作为发礼方;第三方应用服务端通过接口查询活动、指定收礼者、创建礼物订单,完成礼物发放;用户在小程序内通过 <store-gift> 礼物组件查看和领取礼物。
角色说明:
| 角色 | 说明 |
|---|---|
| 小店商家 | 在小店后台创建礼物活动,授权指定第三方应用参与发礼 |
| 关联第三方应用 | 作为发礼方,通过服务端接口发放礼物(支持小程序、小游戏、微信小店、移动应用) |
| 用户 | 通过小程序内的 <store-gift> 组件查看和领取礼物 |
完整接入流程:
| 步骤 | 接口 | 调用方 | 说明 |
|---|---|---|---|
| 查询可用的礼物活动 | [API] 查询小店礼物活动列表 / list_present_activity | 第三方应用服务端 | 获取小店已授权给当前应用的礼物活动列表 |
| 获取活动详情 | [API] 查询礼物活动详情 / get_activity | 第三方应用服务端 | 查询指定活动的商品、库存、有效期等详细信息 |
| 创建礼物订单 | [API] 创建并发送礼物 / create_present_order | 第三方应用服务端 | 创建礼物单,返回 present_id;外部应用身份调用时额外返回 business_type 和 query |
| 指定收礼用户 | [API] 指定礼物收礼者 / set_present_receiver | 第三方应用服务端 | 传入上一步返回的 present_id 和收礼用户的 openid,完成礼物发放,用户可在小程序内通过 <store-gift> 组件领取 |
| 查询发放记录 | [API] 查询礼物订单列表 / list_present_order | 第三方应用服务端 | 查询当前应用已发放的礼物单列表 |
| 查询订单详情 | [API] 查询礼物订单详情 / get_present_order | 第三方应用服务端 | 查询指定礼物单的状态(待领取/已领取/已过期等) |
以上接口均使用第三方应用的 access_token 调用,支持小程序、小游戏、微信小店、移动应用四种账号类型。
# 事件通知接入
配置消息推送后,当用户通过小程序进入小店下单成功,小店侧会向渠道小程序推送订单通知回调。
[事件] 订单通知 / cooperation_shop_order 推送至小程序侧配置的消息回调地址,存在两个 Event 值:
| 场景 | Event 值 |
|---|---|
| 旧版关联账号 | cooperation_shop_order |
| 新版关联账号 | related_shop_order_submission |
回调消息示例(解密后的明文 JSON):
{
"ToUserName": "gh_2defbb026678",
"FromUserName": "OPENID",
"CreateTime": 1706518830,
"MsgType": "event",
"Event": "cooperation_shop_order",
"Data": {
"order_id": "coiqBw3B****TdtdzIpQ",
"shop_appid": "店铺appid"
}
}
order_id并非小店侧的订单 ID,仅供渠道小程序查询使用。
重试策略:0s / 0s / 10s / 1min / 5min / 30min / 60min / 60min / 60min,最多推送 10 次。
# 接口全览
# 第三方应用服务端接口
以下接口支持小程序、小游戏、微信小店、移动应用四种账号类型调用。
| 中文名 / 英文名 | 请求方式 | 功能说明 |
|---|---|---|
| 上传资料 / uploadec | POST /channels/ec/open/upload | 上传定制商品文件,返回 media_id 供下单时传参(仅小程序场景使用) |
| 查询小店礼物活动列表 / list_present_activity | POST /channels/ec/b2c/activity/list/promoter/get | 查询小店授权给当前应用的送礼活动列表 |
| 查询礼物活动详情 / get_activity | POST /channels/ec/b2c/activity/info/promoter/get | 查询指定送礼活动的商品、库存、有效期等详情 |
| 指定礼物收礼者 / set_present_receiver | POST /channels/ec/order/presentorder/receiver/set | 传入 present_id 和收礼用户 openid,绑定收礼关系 |
| 创建并发送礼物 / create_present_order | POST /channels/ec/order/presentorder/create | 创建礼物单,返回 present_id;外部应用身份调用时额外返回 business_type(外部 App 跳转业务类型)和 query(外部 App 跳转参数) |
| 查询礼物订单列表 / list_present_order | POST /channels/ec/order/presentlist/get | 查询当前应用已发放的礼物单列表 |
| 查询收礼者订单列表 / get_receiver_order_list | POST /channels/ec/order/receiverorderlist/get | 查询发放给某位收礼者的订单列表 |
| 查询礼物订单详情 / get_present_order | POST /channels/ec/order/present/get | 查询指定礼物单的状态详情 |
存在旧版接口 查询礼物订单列表(旧) 和 查询礼物订单详情(旧),推荐使用上方新版接口。
# 小店服务端接口
| 中文名 / 英文名 | 请求方式 | 功能说明 |
|---|---|---|
| 获取文件下载链接 / getdownloadurl | POST /channels/ec/open/get_download_url | 传入 openid 和 order_id,获取定制商品文件的临时下载链接 |
# 事件通知(推送至小程序侧)
| 中文名 / 英文名 | Event 值 | 说明 |
|---|---|---|
| 订单通知 / cooperation_shop_order | cooperation_shop_order / related_shop_order_submission | 用户通过小程序下单成功后,小店推送订单回调至渠道小程序配置的消息回调地址 |
# 小程序组件
| 组件名称 | 组件标签 | 最低基础库 |
|---|---|---|
| 商品卡组件 | <store-product> | 3.7.0 |
| 店铺卡组件 | <store-home> | 3.5.5 |
| 礼物组件 | <store-gift> | 3.8.10 |
| 优惠券组件 | <store-coupon> | 3.8.3 |
# 小程序 API
| API 名称 | 功能说明 |
|---|---|
| wx.openStoreOrderDetail | 打开微信小店订单详情页 |
| wx.openStoreCouponDetail | 打开微信小店优惠券详情页 |
# 常见问题 FAQ
Q:订单通知的 Event 有两个值,如何区分?
A:cooperation_shop_order 用于旧版关联账号,related_shop_order_submission 用于新版关联账号。两者消息结构相同,开发者需根据实际的关联关系类型处理对应的 Event 值。
Q:礼物 API 使用哪个 access_token 调用? A:所有礼物接口均由第三方应用服务端调用,使用对应应用的 access_token,支持小程序、小游戏、微信小店、移动应用四种账号类型;上传资料(uploadec)仅小程序场景使用,由小程序服务端调用,使用小程序 access_token;获取文件下载链接(getdownloadurl)由小店服务端调用,使用小店 access_token。