Skip to content

小程序码与小程序链接

发布于:

Table of contents

展开目录

统计

名称接口名称过期数量
获取小程序码getQRCode永久有效100,000
获取不限制的小程序码getUnlimitedQRCode永久有效N/A
获取小程序二维码createQRCode永久有效100,000
URL LinkgenerateUrlLink最长30天,可配置500,000/天
URL SchemegenerateScheme最长30天,可配置500,000/天
Short Link(短期)generateShortLink30天1,000,000/天
Short Link(长期)generateShortLink永久有效100,000

获取小程序码

getQRCode

由于每个小程序只能生成10w 次,此接口在开发中几乎很少使用。

该接口方便的地方在于,整个 path 参数可以支持最大1024字节长度,例如:

{
  "path": "pages/index/index?foo=bar&foo=bar&..."
}

获取不限制的小程序码

getUnlimitedQRCode

此接口经常用于各种推广场景生成小程序太阳码,例如:推广海报。

相比于getQRCode,你不能直接传递完成的 path,需要传入 pagescene 来替代,例如:

{
  "page": "pages/index/index",
  "scene": "XXXXX"
}

最佳实践

在实际的小程序开发中,例如:商品详情页,会使用自定义图片、商详数据、太阳码合成推广海报,

将推广海报转发给微信好友后,微信用户通过识别海报中的太阳码进入商品详情。

  1. 由于请求商品详情数据的入参可能有许多个键值对,因此需要让服务端的同事将这些键值对转换成 scene
const payload = {
  productId: 1,
  shareUserId: 1,
  skuId: 1,
  // etc...
};
 
const { scene } = await encodeSceneApi(payload);
  1. 再通过 pathscene 换取太阳码:
const wxacode = await commonQrcodeApi({
  path: "product/pages/index",
  scene,
});

大部分情况,12 两步都会被整合成一个接口让前端调用。

  1. 识别太阳码进入页面,通过 scene 换取对应的参数:
async onLoad(options) {
  const { scene } = options
 
  const payload = await decodeSceneApi(scene) // <-- { productId, shareUserId, skuId }
 
  const sourceData = await getProductDetailApi(payload)
}

获取小程序二维码

createQRCode

由于每个小程序只能生成10w 次,此接口在开发中几乎很少使用。

对于二维码来讲,有很多方法可以直接生成,实际场景中使用更多的是替换为配置扫普通链接二维码打开小程序

扫普通链接二维码打开小程序缺点也有一些,例如:

generateUrlLink

该接口适合不想自己实现短链接转长链接,直接使用微信的短链接

通过此接口会得到一个短链接,例如:

https://wxaurl.cn/*TICKET*https://wxmpurl.cn/*TICKET*

最常见的场景是将该短链接拼接在短信中,让用户在短信中直接打开小程序,例如:

URL Scheme

generateScheme

该接口适合自己已实现短链接转长链接

通过此接口会得到一个协议链接,例如:

weixin://dl/business/?t= *TICKET*

常见的使用场景同 URL Link,将链接放到短信中,但是由于 Android 点击无法打开小程序,因此需要使用 H5 做跳转。

location.href = "weixin://dl/business/?t= *TICKET*";

generateShortLink

通过此接口会得到一个类似口令的文本,例如:

#小程序://小程序示例/示例页面/9pZvnVw3KMCQpVp

就和淘宝口令类似,将 Short Link 在微信中发送给好友或者朋友圈,其他用户点击即可直接打开小程序对应的落地页。