123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- let siteinfo = require('../config');
- let util = require('util');
- const BASE_URL = siteinfo.siteroot + '/';
- const SECRET = siteinfo.miniapp
- /*
- * 签名认证
- */
- const getSign = obj => {
- let keys = Object.keys(obj)
- keys.sort()
- let params = []
- keys.forEach(e => {
- if (!util.isNull(obj[e])) {
- params.push(e + '=' + util.trim(obj[e]))
- }
- })
- params.push('key=' + SECRET)
- let paramStr = params.join('&')
- const md5Util = require('../utils/md5.js')
- let signResult = md5Util.md5(paramStr).toUpperCase()
- return signResult
- }
- /**
- * 网络请求封装
- * @param url url路径名 例:/books
- * @param method 请求方式 POST/GET/DELETE等
- * @param data 请求参数 string类型
- * @param success 成功回调
- * @param fail 失败回调
- */
- function request(url, method, data, success, fail) {
- if (!fail && !success && typeof data === 'function') {
- success = data;
- data = "";
- }else if (!fail) {
- if (typeof data === 'function') {
- fail = success
- success = data
- data = ""
- } else if (typeof data === 'object') {
- let sign = getSign(data)
- data.sign = sign
- } else {
- console.log("传递参数类型不正确");
- }
- }
- var wxtask = wx.request({
- url: BASE_URL + url,
- header: {
- 'content-type':'application/json', //默认 application/json :数据序列化
- 'request-miniapp': siteinfo.miniapp,
- 'request-time': Date.parse(new Date()),
- 'request-token': wx.getStorageSync('token'),
- 'Cookie':'PHPSESSID='+ wx.getStorageSync('session_id'),
- },
- method: method,
- data: data,
- success: function (res) {
- switch (res.data.code) {
- case 200: //请求成功code
- success(res.data)
- break
- case 204: //成功请求但空内容。
- success(res.data)
- break
- case 301: //永久跳转
- wx.showModal({
- content: res.data.msg,
- success: function (rel) {
- if (rel.confirm) {
- wx.redirectTo({
- url: res.data.url,
- fail: function (res) {
- wx.showModal({ content: '访问失败', showCancel: false })
- }
- })
- }
- }
- })
- case 302: //临时跳转
- wx.showModal({
- content: res.data.msg,
- success: function (rel) {
- if (rel.confirm) {
- wx.navigateTo({
- url: res.data.url, fail:function (res) {
- wx.showModal({content:'访问失败',showCancel: false })
- },
- })
- }
- }
- })
- break
- case 401://解决请求用户认证
- wx.navigateTo({
- url: '/pages/helper/login', fail: function (res) {
- wx.showModal({ content: '访问失败', showCancel: false })
- }
- })
- break
- case 403://请求失败code弹出提示
- wx.showModal({content:res.data.msg,showCancel:false})
- break
- case 500://请求失败code调整
- wx.redirectTo({
- url: '/pages/helper/error?msg=' + res.data.msg, fail: function (res) {
- wx.showModal({ content: '访问失败', showCancel: false })
- }
- })
- break
- }
- wx.hideLoading();
- },
- fail: function (res) {
- if (fail) {
- fail(res)
- }
- }
- })
- return wxtask;
- }
- /**
- * 请求封装-Get
- * @param url 请求地址
- * @param data 请求参数
- * @param success 成功回调
- * @param fail 失败回调
- * @constructor
- *
- * 返回值为微信请求实例 用于取消请求
- */
- function Get(url, data, success, fail) {
- return new Promise((resolve, reject) => {
- return request(url, "GET", data, success, fail)
- })
- }
- /**
- * 请求封装-Post
- * @param url 请求地址
- * @param data 请求参数
- * @param success 成功回调
- * @param fail 失败回调
- * @constructor
- *
- * 返回值为微信请求实例 用于取消请求
- */
- function Post(url, data, success, fail) {
- return new Promise((resolve, reject) => {
- return request(url, 'POST', data, success, fail)
- })
- }
- /**
- * 请求封装-PUT
- * @param url 请求地址
- * @param data 请求参数
- * @param success 成功回调
- * @param fail 失败回调
- * @constructor
- *
- * 返回值为微信请求实例 用于取消请求
- */
- function Put(url, data, success, fail) {
- return new Promise((resolve, reject) => {
- return request(url, 'PUT', data, success, fail)
- })
- }
- /**
- * 请求封装-Delete
- * @param url 请求地址
- * @param data 请求参数
- * @param success 成功回调
- * @param fail 失败回调
- * @constructor
- *
- * 返回值为微信请求实例 用于取消请求
- */
- function Delete(url, data, success, fail) {
- return new Promise((resolve, reject) => {
- return request(url, 'DELETE', data, success, fail)
- })
- }
- exports.Get = Get;
- exports.Post = Post;
- exports.Put = Put;
- exports.Delete = Delete;
|