生成小程序事件二维码

小程序提供了三种方式实现事件码,具体技术文档见:小程序码

WeiPHP5.0也对应实现了这三种事件码

weiapp_demo代码见qrcode部分

A模式下,只需要根据自己的需求修改path和width参数即可获取二维码的URL,用户此码后就跳转到跳转的path页面

  1. // 获取A模式下的二维码
  2. getCodeByA: function () {
  3. var that = this,
  4. url = app.url + 'weiapp/Api/getwxacode&PHPSESSID=' + wx.getStorageSync('PHPSESSID');
  5. wx.request({
  6. url: url,
  7. data: { type: 'A', param: { path: 'pages/qrcode/qrcode', width: 400 } },
  8. success: function (res) {
  9. if (res.data.status == 0) {
  10. that.showError(res.data.msg)
  11. } else {
  12. that.setData({ 'a_src': res.data.url })
  13. }
  14. }
  15. })
  16. },

B模式下,只需要根据自己的需求修改scene和width参数即可获取二维码的URL

  1. // 获取B模式下的二维码
  2. getCodeByB: function () {
  3. var that = this,
  4. url = app.url + 'weiapp/Api/getwxacode&PHPSESSID=' + wx.getStorageSync('PHPSESSID');
  5. wx.request({
  6. url: url,
  7. data: { type: 'B', param: { scene: 'qrcode', width: 400 } },
  8. success: function (res) {
  9. if (res.data.status == 0) {
  10. that.showError(res.data.msg)
  11. } else {
  12. that.setData({ 'b_src': res.data.url })
  13. }
  14. }
  15. })
  16. },

使用B生成的二维码,用户扫码后统一进入小程序首页,如果要跳转到指定页面或者做指定动作,可以在首页加入以下类型的业务判断代码

  1. // 这是首页的 js
  2. Page({
  3. onLoad: function(options) {
  4. var scene = options.scene
  5. if(scene=='qrcode'){
  6. //跳转到qrcode页面,如果qrcode在底部栏有配置,需要使用wx.switchTab来跳转
  7. wx.redirectTo({
  8. url: '/pages/qrcode/qrcode'
  9. })
  10. }
  11. }
  12. })

C模式下,只需要根据自己的需求修改path和width参数即可获取二维码的URL,用户此码后就跳转到跳转的path页面

  1. // 获取C模式下的二维码
  2. getCodeByC: function () {
  3. var that = this,
  4. url = app.url + 'weiapp/Api/getwxacode&PHPSESSID=' + wx.getStorageSync('PHPSESSID');
  5. wx.request({
  6. url: url,
  7. data: { type: 'C', param: { path: 'pages/qrcode/qrcode', width: 400 } },
  8. success: function (res) {
  9. if (res.data.status == 0) {
  10. that.showError(res.data.msg)
  11. } else {
  12. that.setData({ 'c_src': res.data.url })
  13. }
  14. }
  15. })
  16. },