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


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

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、控制台截图,可以看到公司信息的数据获取成功,接下来就是绑定数据到页面的事情了。

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、看看控制台的截图。

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


附上接口下载:


# 怎么做官网设计网站推广  # 跳过  # 就可以  # 沧州推广营销网络  # 好口碑网站建设费用  # 红姐网站推广文案范文大全  # 碳交易营销策略推广  # 内蒙古产品推广营销  # 深圳中文网站优化有用吗  # seo计算关键词  # 深圳seo优化思路  # 英文旅游网站推广  # 绑定  # 西湖网站建设seo  # 房产网站建设很棒  # 国外推广中文网站违法吗  # 猫点链接对seo好吗  # 北京网站优化之家排名  # 公司网站建设立项流程  # 黄骅网站营销与推广  # 欧莱雅群面营销推广  # 旅游行业新闻推广营销  # 怎么学会营销策划推广  # 加载  # PbootCMS教程  # PbootCms  # 百度小程序  # 微信小程序  # 关键词  # 表单  # 周期函数  # 的是  # 留言内容  # 可以看到  # PbootCms百度小程序和微信小程序API封装教程  # 自定义  # 自己的  # 能有  # 千万不要  # 实际情况  # 搜索结果  # 自带  # 多图  # 首页  # 这句 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 网络优化91478 】 【 技术知识72672 】 【 云计算0 】 【 GEO优化84317 】 【 优选文章0 】 【 营销推广36048 】 【 网络运营41350 】 【 案例网站102563 】 【 AI智能45237


相关推荐: 织梦多行多列图集在模板中调用缩略图_织梦CMS教程  高端云建站费用究竟需要多少预算?  香港服务器租用每月最低只需15元?  建站之星导航配置指南:自助建站与SEO优化全解析  织梦cms发布文章实时推送地址给百度收录的二种方法_织梦CMS教程  dedecms织梦新站SEO优化技巧_SEO优化教程  phpcms ajax列表分页无限加载教程_PHPCMS教程  织梦DedeCMS二次开发教程之创建数据表_织梦CMS教程  建站助手一键生成智能网站,AI助手+模板库极速部署  如何快速搭建FTP站点实现文件共享?  织梦自定义模型*搜索字段不显示链接地址不能调用解决方法_织梦CMS教程  如何在自有机房高效搭建专业网站?  如何选择靠谱的建站公司加盟品牌?  提交百度开放适配提示Xml格式错误的解决办法 _SEO优化教程  建站之星收费吗?具体费用包含哪些项目?  网站TAG标签正确使用方法_SEO优化教程  织梦添加自定义字段为图片出现Fatal error: Call to a member function GetInnerText()错误解决方法_织梦CMS教程  建站之星3.0如何解决常见操作问题?  建站之星源码如何快速优化SEO与模板设计?  建站之星代理费用多少?最新价格详情介绍  建站助手伪静态配置如何优化SEO效果?  如何快速上传建站程序避免常见错误?  建站之星代理如何获取技术支持?  织梦做wordpress博客那样调用tag标签对应文章数量的方法_织梦CMS教程  织梦dedecms搜索时间间隔修改教程_织梦CMS教程  织梦cms网站防止被黑被挂马教程_织梦CMS教程  建站之星×万网:智能建站系统+自助建站平台一键生成  织梦有效去除面包屑当前位置position导航中*后“>”符号的方法_织梦CMS教程  dedecms织梦dede:arclist按照自定义字段的条件调用相关文章_织梦CMS教程  织梦检索数据查询数据库前端实现搜索功能(PHP网站通用) _织梦CMS教程  如何在宝塔面板中修改默认建站目录?  织梦dedeCMS文章防刷新增加点击数教程_织梦CMS教程  建站之星如何实现网站加密操作?  定制建站平台哪家好?企业官网搭建与快速建站方案推荐  建站之星后台管理如何实现高效配置?  定制建站方案优化指南:企业官网开发与建站费用解析  织梦DedeCms5.7缩略图变形拉伸解决方法_织梦CMS教程  如何通过西部建站助手安装IIS服务器?  dedecms织梦点击数过千过万过亿写法_织梦CMS教程  dedecms织梦搜索结果不支持autoindex的解决办法_织梦CMS教程  建站之星数据库如何正确配置?  如何在IIS服务器上快速部署高效网站?  织梦dedecms默认作者和默认来源修改方法_织梦CMS教程  织梦dedecms图集图片每张自定义输出不同样式_织梦CMS教程  高端网站建设与定制开发一站式解决方案 中企动力  织梦调用文章所属的副栏目id及副栏目名称网址链接教程_织梦CMS教程  如何通过多用户协作模板快速搭建高效企业网站?  建站之星客服服务时间及联系方式如何?  宝塔建站后网页无法访问如何解决?  织梦栏目导航{dede:channel}标签添加序号教程_织梦CMS教程 

 2022-04-03

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

南京市珐之弘网络技术有限公司


南京市珐之弘网络技术有限公司

南京市珐之弘网络技术有限公司专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。

 87067657

 13565296790

 87067657@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.