微信官方提供以下接口实现互通,需在 微信开放平台 绑定公众号与小程序(需同一主体):
UnionID 机制:同一用户在不同平台(公众号、小程序)的 openid 不同,但 unionid 相同。
OAuth2.0 授权登录:通过授权码 code 换取用户身份信息。
服务器间 API 调用:通过 HTTPS 接口传递业务数据。
绑定主体:在微信开放平台绑定公众号与小程序(需同一企业/组织主体)。
获取凭证:
公众号:AppID、AppSecret
小程序:AppID、AppSecret
配置服务器域名:
小程序后台:设置业务域名(需 HTTPS)。
公众号后台:配置 JS 安全域名。
核心逻辑:用户关注公众号或使用小程序时,通过 unionid 判断是否为同一用户。
通过授权登录获取:
公众号场景:用户关注公众号后,通过 snsapi_userinfo 授权获取 openid 和 unionid。
小程序场景:用户登录小程序时,通过 wx.login + code 换取 openid 和 unionid。
通过后端接口直接查询:
调用微信接口 https://api.weixin.qq.com/cgi-bin/user/info(公众号)或 https://api.weixin.qq.com/sns/jscode2session(小程序),传入 openid 和 unionid 参数。
实现方式:公众号文章/菜单中嵌入小程序卡片,用户点击后跳转。
代码示例(公众号后台配置):
实现方式:用户从小程序内跳转到公众号主页或自动关注。
代码示例(小程序端):
流程:
用户在公众号下单,生成订单号。
用户在小程序内通过订单号查询订单状态并支付。
关键接口:
公众号支付:统一下单接口(prepay_id 生成)
小程序支付:wx.requestPayment(调起支付)
通过 HTTPS 接口实现数据同步,例如:
用户行为数据:公众号内用户点击文章 → 同步到小程序行为分析。
库存同步:小程序内商品库存变更 → 同步到公众号商城。
代码示例(Node.js + Express):
权限要求:
公众号与小程序需完成微信认证。
调用用户数据接口需用户授权。
UnionID 生效条件:
用户需在同一个微信开放平台账号下的公众号和小程序中登录。
数据安全:
敏感数据(如 openid、unionid)需加密传输。
使用签名验证防止篡改(如微信支付签名)。
频率限制:
微信接口调用需遵守频率限制(如 snsapi_userinfo 授权每天上限 100 万次)。
UnionID 为空:
检查是否已绑定开放平台。
确保用户已在两个平台登录过。
跨域问题:
小程序需配置业务域名白名单。
公众号接口需设置 CORS 头。
支付互通失败:
确认 appid 与商户号匹配。
检查支付回调 URL 是否配置正确。
社交裂变:公众号推文引导用户进入小程序拼团,数据实时同步。
会员体系:小程序内消费积分同步至公众号会员系统。
客服消息互通:用户从小程序联系客服,消息同步至公众号后台。
通过以上方案,可实现公众号与小程序的高效协同,构建完整的用户增长与运营闭环。