# 开发流程

# 1. 整体流程图

电商小店与品牌小程序会员系统对接实现方案

# 2. 测试上线流程

  1. 将小店和小程序绑定到同一个微信开放平台账号,可用unionid识别小店和小程序中的同一个用户,详见基本概念介绍 | 微信开放文档,小程序获取unionid的方式可参考UnionID 机制说明 | 微信开放文档

  2. 通过微信小店后台,开通会员功能,绑定唯一的会员小程序APPID。当前仅微信小店热招品牌商家可申请开通。操作路径:营销中心-小程序会员服务。开通会员功能后,功能处于「测试状态」,仅白名单用户可在店铺首页看到功能入口,跳转体验版小程序。

  3. 通过小店后台设置测试白名单,配置入会路径、会员下单权益路径,并开发所有必须接口。部分接口需要商家侧上线,并回调小店,详见微信开放平台CallBack回调机制说明消息推送 | 微信开放文档

  4. 体验ok后,提交会员功能上线,上线需要小店管理员审批。

# 3. 前端模块划分

# 1. 会员绑定模块

  • 首页展示小店会员入口
  • 品牌小程序会员注册
  • 拉取微信后台会员状态同步
  • 首页会员信息展示更新

# 2. 下单模块

  • 订单会员优惠选择
  • 订单金额重新计算
  • 生成订单时优惠信息同步

# 4. 详细实现步骤

# 1. 会员绑定流程

# 微信小店

  • 在首页添加会员入口按钮。相关接口「1.设置关联小程序信息」
  • 获取用户基础信息
  • 携带用户信息跳转品牌小程序
  • 监听小程序返回,拉去后台数据刷新会员状态

注意:小店跳转品牌小程序时不会携带unionid,用户打开小程序后,开发者可自行获取到当前用户的小程序 openid 和开发平台unionid。

# 品牌小程序

  • 接收小店传递的用户信息
  • 展示会员注册页面
  • 处理会员注册逻辑
  • 调用微信后台API设置会员信息,详见“会员服务-小程序API 部分”

# 2. 下单优惠流程

# 微信小店

  • 在订单页面提供会员优惠选择入口
  • 携带当前订单优惠信息和用户信息跳转品牌小程序
    商家从 wx.getEnterOptionsSync中获取extraData,其中的gen_order_info字段如下图: (参考后台文档中“用户进入下单页获取默认会员权益”中的结构体说明)
  • 接收返回的已选择会员优惠信息
  • 重新计算订单金额

# 品牌小程序

  • 接收订单相关的店铺优惠信息
  • 展示可用的会员优惠列表
  • 处理优惠选择逻辑
  • 锁定优惠券额度
  • 返回小店并传递选择的会员优惠信息
    (参考后台文档中“用户进入下单页获取默认会员权益”中的结构体说明)

# 后台服务

# 3. 小程序用接口发送数据给小店

使用postMessageToReferrerPage发送选择的会员优惠数据给小店,信息放在vip_discounted_info中。

wx.postMessageToReferrerPage({
    extraData:{
        vip_discounted_info: {
            vip_discounted_price: 100, // 单位 分
            product_infos:[], // 每一个商品的会员优惠信息
            unuse_shop_discount:number // 是否叠加优惠
        }
    }
})

# 4. 小程序用接口退出自己,返回小店

安卓在postMessageToReferrerPage的success回调中调用exitMiniProgram退出小程序,ios如果无法退出提示can only be invoked by user TAP gesture." 可以在postMessageToReferrerPage同级调用exitMiniprogram

# 5. 会员优惠-订单API相关

  • 用户使用会员下单后,订单会增加会员优惠相关信息 获取订单详情 | 微信开放文档
  • 改动点:
    • 订单维度会员权益优惠金额: order_detail.price_info.vip_discounted_price
    • 订单内商品维度会员权益优惠金额: order_detail.product_infos.vip_discounted_price
  • 会员权益session_id: order_detail.ext_info.vip_order_session_id

# 6. 会员优惠-售后API相关

  • 通知商家用户退款事件,方便计算会员权益退还 获取售后单 | 微信开放文档
  • 获取售后单接口AfterSaleDetails,增加 wxa_vip_discounted_price,表示小程序会员已经优惠金额(分)
  • 售后单更新通知接口,增加wxa_vip_discounted_price,表示小程序会员已经优惠金额(分)