欢迎来到六久阁织梦模板网!
PbootCms百度小程序和微信小程序API封装教程

PbootCms百度小程序和微信小程序API封装教程

浏览次数: 0

作者: 六久阁织梦模板网

信息来源: 六久阁

更新日期: 2022-04-03

文章简介

下面是封装步骤(封装文件在文章最后提供下载,供大家参考)。 1、准备md5加密文件。 因为PbootCMS的签名参数signature是经过双层md5加密的,当然如果后台WebAPI没有开启强制认证的,这一步可以跳过。 2、封装一下API的请求方法。 //声明一个请求函数 functi

  • 正文开始
  • 热门文章

下面是封装步骤(封装文件在文章最后提供下载,供大家参考)。

1、准备md5加密文件。

因为PbootCMS的签名参数signature是经过双层md5加密的,当然如果后台WebAPI没有开启强制认证的,这一步可以跳过。

2、封装一下API的请求方法。

//声明一个请求函数

function api_request(url, method, parm){

  var apiurl    = '******';  //域名 + api.php

  var appid     = '******';    //后台WebAPI中设置的API认证用户

  var appsecret = '******';    //后台WebAPI中设置的API认证密钥

  var timestamp = Date.parse(new Date());

      timestamp = timestamp / 1000;    //获取当前时间戳

  var signature = md5.hex_md5(md5.hex_md5(appid + appsecret + timestamp));    //构建signature

  var data = {    //因为搜索、留言和表单需要用到POST方法,要通过data传递参数,所以先声明data对象,方便后面添加

     appid: appid,

     timestamp: timestamp,

     signature: signature,

  };

  //根据请求方法构建Header

  if (method == 'POST') {

    //POST方法,设置请求头部

    var header = { 'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8' };

    //添加POST参数到data

    for (var i in parm) {

       data[i] = parm[i];

    }

  } else {

    //GET方法,设置请求头部

    method = 'GET';

    var header = { 'Content-Type': 'application/json' };

  }

  //通过promise返回数据

  var promise = new Promise(function(resolve,reject){

    //小程序自带的wx.request请求

    wx.request({

      method: method,

      url: apiurl + url,

      header: header,

      data: data,

      //请求成功

      success: function(res){

        var api_data = res.data;

        if (api_data.code != 1 && api_data.code != 0){

          reject({ error: '数据请求失败,请稍后重试', code: 500 });

          return;

        } else {

          resolve(api_data);

        }

      } 

    })

  })

    //返回数据

  return promise;

}

3、封装API模块

//这里就比较简单了,就是构建api的url,然后传入到api_request这个请求函数,返回数据。

//下面是根据官方文档中的api封装的各个模块,有些没有实际测试检查,可能有手误什么的,大家自行调整即可。

//Api模块

module.exports = {

  //获取公司信息

  companyinfos: function(){

    var url = '/cms/company';

    return api_request(url);

  },

  //获取单个公司信息

  companyinfo: function(name){

    var url = '/cms/company/name/' + name;

    return api_request(url);

  },

  //获取网站信息

  siteinfos: function(){

    var url = '/cms/site';

    return api_request(url);

  },

  //获取单个网站信息

  siteinfo: function(name){

    var url = '/cms/site/name/' + name;

    return api_request(name);

  },

  //获取自定义标签

  get_labels: function(){

    var url = '/cms/label';

    return api_request(url);

  },

  //获取单个自定义标签

  get_label: function(){

    var url = '/cms/label/name/' + name;

    return api_request(url);

  },

  //获取幻灯片

  get_slide: function(gid,num){

    var url = '/cms/slide/gid/' + gid + '/num/' + num;

    return api_request(url);

  },

  //获取友情链接

  get_links: function(gid,num){

    var url = '/cms/link/gid/' + gid + '/num/' + num;

    return api_request(url);

  },

  //获取栏目列表

  get_navs: function(){

    var url = '/cms/nav';

    return api_request(url);

  },

  //获取指定栏目列表

  get_nav: function(scode){

    var url = '/cms/nav/scode/' + scode;

    return api_request(url);

  },

  //获取当前栏目

  get_current_cat: function(scode){

    var url = '/cms/sort/scode/' + scode;

    return api_request(url);

  },

  //获取内容列表

  get_list: function(scode,num,order){

    if( ( num != '' ) && !order ){

      var url = '/list/' + scode + '/num/' + num;

    } else if( !num && ( order != '' ) ){

      var url = '/list/' + scode + '/order/' + order;

    } else if ( (num != '') && (order != '') ){

      var url = '/list/' + scode + '/num/' + num + '/order/' + order;

    } else {

      var url = '/list/' + scode;

    }

    return api_request(url);

  },

  //获取内容列表第*页

  get_list_paged: function (scode, paged, num, order) {

    if ((num != '') && (order == '')) {

      var url = '/list/' + scode + '/num/' + num + '/page/' + paged;

    } else if ((num == '') && (order != '')) {

      var url = '/list/' + scode + '/order/' + order + '/page/' + paged;

    } else if ((num != '') && (order != '')) {

      var url = '/list/' + scode + '/num/' + num + '/order/' + order + '/page/' + paged;

    } else {

      var url = '/list/' + scode + '/page/' + paged;

    }

    return api_request(url);

  },

  //获取指定内容

  get_content: function(id){

    var url = '/content/' + id;

    return api_request(url);

  },

  //获取指定内容多图

  get_content_pics: function(id){

    var url = '/cms/pics/id/' + id;

    return api_request(url);

  },

  //获取搜索结果

  get_search_resault: function(parm,num,order){ 

    if ((num != '') && (order == '')) {

      var url = '/cms/search/' + 'num/' + num;

    } else if ((num == '') && (order != '')) {

      var url = '/cms/search/' + 'oder/' + order;

    } else if ((num != '') && (order != '')) {

      var url = '/cms/search/num/' + num + '/order/' + order;

    } else {

      var url = '/cms/search/';

    }

    return api_request(url, 'POST', parm);

  },

  //提交留言

  add_message: function(parm){

    var url = '/cms/addmsg';

    return api_request(url, 'POST', parm);

  },

  //获取留言内容

  get_message: function(num){

    var url = '/cms/msg/num/' + num;

    return api_request(url);

  },

  //获取留言内容第*页

  get_message_paged: function(num,paged){

    var url = '/cms/msg/num/' + num + '/page/' + paged;

    return api_request(url);

  },

  //提交表单

  add_form: function(fcode,parm){

    var url = '/cms/addform/fcode/' + fcode;

    return api_request(url, 'POST', parm);

  },

  //获取表单内容

  get_form: function(fcode){

    var url = '/cms/form/fcode/' + fcode;

    return api_request(url);

  },

  //获取表单内容第*页

  get_form_paged: function(fcode,num,paged){

    var url = '/cms/form/fcode/' + fcode + '/num/' + num + '/page/' + paged;

    return api_request(url);

  },

}

4、完成了,就这么简单。

下面说明一下调用的方法:

1、在需要调用数据的js页面引入api文件,例如首页的index.js

const api = require('../../utils/api.js');  //路径根据自己的实际情况调整

2、在生命周期函数--监听页面加载函数中使用api模块。

/**

* 生命周期函数--监听页面加载

*/

onLoad: function (options) {

    var that = this;  //划重点,这句千万不要忘掉了。

    //api.模块函数.then...来调用,这里companyinfos()是调用公司信息

    api.companyinfos().then(function (rs) {

      //通过setData把获取到的数据赋值到页面初始数据的data对象,这样就可以在wxml中使用数据了。

      that.setData({

        companyinfos: rs.data,

      })

      //把获取的数据输出到控制台看看,实际使用的时候删除掉下面这行

      console.log(rs.data);

    })

  },

3、控制台截图,可以看到公司信息的数据获取成功,接下来就是绑定数据到页面的事情了。

image.png

4、POST请求的使用方法。同样在生命周期函数--监听页面加载函数中使用api模块。

//首先声明一个对象,用来存储需要通过POST传递过去的参数。比如搜索的keyword,scode,留言的字段等。

//这里演示的是搜索模块,声明对象,POST搜索的关键词和指定分类。

var search_obj = {

    'keyword': '模板',

    'scode': '3,5',

};

//get_search_resault需要传入 搜索对象(也就是刚才声明的),返回条数,排序方式。

//这里演示需要获取的是分类3和5中的,关键词是模板的5条信息。

api.get_search_resault(search_obj, 5, 'id').then(function (rs) { 

    that.setData({

      search: rs.data,

    })

    console.log(rs.data);

})

5、看看控制台的截图。

image.png

可以看到,已经获取到分类3和分类5中的,关键词是“模板”,并且按照id进行排序的前5条数据了。


附上接口下载:

插件下载说明

未提供下载提取码的插件,都是站长辛苦开发,需收取费用!想免费获取辛苦开发插件的请绕道!

织梦二次开发QQ群

本站客服QQ号:3149518909(点击左边QQ号交流),群号(383578617) DedeCMS织梦教程QQ群 如果您有任何织梦问题,请把问题发到群里,阁主将为您写解决教程!

转载请注明: 织梦模板 » PbootCms百度小程序和微信小程序API封装教程

  • PbootCms关闭自动更新的方法二开必备
    阅读
    在使用PbootCms做网站的过程中,难免会遇到一些二次开发的内容。网站后台有在线更新的按钮。 如果做了二开,那么更新就需要慎重了。比较保险的做法是禁用掉在线更新。 操作方法 通常的做法是在 \apps\admin\view\default\system\home.html \apps\admin\view\...
  • pbootcms忘记后台密码-pbootcms后台密码遗忘,如何找回?
    阅读
    pbootcms是一款功能强大的内容管理系统,它为用户提供了方便快捷的网站建设和管理工具。由于各种原因,有时候我们可能会忘记pbootcms后台的登录密码,这给我们的网站管理带来了一定的困扰。那么,当我们忘记了pbootcms后台密码时,应该如何找回呢?本文将从...
  • PbootCms导航菜单标签调用小技巧
    阅读
    PbootCms官方群里每天都会有一些小白问一些很简单没啥技术含量的问题,导致大家都懒的教,技术讨论的质量越来越低。 这里我把一些小白常遇到的问题理一理,希望对新手有些帮助,当然,最好还是提升下自身的基础知识储备,早日走向大神之路。 关于导航菜单 {@...
  • pbootcms免费插件下载、pbootcms免费插件下载中心,助你快速获取所需插件
    阅读
    pbootcms是一款免费的内容管理系统,它提供了丰富的插件下载中心,为用户快速获取所需插件提供了便利。我将详细介绍pbootcms免费插件下载和下载中心的各个方面,帮助读者更好地了解和使用这个功能。 1. 插件下载中心的背景 在开始介绍pbootcms的插件下载中心...
  • pbootcms怎么修改网站模板(pbootcms教程:简易教你修改网站模板,打造个性化中心)
    阅读
    pbootcms是一款功能强大的网站模板管理系统,它提供了丰富的模板资源和灵活的修改方式,让用户可以轻松打造个性化的网站。在本篇文章中,我将为大家介绍如何使用pbootcms修改网站模板,以打造个性化的中心。 让我们来了解一下pbootcms的背景信息。pbootcms是...
  • PbootCMS网站打不开,PbootCMS网站无法访问:解决方案大揭秘
    阅读
    在当今数字化时代,网站已经成为人们获取信息、交流和商业活动的重要平台。有时我们可能会遇到PbootCMS网站打不开或无法访问的问题,这给我们的工作和生活带来了困扰。本文将详细阐述PbootCMS网站打不开和无法访问的原因,并提供解决方案,帮助读者解决这一...
  • pbootcms生成静态、pbootcms静态生成:高效实现网站静态化
    阅读
    pbootcms是一款高效的网站管理系统,它提供了静态生成的功能,可以帮助用户将网站内容快速生成静态页面。本文将详细介绍pbootcms生成静态、pbootcms静态生成的过程和优势,希望能引起读者的兴趣。 在互联网时代,网站的访问速度和用户体验是至关重要的。传统...
  • PbootCms扩展控制器本地正常上传到服务器就出错的解决办法
    阅读
    PbootCms扩展标签定制个性化时间的文章定制了自己想要的时间格式,结果本地正常,上传到服务器环境后就不生效。 原因是PbootCms官方的一个小BUG,截至V2.0.9仍然存在。如果你也遇到,可以参考一下解决方案。 解决办法 如下图标记,路径前有一个点。 解决办法...
  • pbootcms后台左边菜单如何修改
    阅读
    第一种:直接后台链接操作 超级管理后台登录后台,手动访问这个链接(你的后台登录地址/Menu/index)打开菜单列表,找到系统管理-系统菜单点击状态启用,接着去重新登录后即可。 注意:截图里用的是默认后台 登录 地址域名/admin.php,根据实际情况输入。 下...
  • pbootcms更换模板方法,pbootcms模板更换方法详解
    阅读
    pbootcms是一款功能强大的开源内容管理系统,它提供了丰富的模板选择,让用户可以轻松更换自己喜欢的模板。本文将详细介绍pbootcms的模板更换方法,帮助读者了解如何进行模板更换,并提供一些实用的技巧和注意事项。 一、背景介绍 pbootcms是一款基于PHP+MyS...
收藏此文 打赏本站

如本文对您有帮助,就请六久阁织梦模板网抽根烟吧!

  • 支付宝打赏
    支付宝扫描打赏
    微信打赏
    微信扫描打赏
PbootCms在模板中对定制标签中的内容进行二次处理
« 上一篇 2022年04月13日
用PbootCms的API接口制作Ajax无刷新留言
下一篇 » 2022年04月03日

精彩评论

有问题在这里提问,阁主会为你解决!
  • 全部评论(0
    还没有评论,快来抢沙发吧!
推荐精品模板更多
响应式室内设计工程施工类织梦模板(自适应手机端)
更新时间:2018-06-07

人已经看过了!

橙黄色机械设备企业营销型织梦模板+测试数据
更新时间:2021-10-21

人已经看过了!

绿色健康养生新闻资讯类网站织梦模板(带手机端)
更新时间:2019-11-08

人已经看过了!

漂亮清爽的织梦会员中心模板带推广邀请发布文章
更新时间:2021-10-21

人已经看过了!

织梦文学资讯散文美文门户站带手机端会员中心投稿
更新时间:2019-09-06

人已经看过了!

家具装修装饰织梦模板(带手机端)
更新时间:2018-04-26

人已经看过了!

现代简约HTML5自适应家装设计类织梦模板
更新时间:2018-04-17

人已经看过了!

高端品牌建筑装饰类响应式织梦模板
更新时间:2017-08-10

人已经看过了!