美文网首页
微信小程序分享领红包

微信小程序分享领红包

作者: Rubin666 | 来源:发表于2018-04-25 16:45 被阅读0次

    五一节前上线了微信小程序分享到不同的群领红包活动,痛点:

    1,用户授权,

    部分接口需要获得用户授权同意后才能调用。此类接口调用时:


    image.png

    如果用户未接受或拒绝过此权限,会弹窗询问用户,用户点击同意后方可调用接口;
    如果用户已授权,可以直接调用接口;
    如果用户已拒绝授权,则短期内不会出现弹窗,而是直接进入接口 fail 回调。请开发者兼容用户拒绝授权的场景。
    对于小程序活动而言,用户拒绝之后再次提醒,再次取消则退出小程序

    wepy.showModal({
        title: '授权提示',
        content: '小程序需要您的授权才能正常使用',
        success: res => {
          if (res.confirm) {
            console.log('用户点击确定')
            wepy.openSetting({
              success: res => {
                console.log('打开设置')
                if (res.authSetting['scope.userInfo']) {
                  wepy.getUserInfo({
                    withCredentials: true,
                    success: (res) => {
                      // this.globalData.userInfo = res.userInfo;
                      resolve(res)
                    }
                  })
                }
              }
            })
          } else if (res.cancel) {
            console.log('用户点击取消')
            resolve(false) //退出小程序
          }
        }
      })
    

    2,unionId突然不能获取的踩坑记录

    微信公众平台

    image.png

    3, onShareAppMessage转发分享

    为了得到分享到群详细信息,需要添加

    wx.showShareMenu({
         withShareTicket: true
    })
    

    然后得到 res.shareTickets 再通过微信的wxGetshareinfo得到 群详细信息encryptedData和iv 转码后得到群的唯一openGId。通过判断群的唯一openGId。来判断分享到不同的群。

    // 解密得到openGId
            getopenGId(encryptedData, iv) {
                let that = this
                return new Promise((resolve, reject) => {
                    common.post({
                        url: '/xinyang/passport/weixindecrypt',
                        data: {
                            'sessionKey': that.session_key,
                            'encryptedData': encryptedData,
                            'iv': iv
                        },
                        success(res) {
                            resolve(res)
                        },
                        fail(res) {
                            reject(res)
                        }
                    })
                })
            }
    

    4, js小坑 注意的地方。

    JSON.parse('{"order_id":25150000000020075}')
    

    控制台敲一敲。这是为啥?

    相关文章

      网友评论

          本文标题:微信小程序分享领红包

          本文链接:https://www.haomeiwen.com/subject/riuelftx.html