如何获取微信小程序 URL Scheme


在线生成小程序 URL Scheme



小程序管理后台「工具」-「生成 URL Scheme」入口可以获取打开小程序任意页面的 URL Scheme。适用于从短信、邮件、微信外网页等场景打开小程序。





auth.getAccessToken


本接口应在服务器端调用,详细说明参见微信官方文档 - 服务端API

文档来源:微信官方文档 - 小程序 - auth.getAccessToken


获取小程序全局唯一后台接口调用凭据(access_token)。调用绝大多数后台接口时都需使用 access_token,开发者需要进行妥善保存。


请求地址


GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET


请求参数


属性类型默认值必填说明
grant_typestring 填写 client_credential
appidstring 小程序唯一凭证,即 AppID,可在「微信公众平台 - 设置 - 开发设置」页中获得。(需要已经成为开发者,且帐号没有异常状态)
secretstring 小程序唯一凭证密钥,即 AppSecret,获取方式同 appid


返回值


Object

返回的 JSON 数据包

属性类型说明
access_tokenstring获取到的凭证
expires_innumber凭证有效时间,单位:秒。目前是7200秒之内的值。
errcodenumber错误码
errmsgstring错误信息

errcode 的合法值

说明最低版本
-1系统繁忙,此时请开发者稍候再试
0请求成功
40001AppSecret 错误或者 AppSecret 不属于这个小程序,请开发者确认 AppSecret 的正确性
40002请确保 grant_type 字段值为 client_credential
40013不合法的 AppID,请开发者检查 AppID 的正确性,避免异常字符,注意大小写


返回数据示例

正常返回

{"access_token":"ACCESS_TOKEN","expires_in":7200}

错误时返回

{"errcode":40013,"errmsg":"invalid appid"}




urlscheme.generate


本接口应在服务器端调用,详细说明参见微信官方文档 - 服务端API

文档来源:微信官方文档 - 小程序 - urlscheme.generate

本接口支持云调用。需开发者工具版本 >= 1.02.1904090(最新稳定版下载),wx-server-sdk >= 0.4.0


获取小程序scheme码,适用于短信、邮件、外部网页等拉起小程序的业务场景。通过该接口,可以选择生成到期失效和永久有效的小程序码,目前仅针对国内非个人主体的小程序开放,详见获取URL scheme码

调用方式:


HTTPS 调用


请求地址


POST https://api.weixin.qq.com/wxa/generatescheme?access_token=ACCESS_TOKEN


请求参数


属性类型默认值必填说明
access_tokenstring 接口调用凭证
jump_wxaObject 跳转到的目标小程序信息。
is_expirebooleanfalse生成的scheme码类型,到期失效:true,永久有效:false。
expire_timenumber 到期失效的scheme码的失效时间,为Unix时间戳。生成的到期失效scheme码在该时间前有效。最长有效期为1年。生成到期失效的scheme时必填。

jump_wxa 的结构

属性类型默认值必填说明
pathstring 通过scheme码进入的小程序页面路径,必须是已经发布的小程序存在的页面,不可携带query。path为空时会跳转小程序主页。
querystring 通过scheme码进入小程序时的query,最大128个字符,只支持数字,大小写英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~


返回值


openlink

生成的小程序scheme码


异常返回


Object

JSON

属性类型说明
errcodenumber错误码
errmsgstring错误信息

errcode 的合法值

说明最低版本
40002暂无生成权限
40013生成权限被封禁
85079小程序未发布
40165参数path填写错误
40212参数query填写错误
85401参数expire_time填写错误,时间间隔大于1分钟且小于1年
44990生成Scheme频率过快(超过100次/秒)
85400长期有效Scheme达到生成上限10万
45009单天生成Scheme数量超过上限50万


返回值说明

如果调用成功,会直接返回生成的小程序scheme码。如果请求失败,会返回 JSON 格式的数据。


示例

请求

{
    "jump_wxa":
    {
        "path": "/pages/publishHomework/publishHomework",
        "query": ""
        },
    "is_expire":true,
    "expire_time":1606737600
}

返回

{
 "errcode": 0,
 "errmsg": "ok",
 "openlink": Scheme,
}


云调用


云调用是小程序·云开发提供的在云函数中调用微信开放接口的能力,需要在云函数中通过 wx-server-sdk 使用。


接口方法


openapi.urlscheme.generate
需在 config.json 中配置 urlscheme.generate API 的权限,详情


请求参数


属性类型默认值必填说明
jumpWxaObject 跳转到的目标小程序信息。
isExpirebooleanfalse生成的scheme码类型,到期失效:true,永久有效:false。
expireTimenumber 到期失效的scheme码的失效时间,为Unix时间戳。生成的到期失效scheme码在该时间前有效。最长有效期为1年。生成到期失效的scheme时必填。

jumpWxa 的结构

属性类型默认值必填说明
pathstring 通过scheme码进入的小程序页面路径,必须是已经发布的小程序存在的页面,不可携带query。path为空时会跳转小程序主页。
querystring 通过scheme码进入小程序时的query,最大128个字符,只支持数字,大小写英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~


返回值


openlink

生成的小程序scheme码


异常


Object

JSON

属性类型说明
errCodenumber错误码
errMsgstring错误信息

errCode 的合法值

说明最低版本


示例


请求

const cloud = require('wx-server-sdk')
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV,
})
exports.main = async (event, context) => {
  try {
    const result = await cloud.openapi.urlscheme.generate({
        jumpWxa: {
          path: '/pages/publishHomework/publishHomework',
          query: ''
        },
        isExpire: true,
        expireTime: 1606737600
      })
    return result
  } catch (err) {
    return err
  }
}

返回

{
 "errcode": 0,
 "errmsg": "ok",
 "openlink": Scheme,
}