使用PbootCMS做微信小程序


如何用PbootCMS做微信小程序呢,看完這篇文章你也可以學會。

第一步:准備md5加密文件

 

PbootCMS的簽名參數signature是經過雙層md5加密的,當然如果后台WebAPI沒有開啟強制認證的,這一步可以跳過。 

第二步:封裝API請求方法

//聲明一個API請求函數
function api_request(url, method, parm){
    var apiurl    = 'https://www.pbootcms.com/api.php';    //域名 + api.php
    var appid     = 'wx12345678910';    //后台WebAPI中設置的AppID
    var appsecret = '12334356465765867878943';    //后台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;
}

第三步:封裝官方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);
    },
    //獲取自定義標簽
    getLabels: function(){
        var url = '/cms/label';
        return api_request(url);
    },
    //獲取單個自定義標簽
    getLabel: function(){
        var url = '/cms/label/name/' + name;
        return api_request(url);
    },
    //獲取幻燈片
    getSlide: function(gid,num){
        var url = '/cms/slide/gid/' + gid + '/num/' + num;
        return api_request(url);
    },
    //獲取友情鏈接
    getLinks: function(gid,num){
        var url = '/cms/link/gid/' + gid + '/num/' + num;
        return api_request(url);
    },
    //獲取欄目列表
    getNavs: function(){
        var url = '/cms/nav';
        return api_request(url);
    },
    //獲取指定欄目列表
    getNav: function(scode){
        var url = '/cms/nav/scode/' + scode;
        return api_request(url);
    },
    //獲取當前欄目
    getCurrentCat: function(scode){
        var url = '/cms/sort/scode/' + scode;
        return api_request(url);
    },
    //獲取內容列表
    getList: 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);
    },
    //獲取內容列表第*頁
    getListPaged: 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);
    },
    //獲取指定內容
    getContent: function(id){
        var url = '/content/' + id;
        return api_request(url);
    },
    //獲取指定內容
    getContent: function(scode){
        var url = '/about/' + scode;
        return api_request(url);
    },
    //獲取指定內容多圖
    getContent_pics: function(id){
        var url = '/cms/pics/id/' + id;
        return api_request(url);
    },
    //獲取搜索結果
    getSearchResault: 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);
    },
    //提交留言
    addMessage: function(parm){
        var url = '/cms/addmsg';
        return api_request(url, 'POST', parm);
    },
    //獲取留言內容
    getMessage: function(num){
        var url = '/cms/msg/num/' + num;
        return api_request(url);
    },
    //獲取留言內容第*頁
    getMessagePaged: function(num,paged){
        var url = '/cms/msg/num/' + num + '/page/' + paged;
        return api_request(url);
    },
    //提交表單
    addForm: function(fcode,parm){
        var url = '/cms/addform/fcode/' + fcode;
        return api_request(url, 'POST', parm);
    },
    //獲取表單內容
    getForm: function(fcode){
        var url = '/cms/form/fcode/' + fcode;
        return api_request(url);
    },
    //獲取表單內容第*頁
    getFormPaged: function(fcode,num,paged){
        var url = '/cms/form/fcode/' + fcode + '/num/' + num + '/page/' + paged;
        return api_request(url);
    },
}

本文來源:小郭博客(AndyGuo) ,原文鏈接:http://www.d163.net/html/web2/40.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM