# 小程序核销组件:核销用户的团购优惠

注意:
1. 此核销方式需前往 视频号小店网页端-「订单与核销」-「核销管理」- 「管理核销方式」开通。
2. 需通过「小程序核销组件」核销成功一张券,才能完成开通。
3. 开通前,该方式只能核销店铺成员的团购优惠券,不能核销非店铺成员的团购优惠券。

# 接口名称:wx.openBusinessView

# 接口兼容:

  • 小程序版本库 >= 2.6.0,低版本需提示用户升级微信版本。
  • iOS兼容性:兼容IOS 8.0.30.34 及以上版本。
  • Android兼容性:兼容 安卓 8.0.30 及以上版本。

# 请求参数说明

# Object object

参数名 变量 类型[长度限制] 必填 描述
跳转类型 businessType string[1,32] 固定配置:shopConsumeVoucher
示例值:shopConsumeVoucher
业务参数 extraData Object<ExtraData> 需要传递给核销 SDK 的券码数据。

# ExtraData

参数名 变量 类型[长度限制] 必填 描述
核销加密券码数组 encrypted_codes Array<string> voucher_keys和encrypted_codes,二者选其一 需核销的加密券code,用户订单详情页跳转商家上小程序时可以从path上获取。
如为次卡商品,传多个相同的encrypted_code,代表核销多次。
核销明文券码对象数组 voucher_keys Array<VoucherKey> voucher_keys和encrypted_codes,二者选其一 用户的明文券code及sku信息,查询用户的团购优惠列表 接口可获取。
一次性传入多组不同的voucher_key,代表一次核销多个不同的券code,array_size最大为10。
如为次卡商品,传多组相同的voucher_key,代表核销多次。
核销券码 consume_request_no string 核销券码,每次需要唯一

如果想获取encrypted_codes 来调用核销接口
用户从 视频号订单详情页 跳转到商家创建团购优惠时配置的小程序verify_page,系统会自动在verify_page的path后面追加encrypted_codes的参数
例如商家配置的path为
1. /path/html?abc=xxxx
则系统会改为 /path/html?abc=xxxx&encrypted_codes=xxx
2. /path/html
则系统会改为 /path/html?encrypted_codes=xxx
注意:追加encrypted_codes参数时,只会追加用户正在查看的一张券encrypted_codes,商家如需在小程序内向用户展示所有券,可通过查询用户的团购列表反查后予以展示。

# VoucherKey

参数名 变量 类型[长度限制] 必填 描述
明文券码 voucher_code string 用户的券code,单个code不超过36字节;code仅支持由数字和字母组成
skuid sku_id string 平台生成的商品SKU编码,可从查询用户的团购优惠列表 接口获取

# 返回值

用户在核销组件进行操作,关闭核销组件后,可以从 onShow 生命周期,或者通过 wx.getEnterOptionsSync() 获得本次核销组件操作的返回值。

参数名 变量 类型[长度限制] 描述
extraData
状态 status string 'success': 核销成功
'fail': 核销失败
'not to consume': 用户取消核销
状态内容 result object {
errorMessage: 'xxxxxx', 核销组件错误内容
errorDescrition: 'xxxxx', 核销组件错误具体信息
}

# 示例代码

if (wx.openBusinessView) {
  wx.openBusinessView({
    businessType: 'shopConsumeVoucher',
    extraData: {
      voucher_keys: [
		{
            voucher_code: 'xxxxxxx',
            sku_id: 'xxxxx',
          }
		],
      consume_request_no: 'xxxx'
    },
    success() {
      //dosomething
    },
    fail() {
      //dosomething
    },
    complete() {
      //dosomething
    }
  });
} else {
  //引导用户升级微信版本
}