莉莉蒙
莉莉蒙
  • 发布:2024-04-23 21:50
  • 更新:2024-10-22 18:05
  • 阅读:663

如何实现邀请注册送奖励

分类:uniCloud

使用了uni-id用户体系,也使用了uni-started的邀请码功能,用户生成了inviteCode,新注册用户填写inviteCode也能绑定邀请关系了。

问题是我想要新用户注册成功后给邀请人和被邀请的新用户都发放奖励,这需要一个事件触发,当前我是在 register-by-email.vue页面的注册成功回调里用了 uni.$emit('registerSuccess'); 触发了一个全局事件,通知后面的页面用户注册成功了。

可是一键登录和手机号免密登录把登录和注册结合在了一起,未注册的用户自动注册,这种情况我不知道在哪里触发 registerSuccess

有没有大佬或者官方有解决方案呢?

2024-04-23 21:50 负责人:无 分享
已邀请:
造件师

造件师 - 全栈开发在线接单:https://ask.dcloud.net.cn/article/41056

用一个一分钟一次的定时任务,把uni-id-users按register_date排序,where你邀请规则的用户出来,给inviter_uid发奖可行吗

  • 莉莉蒙 (作者)

    我后来用了用户登录后对比登录时间和被邀请时间,然后判定是新被邀请的用户

    2024-04-28 18:06

人世寻真

人世寻真 - 小程序开发

请问怎么生成的邀请码,我看有个 getValidInviteCode,但代码看上去怎么一直要和数据库里的比对呢,老用户生成邀请码,他没有邀请码,比对什么,没看懂这端代码,内容如下:

人世寻真

人世寻真 - 小程序开发

async function getValidInviteCode () {  
  let retry = 10  
  let code  
  let codeValid = false  
  while (retry > 0 && !codeValid) {  
    retry--  
    code = getRandomInviteCode()  
    const getUserRes = await userCollection.where({  
      my_invite_code: code  
    }).limit(1).get()  
    if (getUserRes.data.length === 0) {  
      codeValid = true  
      break  
    }  
  }  
  if (!codeValid) {  
    throw {  
      errCode: ERROR.SET_INVITE_CODE_FAILED  
    }  
  }  
  return code  
}  
人世寻真

人世寻真 - 小程序开发

比对明白了,是怕有重复的,这个函数怎么调用呢,想在云函数中调用,getValidInviteCode在uni-id-co里

要回复问题请先登录注册