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

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