Skip to Content

微信功能

微信功能分类下包含了一系列与微信生态深度集成的行为节点。通过这些行为,你可以无缝调用微信原生能力,实现服务通知下发、微信客服唤起以及微信运动数据获取等高级功能。

以下行为,除了“微信发货”外,均仅支持在微信小程序端运行:

行为简述
授权消息提醒调起微信小程序的订阅消息界面,收集用户授权,便于后续发送推送通知。
唤起小程序客服调用微信原生客服能力,直接进入人工/智能客服会话。
打开视频号跳转到指定的视频号主页、直播或短视频页面。
打开微信设置打开微信设置页面,便于用户配置摄像头、个人信息等权限。
打开奖励视频打开微信奖励视频,观看视频后获得奖励。
微信发货对接微信平台“发货信息”,适用于微信订单/微信支付后的履约。
微信收货调起微信官方的确认收货半屏组件,用户确认收货后,触发资金结算解冻。
获取微信步数获取用户过去 31 天微信步数。
向系统日历添加事件将指定事件添加到用户的手机自带日历中。

授权消息提醒

调起微信客户端的小程序订阅消息界面,返回用户订阅消息的操作结果。用户同意后,后续可通过自定义行为流给用户发送消息,参考微信服务号消息通知最佳实践

常用场景

  • 订单支付成功后下发发货通知。
  • 预约服务即将开始前的提醒通知。

参数配置

准备工作

  1. 前往微信公众平台,登录的账号和 Zion 中绑定的小程序号一致。
  2. 在微信公众平台的左侧导航栏进入“订阅消息”。
  3. 在订阅消息页面中选用公共模板库中的模板。
  4. 选择模板关键词(可自定义关键词,但需审核通过后才可用),并提交。
  5. 提交成功后,前往 Zion,更新项目的后端。更新成功后,即可在行为“授权消息提醒”中选择消息模板

订阅消息类型说明

  • 一次性订阅(常见用法):
    • 每次成功授权,发送权限就加 1 次,最多可累加至 50 次。每发送一次消息,发送权限就减 1 次。
    • 发送权限无时间限制,授权后可随时发送消息。
  • 长期订阅:仅政务民生、医疗、交通、金融、教育等线下公共服务可用,授权一次可无限制推送,次数无上限。

参数配置

参数类型是否必填说明
消息模板 ID文本数组选择 1~3 个已在微信公众平台申请的订阅消息模板。

运行结果与输出

  • 结果:无
  • 成功时:授权弹窗正常唤起,用户完成交互并关闭弹窗后触发。用户同意、拒绝或取消都会进入“成功时”分支。
  • 失败时:只有微信底层接口返回错误时,才会触发“失败时”。常见错误:
    • 网络问题,请求发送失败。
    • 小程序号由于违规被官方封禁了订阅消息接口。
    • 小程序被禁封。

运行机制

本行为底层是通过调用微信wx.requestSubscribeMessage接口实现,详见官方文档订阅消息

该行为只能直接配置在组件的“点击时”事件下,不能放在页面加载、定时任务、循环、条件分支,或其他行为的“成功时”“失败时”等嵌套位置。编辑器会阻止不符合要求的配置。

特殊说明

  • 如果用户在弹窗中勾选了 “总是保持以上选择,不再询问” 并点击了 “允许”: 下一次执行本行为时,微信不会弹窗,而是直接在后台静默返回accept,并进入成功时分支。

常见错误

用法举例

1. 预约服务提醒(小程序端)

  • 需求: 用户在小程序中预约了服务,到达服务前1小时,推送预约提醒的订阅消息。

  • 配置流程

    1. 前置准备
      • 在微信公众平台申请并通过审核“预约提醒”的订阅消息模板。
      • 前往 Zion,更新项目的后端,以获取最新的订阅消息模板。
      • 创建“我的预约”页面,添加“提醒我”按钮。
    2. 选择组件
      • 在画布上,选中“提醒我”按钮。
    3. 添加行为
      • 在右侧配置面板中,切换到 “行为” 标签页,在 “点击时” 事件下点击添加操作。
    4. 配置行为基础参数
      • 在行为选择下拉框中,搜索并选中 “授权消息提醒”
    5. 提交后端更新
      • 在行为配置面板中,点击消息模板 ID 参数的下拉框,选择刚刚在微信公众平台申请的预约提醒订阅模板。
  • 运行结果: 用户点击“提醒我”按钮并授权后,小程序中会唤起微信客户端的订阅消息授权弹窗。用户同意后,用于该用户的消息发送权限就加 1 次,可用于后续的消息推送。

唤起小程序客服

唤起微信官方的客服会话界面,让用户与客服进行沟通。

常用场景

  • 电商商品详情页的联系卖家入口。
  • 个人中心页面的平台客服入口。

参数配置

运行结果与输出

运行机制

客服功能无法通过任何 JavaScript API 直接唤起,只能在页面中渲染微信原生<button>组件,并设置 open-type=“contact” 属性。用户点击此原生按钮时,弹出客服会话窗口。

在 Zion 中,用户可以给任意组件绑定“唤起小程序客服”行为,是因为会在渲染组件的同时,生成一个微信原生<button>组件,并将宽高设置为 100%,透明度为 100%,相当于用一个隐形的按钮盖在了原组件上。

当用户点击原组件时,其实是点击了这个隐形的按钮,从而唤起客服会话窗口。并通过一套机制,运行原组件上绑定的其他行为。

“获取手机号”“唤起小程序客服”和“微信分享”都只能直接配置在组件的“点击时”事件下,不能放在其他行为的“成功时”“失败时”、条件分支或其他嵌套位置。编辑器会阻止不符合要求的配置。

因为这套机制的存在,会导致执行顺序逆转行为不会按照你在编辑器里配置的顺序从上到下执行!而是首先触发微信的原生弹窗。即使你把唤起小程序客服行为放在行为流的最后一步,微信弹窗依然会在用户点击的瞬间第一个弹出来

因此,建议将唤起小程序客服行为放在行为流的最前面。

唤起后,相当于在微信内拉起一个原生的微信聊天窗口,原页面进入后台挂起状态,不会被卸载。页面卸载时不会被触发,返回小程序后,页面加载时也不会被触发,一切状态完整保留。

常见错误

用法举例

1. 商品详情页联系客服(小程序端)

  • 需求: 用户在浏览商品详情时,点击底部悬浮的客服图标,直接进入微信客服聊天界面。

  • 配置流程

    1. 前置准备
      • 创建 “商品详情页面”;
      • 在 “商品详情页面” 底部配置好一个按钮。
    2. 选择组件:在画布上,选中按钮。
    3. 添加行为:在右侧配置面板中切换到 “行为” 标签页,直接在 “点击时” 事件下点击添加操作。
    4. 配置行为基础参数
      • 在行为选择下拉框中,搜索并选中 “唤起小程序客服”
    5. 绑定参数传递
      • 无需额外绑定。
  • 运行结果: 用户点击图标后,界面直接跳转至微信官方的客服聊天窗口,用户可直接发送消息。已使用过的小程序客服消息会聚合显示在微信”客服消息”盒子内,用户可在小程序外查看历史消息并继续沟通。

    小程序界面展示,页面中只放了一个黑色的按钮,按钮文案为‘唤起小程序客服’。微信客服页面展示,展示了用户与客服的聊天记录,以及用户输入框。聊天记录中显示用户在不同的时间段进入这里这个页面,最新的消息为用户的“你好”。

打开视频号

通过小程序跳转至微信视频号主页、直播、视频或活动页面。

常用场景

  • 品牌小程序首页引导用户关注官方视频号。
  • 小程序内直接跳转至正在进行的视频号直播间带货。

参数配置

准备工作

  1. 个人小程序不支持跳转视频号直播。
  2. 若小程序与视频号的主体相同,则可直接使用该功能。
  3. 若小程序与视频号的主体不同,需同时满足以下3个条件方可使用:
    • 小程序已绑定微信开放平台账号;
    • 小程序与微信开放平台账号的关系为同主体或关联主体;
    • 微信开放平台账号的主体或其关联主体列表中包含视频号的主体。详见关联主体申请流程
  4. 跳转目标视频号需至少开过一次直播(可随意开启一次直播)。

参数配置

参数类型是否必填说明
微信视频号 id文本视频号的唯一标识,可在小程序后台获取。
类型枚举跳转的具体页面类型,包含主页、直播、视频或活动。
feed id文本视频 id,当类型为视频时必填。
活动 id文本当类型为活动时必填。

以上参数的获取参考以下步骤:

  • 获取视频号主体:登录微信公众平台,在左侧菜单中选择“视频号”,即可查看主体信息。

  • 获取视频号 id:小程序关联微信扫码登录后,首页可见。

获取视频号id

  • 获取视频 id:内容管理 > 视频,鼠标悬浮视频,点击分享按钮复制视频 id。

获取视频号视频id

  • 获取活动 id:内容管理 > 活动,点击活动即可查看 id。

获取视频号活动id

运行结果与输出

运行机制

Zion 支持视频号的四种不同场景,分别对应四个微信原生 API:

微信官方对这些 API 设定了严格的调用限制,只允许通过手势 Tap 触发,因此在 Zion 中只能放在“点击时”触发器内。

跳转后,原页面进入后台挂起,没有被卸载,因此不会触发页面卸载触发器。用户在视频号页面点击左上角“返回”回到小程序时,也不会触发页面加载触发器,一切状态完整保留。

常见错误

用法举例

1. 首页跳转直播间(小程序端)

  • 需求: 用户在小程序首页点击直播预告海报,直接跳转至官方视频号的直播间。

  • 配置流程

    1. 前置准备
      • 创建 “首页”;
      • 在 “首页” 中配置好一个图片。
    2. 选择组件:在画布上,选中图片。
    3. 添加行为:在右侧配置面板中切换到 “行为” 标签页,直接在 “点击时” 事件下点击添加操作。
    4. 配置行为基础参数
      • 在行为选择下拉框中,搜索并选中 “打开视频号”
      • 填入官方视频号标识,并将跳转目标选择为直播间。
    5. 绑定参数传递
      • 无需额外绑定。
  • 运行结果: 用户点击海报后,直接拉起微信视频号的直播间画面。

打开微信设置

打开微信设置页面,便于用户配置摄像头、个人信息等权限。

常用场景

  • 用户拒绝定位权限后,引导用户前往设置页重新开启权限。
  • 用户拒绝保存图片到相册权限后,提供手动开启权限的入口。

参数配置

运行结果与输出

运行机制

  • 直接调用微信官方提供的功能打开小程序原生授权控制页。

常见错误

用法举例

1. 引导重新授权定位(小程序端)

  • 需求: 用户在拒绝定位授权后,点击页面上的 “去授权” 按钮,跳转至微信设置页手动开启定位权限。

  • 配置流程

    1. 前置准备
      • 创建 “定位失败提示页面”;
      • 在 “定位失败提示页面” 中配置好一个文本,用于提示用户“定位权限未开启,请前往微信设置页开启”;
      • 在 “定位失败提示页面” 中配置好一个按钮。
    2. 选择组件:在画布上,选中按钮。
    3. 添加行为:在右侧配置面板中切换到 “行为” 标签页,直接在 “点击时” 事件下点击添加操作。
    4. 配置行为基础参数
      • 在行为选择下拉框中,搜索并选中 “打开微信设置”
    5. 绑定参数传递
      • 无需额外绑定。
  • 运行结果: 用户点击按钮后,界面跳转至微信原生的小程序设置页,用户可在此处打开位置信息开关。

打开奖励视频

加载并播放广告,同时系统会自动判断用户是否看完了整个视频。常用于看广告免费换特权等业务场景。

常用场景

  • 用户观看视频广告后解锁高级功能使用次数。

参数配置

本功能需开通小程序流量主权限,开通流程参考小程序流量主开通流程

参数类型是否必填说明
广告 id文本微信流量主后台申请的广告位 id(在微信小程序后台的「流量主」模块中申请并获取)。

运行结果与输出

  • 结果:无
  • 广告播放结束:用户完整看完广告并关闭时触发。

运行机制

  • 直接调用微信官方提供的功能,加载并播放广告。
  • 激励视频广告是一个特殊的全屏原生覆盖组件,因此原页面不会被卸载,一切状态完整保留。

常见错误

  • 广告 id 无效:填入的广告 id 无效,调用时报错,后续的行为不会被执行。

用法举例

1. 看广告解锁功能(小程序端)

  • 需求: 用户点击 “解锁高级滤镜” 按钮,观看完一段视频广告后,系统自动为其发放滤镜使用权限。

  • 配置流程

    1. 前置准备
      • 创建 “工具主页面”;
      • 在 “工具主页面” 中配置好一个按钮。
    2. 选择组件:在画布上,选中按钮。
    3. 添加行为:在右侧配置面板中切换到 “行为” 标签页,直接在 “点击时” 事件下点击添加操作。
    4. 配置行为基础参数
      • 在行为选择下拉框中,搜索并选中 “打开奖励视频”
      • 填入在微信流量主后台申请的广告位标识。
    5. 绑定参数传递
      • 在当前行为卡片下方的 “广告播放结束” 分支中,点击 “添加操作” 按钮,搜索并添加修改用户权限数据的行为。
  • 运行结果: 用户点击按钮后全屏播放视频广告。若中途退出,无任何反应;若完整看完并关闭广告页,系统自动执行后续行为发放权限。

微信发货

微信官方为保障小程序内交易的安全与资金合规,推出了商家自营类小程序运营规范。根据规范:

  • 自营类小程序在通过微信支付完成交易后,商家必须向微信官方同步物流和发货信息(即微信发货)。
  • 资金在用户确认收货或达到微信规定的自动确认时效后,才会从微信商户平台结算到商家账户(即微信收货)。

常用场景

  • 商家在后台系统操作发货后,同步将物流单号上报给微信,以便用户在微信订单中心查看物流。

参数配置

参数类型是否必填说明
订单 id长整数激活支付功能绑定的订单表的 id。
物流模式枚举包含物流配送、同城配送、用户自提、虚拟商品等无实体配送四种模式。
发货模式枚举只支持统一发货,不支持分拆发货。
商品信息文本商品描述。

物流配送模式下,需额外配置:

参数类型是否必填说明
物流单号文本物流单号。
快递公司编码文本填写物流公司编码中获取的编码。
寄件人信息文本寄件人信息。
收件人信息文本收件人信息。

运行结果与输出

  • 结果:无
  • 成功时:发货信息同步成功时触发。
  • 失败时:发货信息同步失败时触发。

运行机制

发货完整流程如下:

  1. 支付与资金冻结: 用户在小程序发起支付。微信支付系统识别到此交易属于受监管类型,会将该笔资金标记为“待结算”,暂存在微信支付合规账户中。
  2. 商家发货与单号录入: 商家发货后(无论是自配送还是找快递公司),商家调用微信发货行为,将发货信息同步至微信。微信会将发货信息以消息的形式推送给购买的微信用户。
  3. 微信物流跟踪: 如果商家录入了快递单号,微信会自动与物流信息接口进行联调,自动跟踪该单号的物理轨迹。
  4. 确认收货与资金解冻:
  • 用户手动确认:用户在微信“支付凭证”或微信“账单明细”中点击“确认收货”。
  • 微信自动确认:如果用户不点,微信会根据物流轨迹(快递显示已签收)在一定天数后自动触发确认;或者在发货后满 15 天(最长时限)强制自动确认。
  • 解冻:微信确认接收到“收货信号”后,将临时冻结的资金释放,结算进商家的微信商户号。

常见错误

  • 必填参数缺失:物流配送模式下,如果物流单号、快递公司编码或联系人信息为空,发货信息同步会失败并进入“失败时”分支。

用法举例

1. 同步快递发货信息(小程序端)

  • 需求: 商家在订单详情页录入快递单号并点击发货,系统在更新自身数据库的同时,将发货信息同步至微信。

  • 配置流程

    1. 前置准备
      • 创建 “订单发货页面”;
      • 在 “订单发货页面” 中配置好输入框与按钮。
    2. 选择组件:在画布上,选中按钮。
    3. 添加行为:在右侧配置面板中切换到 “行为” 标签页,直接在 “点击时” 事件下点击添加操作。
    4. 配置行为基础参数
      • 在行为选择下拉框中,搜索并选中 “微信发货”
      • 将配送模式选择为快递。
    5. 绑定参数传递
      • 点击运单号右侧的 “+” 加号按钮,在弹出的数据源中依次展开并选择精确路径,例如:组件 -> [输入框] -> 组件输出
  • 运行结果: 商家点击确认发货后,用户的微信订单中心会同步更新该订单为已发货状态,并展示对应的物流轨迹。

微信收货

唤起确认收货半屏组件。用于在小程序内让用户确认收货并触发后续的资金结算放款。

常用场景

  • 用户在订单详情页点击 “确认收货”,完成交易。

参数配置

参数类型是否必填说明
订单号长整数激活支付功能绑定的订单表的 id。

运行结果与输出

运行机制

行为触发后,唤起微信官方原生半屏弹窗,小程序原页面被暂时挂起,不会被卸载,不触发页面卸载时。 用户点击“确认收货”并输入密码/刷脸确认后,该弹窗关闭,原页面恢复状态。

常见错误

  • 订单状态错误:如果通过订单 id 查到的订单状态异常或未发货,前端会触发包含对应错误代码的警告,行为终止。

用法举例

1. 买家确认收货(小程序端)

  • 需求: 买家收到商品后,在订单详情页点击 “确认收货” 按钮,拉起微信官方确认面板完成交易。

  • 配置流程

    1. 前置准备
      • 创建 “买家订单详情页面”,并添加页面参数名为order_id
      • 在 “买家订单详情页面” 中配置好一个按钮。
    2. 选择组件:在画布上,选中按钮。
    3. 添加行为:在右侧配置面板中切换到 “行为” 标签页,直接在 “点击时” 事件下点击添加操作。
    4. 配置行为基础参数
      • 在行为选择下拉框中,搜索并选中 “微信收货”
    5. 绑定参数传递
      • 点击订单标识右侧的 “+” 加号按钮,绑定当前页面 -> 页面参数 -> order_id
  • 运行结果: 买家点击按钮后,屏幕下方会弹起微信官方的确认收货半屏面板,用户点击确认后交易完成。

获取微信步数

用于获取用户过去 31 天微信步数。

常用场景

  • 运动打卡类小程序中,每日自动读取用户的微信步数用于积分兑换。
  • 健康管理小程序中,绘制用户近期的步数趋势图表。

参数配置

参数类型是否必填说明
目标变量长整数数组接收步数数据的列表变量。

获取到的数据格式如下:[2344,1234,5678,...],数组中最后一个元素表示当天步数,倒数第二个元素表示前一天步数,以此类推。

运行结果与输出

  • 结果:获取到的步数数据,只允许保存在变量中。
  • 成功时:步数数据获取成功时触发。

运行机制

  • 行为触发时,会调用微信接口wx.getWeRunData获取加密的步数数据;
  • 随后将密文发送至后端解密,最后将解密后的明文步数数组赋值给指定的前端变量。

常见错误

  • 未授权或解密失败:用户未授权微信运动权限时,行为直接终止。

用法举例

1. 同步步数兑换积分(小程序端)

  • 需求: 用户进入运动打卡页面时,系统自动获取其今日微信步数,并展示在页面上供用户点击兑换积分。

  • 配置流程

    1. 前置准备
      • 创建 “运动打卡页面”,添加一个按钮和文本组件。
      • 在 “运动打卡页面” 中定义一个用于存储步数的页面变量:steps
    2. 选择组件:在画布上,选中按钮。
    3. 添加行为:在右侧配置面板中切换到 “行为” 标签页,在按钮的 “点击时” 事件下点击添加操作。
    4. 配置行为基础参数
      • 在行为选择下拉框中,搜索并选中 “获取微信步数”
    5. 绑定参数传递
      • 点击目标变量右侧的 “+” 加号按钮,在弹出的数据源中依次展开并选择精确路径,绑定刚才定义的页面变量。
      • 点击文本组件右侧的 “+” 加号按钮,绑定公式 LAST_ITEM 用于提取今天的步数,公式的数组参数绑定steps
  • 运行结果: 用户进入页面时,点击按钮后获取到步数数据并更新至页面变量,页面上的文本随之显示出今日步数。

向系统日历添加事件

将时间、标题数据桥接写入手机系统的日历日程。实现日程快捷预约至手机日历。

常用场景

  • 购票小程序中,用户购票成功后将演出时间添加到手机日历提醒。
  • 课程预约小程序中,将上课时间同步至系统日历。

参数配置

参数类型是否必填说明
事件标题文本日程的名称。
开始时间日期时间日程开始的具体时间。

运行结果与输出

运行机制

行为触发时,会调用微信接口wx.addPhoneCalendar将传入的标题与时间参数写入操作系统的原生本地日历中。

常见错误

无。

用法举例

1. 演出购票日历提醒(小程序端)

  • 需求: 用户购买演唱会门票成功后,点击 “添加到日历” 按钮,将演出时间直接写入手机系统日历。

  • 配置流程

    1. 前置准备
      • 创建 “购票成功页面”;
      • 在 “购票成功页面” 中添加一个按钮;一个输入框,用于输入演出名称;以及一个日期时间选择器,用于选择演出时间。
    2. 选择组件:在画布上,选中按钮。
    3. 添加行为:在右侧配置面板中切换到 “行为” 标签页,直接在 “点击时” 事件下点击添加操作。
    4. 配置行为基础参数
      • 在行为选择下拉框中,搜索并选中 “向系统日历添加事件”
      • 填入演出名称作为标题。
    5. 绑定参数传递
      • 点击事件标题右侧的 “+” 加号按钮,绑定组件 -> 输入框 -> 组件输出
      • 点击开始时间右侧的 “+” 加号按钮,绑定组件 -> 日期时间选择器 -> 组件输出
  • 运行结果: 用户点击按钮后,系统会拉起原生授权提示,允许后该演出日程将直接出现在用户的手机自带日历应用中。

Last updated on