博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单封装微信小程序
阅读量:4677 次
发布时间:2019-06-09

本文共 3114 字,大约阅读时间需要 10 分钟。

一、不同环境配置封装

新建config文件夹,根据自己有不同环境设置不同的js文件

 

具体js文件内容:

exports.config = {    requestHost: 'https://******.com.cn',    APPID:'*******',    Business: {        'jiaxiao': '1'    }}

 

新建api.js文件(放哪里根据自己喜好),用json形式来储存接口地址:

exports.api = {  'do' : {    'login': '/merchant/do/login',  },  'payment' : {    'pay': '/V2/TokenPay/pay',  }}

 配置完成后在app.js中就可以调用了,

//app.jsApp({  onLaunch: function (options) {    let env = options.query.env ? options.query.env : "product";    var config = require("config/config." + env + ".js");    this.globalData = config.config;    //获取接口信息    var api = require('api.js');  },})

在页面中调用接口时只要引入先引入

const app = getApp();
就可以通过变量来获取接口地址了。
 
封装微信小程序get post方法:
const app = getApp();const setToken = token => {  return wx.setStorageSync('token', token);  }const getToken = () =>{  return wx.getStorageSync('token');}const judge = () =>{  var host = app.globalData.requestHost;  // console.log(host + app.api.do.token)  wx.request({    url: host + app.api.do.token,    data: {      token: getToken() ? getToken(): ''    },    header: {      'content-type': 'application/json' // 默认值    },    success: function (res) {      if (res.data.ret_code != 200) {        wx.navigateTo({          url: "/pages/login/index"        })      }    },    fail: function (error) {      wx.navigateTo({        url: "/pages/login/index"      })    }  })  //设置title  wx.setNavigationBarTitle({    title: wx.getStorageSync('merchantName') ? wx.getStorageSync('merchantName') : ''  })}const get = (url, data, callback) => {  //判断是否登录、token是否过期  var host = app.globalData.requestHost;  judge();  if(data == false){    var data = {         token: wx.getStorageSync('token'),        business: app.globalData.Business.jiaxiao    }  }else{        data.token = wx.getStorageSync('token');        data.business = app.globalData.Business.jiaxiao;  }   wx.request({    url: host+url,    data: data,    header: {      'content-type': 'application/json'    },    success: res => {      callback(res);    },  })}const post = (url, data, callback) => {  //判断是否登录、token是否过期  var host = app.globalData.requestHost;  judge();  //设置title  // console.log(wx.getStorageSync('token'))  wx.setNavigationBarTitle({    title: wx.getStorageSync('merchantName') ? wx.getStorageSync('merchantName') : ''  })  if (data == false) {    var data = {        token: wx.getStorageSync('token'),        business: app.globalData.Business.jiaxiao    }  } else {    data.token = wx.getStorageSync('token');  }  // console.log(method)  wx.request({    url: host + url,    method: 'POST',    data: data,    header: {      'content-type': 'application/x-www-form-urlencoded'    },    success: res => {      callback(res);    },  })}module.exports = {  setToken: setToken,  getToken: getToken,  judge: judge,  get: get,  post: post}

因为小程序接口都是对外的开放接口,所以会存在安全性问题,为了接口安全每次都要传一个‘token’来校验请求的安全性,上边封装的意义也在此处,不用每次都传递token了,调用也很简单:

//页面引入var request = require('../../utils/request.js');    request.get(      app.api.pay.pay,      false, function (res) {          console.log(res)      });//request.get(接口地址,是否有参数,结果回调)

 

转载于:https://www.cnblogs.com/liucaodan/p/10682476.html

你可能感兴趣的文章
关于TortoiseSVN的一些知识
查看>>
mysql优化
查看>>
Node.js Web 模块
查看>>
Factory Method(工厂方法)
查看>>
英语口语考试资料Language learning
查看>>
关于TreeSet倒序排列和自定义排列
查看>>
CodeForces 234Div2
查看>>
Vim笔记
查看>>
5.python的字符串
查看>>
操作系统笔记(一)介绍
查看>>
转-- 介绍 Java 自带的线程池(2)
查看>>
RabbitMQ Lazy Queue 延迟加载
查看>>
解决“您当前无权访问该文件夹”的问题
查看>>
Myeclipse快捷键集合
查看>>
URLEncoder和URLDecoder转码
查看>>
STL.Net
查看>>
loongson 2f 和u-boot中的cache命令对照
查看>>
Codeforces Round #318 [RussianCodeCup Thanks-Round] (Div. 1) B. Bear and Blocks 水题
查看>>
Codeforces Beta Round #8 C. Looking for Order 状压
查看>>
SCOJ 4484 The Graver Robbers' Chronicles 后缀自动机
查看>>