Кто знал, что QRCode теперь будет ВЕЗДЕ в Китае. В 2009 году первая реализация QRCode в Китае была на билетах на поезд, чтобы предотвратить подделку билетов.

Теперь вы не можете прожить и дня, не увидев QRCode в Китае. Вы видите это в ресторанах, на велосипедах, в билетах в кино и даже в туалетах, если хотите сообщить о сломанных киосках.

Поэтому, когда ваши пользователи сканируют QR-код, чтобы открыть вашу мини-программу, вы не хотите упускать возможность сделать ее персонализированной и сразу по делу.

Говоря сразу к делу, если вы разработчик и хотите, чтобы код сам все понял.

Вот репо: https://github.com/davidyu37/generate-mp-qrcode

Официальный документ: https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.createQRCode.html

Если вы не технический специалист, вот несколько веб-сайтов, которые помогут вам сгенерировать динамический QR-код для вашей мини-программы:





Что мне нужно?

Чтобы сгенерировать динамический QR-код для вашей мини-программы, вам потребуется:

  • ID приложения
  • Секрет приложения
  • Опубликованная мини-программа

* Примечание: вы все равно можете сгенерировать изображение QRCode с неопубликованной мини-программой или учетной записью песочницы, но вы увидите что-то вроде этого:

Как получить AccessToken?

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

Почему существует три разных API?

Чтобы создать QRCode, вы можете сделать запрос:

POST https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=ACCESS_TOKEN

Или это:

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

Или это:

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

Вот почему так сложно делать то, что должно быть простым. Но не волнуйтесь, я объясню каждую.

Обычный QR-код

POST https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=ACCESS_TOKEN

Вы получите квадратный QRCod, который можно сгенерировать до 100000

Tencent на самом деле не рекомендует это, потому что это не похоже на QR-код мини-программы.

Params

{
 path:"page/index/index",
 width:430
}

path - это страница, которую вы хотите, чтобы ваша мини-программа открывала при сканировании пользователями.

Ширина по умолчанию составляет 430 пикселей. Мин: 280 пикселей Макс: 1280 пикселей

Циркулярный, но ограниченный

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

Вы получите круговой QR-код, также до 100000.

Params

{
 path: 'pages/index/index',
 width: 430,
 auto_color: false,
 line_color: { r: '000', g: '000', b: '000' },
 is_hyaline: false,
}

path и width такие же, как указано выше.

Когда auto_color истинно, линии по умолчанию черные.

Если вы хотите установить свой собственный цвет, убедитесь, что для auto_color установлено значение false.

is_hyaline означает, хотите ли вы, чтобы ваше изображение было прозрачным или нет.

Циркуляр, неограниченный

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

Params

{
 scene: 'parameter_on_load',
 path: 'pages/index/index',
 width: 430,
 auto_color: false,
 line_color: { r: '000', g: '000', b: '000' },
 is_hyaline: false,
}

Это почти то же самое, что и выше, за исключением параметра scene и неограниченного количества.

scene - это дополнительные параметры, которые вы хотите включить в свой QR-код.

Вы можете получить доступ к scene в методе onLoad в мини-программе

Page({
  onLoad (query) {
    const scene = decodeURIComponent(query.scene)
  }
})

Что использовать?

На мой взгляд, последний запрос кажется наиболее полным и не имеет ограничений, поэтому я не уверен, почему у Tencent вообще есть две другие конечные точки API.

Использовать это:

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

Нужна дополнительная информация?

Вот бесплатный PDF-файл о разработке WeChat.