# 小程序获取wxcode

微卡提供两种方法获取用户wxcode

方式一为插件形式,通过集成小程序插件,使用其中的选择主体、login组件获取用户wxcode

方式二为跳转附带wxcode,用户在微卡小程序跳转至业务小程序时,会在extraData附带该用户的wxcode(前提是需要用户从微卡小程序跳转到业务小程序才会附带)

# 一. 引入小程序插件(方式一)

# 1 . 1 申请插件

小程序开发者可以在"小程序管理后台-设置-第三方服务-插件管理"中查找 wx1549b963bbae9931(微卡小助手)插件,并进行申请。在发起申请 24 小时内,微卡会根据应用的资质进行审核。

# 1 . 2 引入插件

  1. 在 app.json 中声明需要使用的插件

    {
      "plugins": {
        "myPlugin": {
          "provider": "wx1549b963bbae9931",
          "version": "4.0.1"
        }
      }
    }
    

    plugins字段可以定义多个插件声明 myPlugin字段由开发者自行定义,无需与微卡保持一致。 需指明插件的 version(当前版本号:4.0.1)和 provider(插件提供方:wx1549b963bbae9931)

  2. 在使用的页面的 json 文件(如 index.json)中引用自定义组件

    {
      "usingComponents": {
        "choose": "plugin://myPlugin/choose",
        "login": "plugin://myPlugin/login"
      }
    }
    

    usingCompoents表示需要使用插件 choose表示在页面中使用选择主体组件的标签 plugin://myPlugin/choose表示引用 myPlugin 插件中的选择主体组件 login表示在页面中使用登录组件的标签 plugin://myPlugin/login表示引用的 myPlugin 插件的登录组件

# 2 使用插件获取 wxcode

# 2 . 1 使用组件

<login
  ocode="{{ocode}}"
  appkey="{{appKey}}"
  scope="snsapi_userinfo"
  name="{{name}}"
  visible="{{visible}}"
  bind:success="callback"
  bind:cancel="callback"
  bind:fail="callback" />
参数 type 必填 说明
ocode string 主体代号
appKey string 应用 AppKey
scope string oauth scope
name string 名称标识
visible boolean 是否可见

# 2 . 2 回调事件

应用调起小程序插件的登陆组件,用户确认授权或取消后,会触发对应事件,交由小程序端的事件处理函数来进行处理。

  • 成功回调 (success)

    callback: function({ detail }) {
      const { wxcode = "" } = detail
    
      // do something
    }
    
    参数 说明
    event.detail.wxcode    oauth2.0 code

# 3 通过插件选择主体

小程序允许提供给多个主体使用 当用户首次进行入小程序时,小程序应该主动拉起小程序插件中的选择主体组件,在用户选择完主体后,应当记录用户的选择,避免让用户重复选择

# 3 . 1 使用组件

<choose
  appkey="{{appkey}}"
  bind:onChange="callback"
  bind:cancel="callback"
  bind:fail="callback" />
参数 type 必填 说明
appkey string 应用 AppKey

# 3 . 2 回调事件

应用调起小程序插件的选择主体组件,用户选择主体或取消后,会触发对应事件,交由小程序端的事件处理函数来进行处理,处理完成后应当主动隐藏选择主体组件

  • 选中回调 (onChange)

    callback: function({ detail }) {
      const { ocode = "", name = "" } = detail
    
      // do something
    }
    
    参数 说明
    event.detail.ocode    主体代号
    event.detail.name    主体名称

# 3 . 3 导出方法

show(name?: string): void

展示对应的授权对话框

示例:

<choose
  appkey="{{appkey}}"
  bind:onChange="onChange"/>

<login
  ocode="{{ocode}}"
  appkey="{{appKey}}"
  bind:success="success" />
const { show } = requirePlugin("myPlugin");

Page({
  data: {
    appkey: "xxxxxxxxxxxxxxxx",
    ocode: "",
  },

  onChange: function({ detail }) {
    const { ocode = "" } = detail;

    this.setData({ ocode });

    show();
  },

  success: function({ detail }) {
    const { wxcode = "" } = detail;

    // do something
  },
});

# 二. 小程序跳转附带wxcode(方式二)

# 1 . 1 可参考小程序跳转wx.navigateToMiniProgram (opens new window)

跳转附带wxcode,用户在微卡小程序跳转至业务小程序时,会在extraData附带该用户的wxcode(前提是需要用户从微卡小程序跳转到业务小程序才会附带)

# 1 . 2 调试可在编译工具模拟对应场景

调试时可在小程序编译选项,选择小程序进入场景,以及设定附带参数

资料页面图

资料页面图