首页 > 其他分享 >微信请求封装:wx.request,wxCloud

微信请求封装:wx.request,wxCloud

时间:2024-01-14 20:46:01浏览次数:29  
标签:function const url 微信 request params res wxCloud wx

wx.request

// 方式一
console.log('环境==', envVersion);
// const host = "https://springboot-hebq-84640-6-1323095709.sh.run.tcloudbase.com";
const host = "https://t.jiazhangq.cn";
const wxRequest = function (params, url) {
  console.log('wx=', params, url)
  wx.showToast({
    title: '加载中...',
    icon: 'loading'
  })
  wx.request({
    url: url,
    method: params.method || 'GET',
    data: params.data || {},
    header: {
      'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'
    },
    success: function (res) {
      params.success && params.success(res)
      wx.hideToast()
    },
    fail: function (res) {
      params.fail && params.fail(res)
    },
    complete: function (res) {
      params.complete && params.complete(res)
    }
  })
}

// 方式二
const wxRequest = async function (params, url) {
  wx.showToast({
    title: '加载中...',
    icon: 'loading'
  })
  const result = await new Promise((resolve, reject)=>{
    wx.request({
      url: url,
      method: params.method || 'GET',
      data: params.data || {},
      header: {
        'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'
      },
      success: function (res) {
        wx.hideToast()
        resolve(res.data)
      },
      fail: function (res) {
        reject(res)
      },
      complete: function (res) {
        console.error(res);
      }
    });
  });
  return result
}

云托管

const wxCloud = async function (params, url, number = 0) {
  console.log('wxc=', params, url, number)
  const that = this
  let header = wx.getStorageSync('LoginInfo');
  
  console.log('header:', header)

  if(that.cloud == null){
    that.cloud = new wx.cloud.Cloud({
      identityless: true,
      resourceAppid: 'wx310de2a5ae44414f', // 微信云托管环境所属账号,服务商appid、公众号或小程序appid
      resourceEnv: 'prod-8gw8ynhq95367f2a', // 微信云托管的环境ID
    })
    await that.cloud.init({
      traceUser: true
    }) // init过程是异步的,需要等待init完成才可以发起调用
  }
  try{
    const result = await that.cloud.callContainer({
      path: url, // 填入业务自定义路径和参数,根目录,就是 / 
      method: params.method || 'GET', // 按照自己的业务开发,选择对应的方法
      header: header ? header : {},
      data: params.data || {}
    })
    console.log(`微信云托管调用结果${result.errMsg} | callid:${result.callID} `)
    // console.log(`接口请求调用结果:`+JSON.stringify(result))
    return result.data // 业务数据在data中
  } catch(e) {
    const error = e.toString()
     // 如果错误信息为未初始化,则等待300ms再次尝试,因为init过程是异步的
    if(error.indexOf("Cloud API isn't enabled") != -1 && number < 3){
      return new Promise((resolve)=>{
        setTimeout(() => {
          resolve(that.call(params, url, number + 1))
        }, 300)
      })
    } )
        }, 300)
      })
    } else {
      throw new Error(`微信云托管调用失败${error}`)
    }
  }
}

标签:function,const,url,微信,request,params,res,wxCloud,wx
From: https://www.cnblogs.com/min77/p/17964154

相关文章

  • 微信防封养号最新规则
    最近微信的规则又有更新,问的人也比较多,重新给大家整理了一份最新最全的。近期很多号被封,主要原因是因为多开分身共存和使用了营销推广,账号卡号等导致的。添加好友及安全限制规则:1:每天不能超过80个。这个数据不是很准确,而且一直在变,与微信号的权重和活跃度也有关系。2:前15天,主动加......
  • 微信对话平台API开发
    接入官方文档接入文档下面我们开始使用前端来进行接入<!DOCTYPEhtml><html> <head> <metacharset="UTF-8"> <title>客服页面</title> <style> /*设置页面全屏*/ html, body{ width:100%; height:100%; margin:0; ......
  • 安装npm install报错npm ERR! code ETIMEDOUT npm ERR! errno ETIMEDOUT npm ERR! net
    执行命令:npmrundev启动前端项目报如下错误,vue-cli-service是Vue一个启动的插件,需要安装D:\nodejs\npm.cmdrundev>[email protected]>vue-cli-serviceserve--open'vue-cli-service'不是内部或外部命令,也不是可运行的程序或批处理文件。Processfinishedwithe......
  • 微信商家转账到零钱,既能单笔又能批量,支持多商户管理
    大家好,我是小悟微信商家转账到零钱的功能大家应该都熟悉吧,为了满足商家向用户微信零钱转账的需求,微信支付推出【商家转账到零钱】服务,方便商户可以一次向单个或多个用户的微信零钱转账。商家转账到零钱为商户提供了简便、免费、安全的转账服务。使用该功能可以帮助商户更加便捷、安......
  • Python中出现"No module named 'requests'"的图文解决办法
    第一步找到pycharm中的虚拟环境的位置第二步打开虚拟环境位置的文件夹 找到Scripts的这个文件夹然后复制该文件夹的地址第三步打开“运行”(可以用快捷键WIN+R键打开)然后输入cmd第四步切换目录到虚拟环境的盘符输入“D:”(我的虚拟环境在D盘所以切换到D盘)第五......
  • 我在 GPT 应用商店身上,看到了微信小程序的影子
    作者:李宝珠编辑:三羊OpenAI的新「摇钱树」是怎么赚钱的?昨天,GPTStore终于上线。早在2023年11月的开发者大会上,SamAltman就已经对外介绍了GPTStore,随后而来的内部「宫斗」显然拖慢了GPT商店「剪彩挂牌」的进度。但这段时间以来,GPTs的热度并未消退,用户已经创建了超过......
  • 微信生态私域6要素了解一下
    微信生态私域6要素,是在微信生态下私域运营有6个常见的触达用户方式。企微,个微,朋友圈,社群,公众号,视频号......
  • 安卓仿微信朋友圈动态数据加载(包括评论和点赞,以及动态详情页)
    在项目里面使用到了类似微信朋友圈的功能,所以就研究了一下,大家先看看效果吧!效果图一:效果图二:效果图三:效果图四:效果图五:效果图六:效果图七:效果图八:......
  • 利用企业微信自助重置 AD 域用户密码
                                                            利用企业微信自助重置AD域用户密码ADPasswordSelfService是开源官网地址:https://www.ltb-pr......
  • FreeLocked 微信支付开通笔记
    开通对象是收乐财(上海)信息科技有限公司,目前运营的房源资讯网站,我们本来是对标Airbnb尝试了一些民宿预定的线上平台是否能够吸引一些房东或者租户。网址:FreeLocked.com  事实上,电话来不及接,我经常遇到来不及支付电话话费等情况,鉴于目前托管客服也省不了多少钱,我们这块暂时没......