微信小程序分享领红包

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

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}')

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容