调起小程序发券组件

更新时间:2025.11.07

开发者可通过调用 wx.openBusinessView 方式在本小程序打开「 小程序发券」组件。

接口说明

前置条件:商家小程序在打开领券组件前,需要先通过后台 API 调用向用户预发放商品券接口,预下单接口会返回预下单 token,通过这个 token 才能打开领券组件,否则会打开组件失败。

接口名称:wx.openBusinessView

兼容性表现说明

  • 微信>=8.0.30且小程序版本库 >= 2.28.1 ,低版本需提示用户升级到最新的微信版本。

字段说明

请求参数

 businessType   必填  string(32)

联系微信支付运营获取


 extraData   必填  object

用于向组件传递商品券信息

属性

wx.openBusinessView 请求示例

1if (wx.openBusinessView && checkVersion()) {
2  wx.openBusinessView({
3    businessType: '', // 具体值待定
4    extraData: {
5      action: 'receiveCoupon', // 领券操作
6      token: '',   // 预下单 token
7    },
8    success(e) {
9      console.debug('openBusinessView success: ', e); // 打开领券组件,关闭组件时会触发该回调
10      // do something
11    },
12    fail(e) {
13      console.debug('openBusinessView failed:', e); // 打开领券组件失败
14      // do something
15    },
16    complete(msg) {
17      console.debug('openBusinessView completed: ', msg); // 打开领券组件完成后触发的回调,无论 success 还是 fail 都会触发 complete
18      // do something
19    }
20  });
21} else {
22  // 引导用户升级微信版本
23}

用户选择商品后的回调

 

触发场景: 当用户选择了某个商品,领券组件会退出返回到商家的小程序页面,并会带上 extraData。

回调处理方法:下面有 2 种方式可以处理关闭组件的回调事件。

  1. 请求示例代码中 success 或者 complete 回调会收到对应的回调事件

  2. 在小程序的 app.ts/app.js 文件的 onShow 事件里添加判断逻辑,并根据回调数据进行相应的逻辑处理

关闭组件的回调示例

1//  当前页面的 onShow 或者 app.ts/app.js 文件
2onShow(res) {
3  if (res.scene === 1038) { // 场景值1038:从被打开的小程序返回
4    const { appId, extraData } = res.referrerInfo;
5    if (appId === 'wxe2f280194b94c0aa') { // 建议检查来源 appId,确保从领券组件返回商家小程序页面,领券组件 appId 为 wxe2f280194b94c0aa
6      const {
7        action, // 当用户选择商品的时候,action 会返回"selectProductInReceiving";当用户领券后点击“去使用”的时候,会返回"useCouponInReceiving"
8        productPath, // 如果有配置商品的跳转 path,会通过 productPath 返回
9        source, // 来源标识,领券组件的 source为"receiveProductCouponComponent"
10      } = extraData;
11      console.debug('用户动作: ', action);
12      console.debug('商品 path: ', productPath);
13      console.debug('来源:', source);
14      // TODO 可根据用户 action 和商品 path 进行对应商品的跳转和展示
15    }
16  }
17}

异常场景

商家在设计流程时需要注意兼容用户体验

场景

用户表现

商家使用了没有前置配置的appid调用组件。

用户会进入微信支付提供的组件页面,看不到商品,但是看到报错“商家未开通该功能”

未在后台进行预下单获取 token,传递的 token 无效

打开领券组件,领券组件会提示“获取数据失败”,用户点击关闭按钮,领券组件关闭,回到商家小程序

对应的商品未上架

用户会进入微信支付提供的组件页面,看不到商品,但是看到报错“商品不存在”

商家提供给小程序组件内的活动配置失效(包含活动库存不够,活动有效期过期,商品库存不够)

用户会进入微信支付提供的组件页面,可以看到商品,但是点击领取时看到对应报错,如“商品已抢光”

请注意,因为库存和有效期等原因的报错,微信支付无法实时同步给商家,建议商家自身做好有效期和库存的监控,如监控库存不足时, 不引导用户跳转到微信支付提供的领券组件。

 

元宝AI
反馈
目录
置顶