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


相关推荐: 织梦去掉{dede:field.body/} 中的p元素_织梦CMS教程  织梦dedecms图片集上传图片出错302的解决办法_织梦CMS教程  建站助手哪个好用?2025热门工具推荐与对比评测  建站之星2.7模板:企业网站建设与h5定制设计专题  织梦根据条件查询自定义表单并输出相应的字段值_织梦CMS教程  建站10G流量真的够用吗?如何应对访问高峰?  如何通过虚拟主机空间快速建站?  定制建站流程步骤详解:一站式方案设计与开发指南  dedecms织梦调用三级四级无限级栏目教程_织梦CMS教程  如何通过wdcp面板快速创建网站?  织梦全站GBK编码转UTF-8编码图文教程 _织梦CMS教程  如何通过VPS建站无需域名直接访问?  织梦使用kindeditor编辑器后批量上传图片无法加水印_织梦CMS教程  如何通过VPS建站实现广告与增值服务盈利?  织梦dedecms内容页调用栏目内容标签{dede:field.content/}_织梦CMS教程  如何选购建站域名与空间?自助平台全解析  织梦noflag标签如何过滤多个参数_织梦CMS教程  织梦{dede:channel}标签调用栏目新增的自定义字段_织梦CMS教程  帝国cms全站去除版权教程方法_帝国CMS教程  建站之星支付失败如何快速处理?  如何在万网利用已有域名快速建站?  织梦判断栏目是否有栏目图片,如果没有的话就显示栏目名称_织梦CMS教程  织梦调用整站相关文章_织梦CMS教程  如何在IIS中新建站点并配置端口与IP地址?  孙琪峥织梦建站教程如何优化数据库安全?  织梦直接获取上一篇下一篇的URL网址链接方法_织梦CMS教程  DEDECMS织梦网站实现利用键盘上下翻页效果_织梦CMS教程  常州企业建站如何选择最佳模板?  建站之星云端配置指南:模板选择与SEO优化一键生成  织梦cms缩略图调用原图的方法_织梦CMS教程  织梦后台直接添加会员功能开发方法_织梦CMS教程  dedecms织梦把时间标签修改成“今天、明天、后天”_织梦CMS教程  建站之星设计师计划:智能建站系统如何实现多端适配模板?  织梦后台有时候很卡,造成浏览器假死解决办法_织梦CMS教程  帝国CMS教程-去掉“选择注册会员类型”_帝国CMS教程  phpStudy织梦PHP调试环境的程序安装教程_织梦CMS教程  建站助手伪静态配置如何优化SEO效果?  建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略  家庭服务器如何搭建个人网站?  如何在景安云服务器上绑定域名并配置虚拟主机?  如何高效生成建站之星成品网站源码?  如何在IIS中新建站点并解决端口绑定冲突?  建站VPS配置与SEO优化指南:关键词排名提升策略  建站之星如何通过成品分离优化网站效率?  建站助手开启FTP配置教程:服务器管理与站点搭建步骤解析  dedecms织梦jquery+ajax方式提交自定义表单_织梦CMS教程  dedecms织梦自定义表单中做城市二级三级联动教程_织梦CMS教程  织梦添加一个函数,实现任意字段调用_织梦CMS教程  织梦搜索到后台文章列表文档id,快速编辑修改教程_织梦CMS教程  织梦做wordpress博客那样调用tag标签对应文章数量的方法_织梦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.