• 微信小程序开发


    注册小程序

    • 一个邮箱只能注册一个小程序,且该邮箱不能被绑定个人微信,微信公众平台,微信开放平台
    • 已经注册过微信公众号的企业可以直接添加小程序,不需要额外付费

    小程序登录

    第一步:小程序调用wx.login() 获取code。

    第二步:小程序通过wx.request()调用服务端接口发送code,appId到开发者服务器

    第三步:开发者服务器接收小程序发送的code,并携带appid、code发送到微信服务器,服务端调用微信服务器接口 auth.code2Session,换取 用户唯一标识 OpenID,unionId 和 会话密钥 session_key(session_key不会下发到小程序

    第四步:开发者服务器自己生成一个key(自定义登录状态)与openid、session_key进行关联,并存到数据库中。

    第五步:开发者服务器返回生成key(自定义登录状态)到小程序。

    第六步:小程序存储key(自定义登录状态)到本地。

    wx.login({
          success: res => {
            console.log(res)
            // 发送 res.code 到后台换取 openId, sessionKey, unionId
          }
        })  

    小程序授权

    在调用一些API的时候,需要继续授权,比如获取用户信息,录音等功能

    获取授权状态

    wx.getSetting({
      success (res) {
        console.log(res.authSetting)
        // res.authSetting = {
        //   "scope.userInfo": true,
        //   "scope.userLocation": true
        // }
      }
    })
    

    发起授权弹窗

    • 如果用户未接受或拒绝过此权限,会弹窗询问用户,用户点击同意后方可调用接口;
    • 如果用户已授权,可以直接调用接口;
    • 如果用户已拒绝授权,则不会出现弹窗,而是直接进入接口 fail 回调。请开发者兼容用户拒绝授权的场景。
    // 可以通过 wx.getSetting 先查询一下用户是否授权了 "scope.record" 这个 scope
    wx.getSetting({
      success(res) {
        if (!res.authSetting['scope.record']) {
          wx.authorize({
            scope: 'scope.record',
            success () {
              // 用户已经同意小程序使用录音功能,后续调用 wx.startRecord 接口不会弹窗询问
              wx.startRecord()
            }
          })
        }
      }
    })

    授权获取用户信息

    授权获取用户信息时,调用wx.authorize不会触发弹窗

    <button wx:if="{{!hasUserInfo && canIUse}}" open-type="getUserInfo" bindgetuserinfo="getUserInfo"> 获取用户信息</button>

      

    getUserInfo: function(e) {
        app.globalData.userInfo = e.detail.userInfo
     
      }

    引导用户去系统设置

    wx.openSetting({
      success (res) {
        console.log(res.authSetting)
        // res.authSetting = {
        //   "scope.userInfo": true,
        //   "scope.userLocation": true
        // }
      }
    })
    

    授权时效

    一旦用户明确同意或拒绝过授权,其授权关系会记录在后台,直到用户主动删除小程序

    小程序微信支付

  • 相关阅读:
    Python 数据分析中金融数据的来源库和简单操作
    Python 数据分析中常用的可视化工具
    Pandas 时间序列处理
    Ubuntu 下使用 python3 制作读取 QR 码
    Ubuntu中找不到pip3命令的解决方法
    Ubuntu 中查找软件安装的位置
    将文件进行分类整理
    树的遍历
    Junit4知识梳理
    springboot中controller的使用
  • 原文地址:https://www.cnblogs.com/liuxiaoru/p/13663586.html
Copyright © 2020-2023  润新知