收藏
回答

两个小程序之间,数据如何实现同步

我新建了一个小程序,想要替换掉旧的小程序(由于一些原因旧版小程序不能满足现在的业务需求),但原来的小程序已经积累了很多用户,那如何做才能使原小程序积累的用户数据新版小程序也可以使用呢?

注:2个小程序都同为一个主体,但由于不同小程序有不同的appid,故此用户的openId就会不同,这个可以解决嘛?

最后一次编辑于  2018-06-13  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

39 个回答

  • 雨轩
    雨轩
    2018-06-13

    试试UnionID呢?

    或者老小程序点击跳转新小程序。把你想要的带过来? 


    2018-06-13
    赞同 11
    回复 9
    • 🐳's 没馅娣包子
      🐳's 没馅娣包子
      2018-06-13

      谢谢您,主要是我现在数据库里面已经有了用户的操作数据,每个表里的数据都是用openId来作为用户标识的,所以这个比较难办,我没有试过UnionID,能具体讲解一下使用UnionID的思路嘛?

      2018-06-13
      赞同
      回复
    • 雨轩
      雨轩
      2018-06-13

      如果使用UnionID大概思路是,用户的openId换UnionID。两个小程序的UnionID是一样的。所以你就能将同一个用户再两个小程序端的数据绑定起来。但是实际你很难做到。如果要换UnionID用户就必须登录老小程序你后台直接跑一遍是不行的。

      2018-06-13
      赞同
      回复
    • 雨轩
      雨轩
      2018-06-13

      如果你真的真的迫切需要将老小程序和新小程序的同一个用户筛选出来。一个不是办法的办法,你试试匹配用户头像的UIL吧。并且祈祷用户近期没有改头像。

      2018-06-13
      赞同
      回复
    • 🐳's 没馅娣包子
      🐳's 没馅娣包子
      2018-06-13回复雨轩

      恩!是的,替换openId这个我有想过,但实际操作起来有很大的难度

      2018-06-13
      赞同
      回复
    • 雨轩
      雨轩
      2018-06-13回复🐳's 没馅娣包子

      https://developers.weixin.qq.com/miniprogram/dev/api/unionID.html这是换UnionID的方法。 如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过unionid来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的unionid是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。 还是用电话作为用户唯一识别UID比较好。怎么换都没事。反正小程序点击就能获取手机号码


      2018-06-13
      赞同
      回复
    查看更多(4)
  • 北冥有池塘
    北冥有池塘
    2018-06-15

    基于unionid原理是唯一可行的方法,用手机号重新绑定转移用户的方式不仅会让用户大部分流失,而且新的小程序是不能用到开放域的数据的,没有了好友链社交圈,你之前的小程序用户价值不大。

    2018-06-15
    赞同 11
    回复
  • 冬雪飘零bin
    冬雪飘零bin
    2018-06-13

    绑定开放平台,使用UnionID+新小程序OpenID来区分用户


    2018-06-13
    赞同
    回复
  • 蓝莲花
    蓝莲花
    2018-06-13

    楼上说得极是~

    a小程序带着你要转移的数据(余额积分之类的)跳转到b小程序再写入数据库就行了,

    unionid没必要吧,既然改版了不可能所有老数据都还有用~除非数据库结构完全一样。

    2018-06-13
    赞同
    回复 5
    • 🐳's 没馅娣包子
      🐳's 没馅娣包子
      2018-06-13

      数据库用的是一个,因为是在原小程序的基础上添加了部分功能,所以原小程序中的操作数据还是要保留的

      2018-06-13
      赞同
      回复
    • 蓝莲花
      蓝莲花
      2018-06-13回复🐳's 没馅娣包子

      那直接复制数据库给b,b小程序上线后,a小程序也上线只保留一个传值页面的版本,a小程序传递当前用户openid给b小程序,b小程序匹配后替换新的openid,

      2018-06-13
      赞同
      回复
    • 呼啸青春
      呼啸青春
      2018-06-15回复蓝莲花

      原来的身份a用户对应数据库a条数据,现在因为openid变了,也就是同样的身份a用户在新的小程序里是身份b用户了,我怎么知道以前的a条数据是现在的b身份的人的呢?(按照楼主的说法,应该数据库里和用户数据绑定的唯一依据就是openid吧)

      2018-06-15
      赞同
      回复
    • 蓝莲花
      蓝莲花
      2018-06-15

      openid还是a小程序的,用户进入a小程序后带着openid去b小程序匹配a小程序的用户表,然后写入用户数据和新openid到新用户表,同时记录下a小程序的openid有没有使用过,使用过直接登录操作~如果用户老用户直接进了b小程序发现数据不对,可以加一个同步按钮,跳到A再跳回来

      2018-06-15
      赞同
      回复
    • 蓝莲花
      蓝莲花
      2018-06-15

      楼主并没有绑定开发平台,所以a小程序并没有记录unionid,unionid是行不通的~

      2018-06-15
      赞同
      回复
  • 淡然²⁰¹⁹
    淡然²⁰¹⁹
    2018-06-14

    可不可以加个绑定手机号。然后B平台从过手机号把A平台数据迁过来

    2018-06-14
    赞同
    回复
  • 唐衡
    唐衡
    2018-06-15

    一般都是手机实名认证,这样数据库用户怎么处理都可以。


    推荐有个免费的手机认证:

    https://developers.weixin.qq.com/blogdetail?action=get_post_info&lang=zh_CN&token=167138702&docid=0002eec200ca10a76ec6a534854404

    2018-06-15
    赞同
    回复
  • 飛鳥和魚
    飛鳥和魚
    2018-06-15

    使用UnionID就可以了,微信开发平台允许你将不同的APP,公众号,小程序都绑定到一起,然后每个用户,在这些不同入口进入,都会得到一个统一的UnionID,这样你就可以判断新项目的用户对应你旧项目的用户了。

    考虑到你之前不知道这个UnionID,你首先需要做的就是在旧的项目先收集UnionID过渡一段时间,然后新项目才能比对。

    2018-06-15
    赞同
    回复 1
    • 🐳's 没馅娣包子
      🐳's 没馅娣包子
      2018-06-15

      我从网上找了一些获取UnionID的方法,是用code、encryptedData、iv和session_key获取的,但我试了好几次都获取不到

      2018-06-15
      赞同
      回复
  • 东流
    东流
    2018-06-15

    unionid是最好的思路,但是也是很尴尬的思路,没有关注公众号的用户根本没有unionid,没有同时授权两个小程序的也没办法比对,所以麻烦的是后台怎么去实现

    2018-06-15
    赞同
    回复 7
    • One
      One
      2018-06-15

      UnionID获取途径

      绑定了开发者帐号的小程序,可以通过下面3种途径获取UnionID。

      1. 调用接口wx.getUserInfo,从解密数据中获取UnionID。注意本接口需要用户授权,请开发者妥善处理用户拒绝授权后的情况。

      2. 如果开发者帐号下存在同主体的公众号,并且该用户已经关注了该公众号。开发者可以直接通过wx.login获取到该用户UnionID,无须用户再次授权。

      3. 如果开发者帐号下存在同主体的公众号或移动应用,并且该用户已经授权登录过该公众号或移动应用。开发者也可以直接通过wx.login获取到该用户UnionID,无须用户再次授权。


      请看第一条

      2018-06-15
      赞同 22
      回复
    • 东流
      东流
      2018-06-15

      两个小程序,只授权了一个,unionid你能比对?

      2018-06-15
      赞同
      回复
    • 东流
      东流
      2018-06-15回复One

      关注公众号的另算,很多用户都是不肯关注的

      2018-06-15
      赞同
      回复
    • 🐳's 没馅娣包子
      🐳's 没馅娣包子
      2018-06-15回复东流

      一定要关注公众号才能获取到UnionID嘛?

      2018-06-15
      赞同
      回复
    • 东流
      东流
      2018-06-15回复🐳's 没馅娣包子

      wx.getUserInfo也可以,但是用户又不一定授权,而且还得两个一起授权

      2018-06-15
      赞同
      回复
    查看更多(2)
  • 展小哥
    展小哥
    2018-06-15

    话说如果你们旧小程序不再维护的话,你完全可以重写旧小程序的,就是换个接口,数据库能复用就接着用

    2018-06-15
    赞同
    回复
  • 1988
    1988
    2018-06-15

    mark

    2018-06-15
    赞同
    回复