当前位置: 首页 > news >正文

Java使用微信云服务HTTP API操作微信云开发数据库

 可以直接用的工具类代码

package com.kstc.qgy.util;import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.kstc.qgy.model.exception.WxException;
import com.kstc.qgy.model.service.Limit;
import java.util.List;public class WXConnection {private static String accessToken = null;private final static String IP = "https://api.weixin.qq.com";private final static String env = "你的env";private final static String appId = "你的微信appid";private final static String secret = "你的微信小程序密钥";public synchronized static void getAccessToken() throws Exception {String res = HttpUtils.httpsGet(IP + "/cgi-bin/token?grant_type=client_credential&appid="+appId+"&secret="+secret);JSONObject jsonObject = JSON.parseObject(res);accessToken = jsonObject.getString("access_token");System.out.println("获取微信access_token:"+accessToken);}private synchronized static void resultIsSuccess(String res) throws WxException {JSONObject jsonObject = JSONObject.parseObject(res);if (jsonObject.containsKey("errcode")&&!jsonObject.get("errcode").equals(0)) throw new WxException();}public synchronized static String findList(String collection, Limit limit) throws Exception {JSONObject body = new JSONObject();body.put("env",env);String query = "db.collection('" + collection + "').skip(" + limit.getCurrPage() * limit.getPageSize() + ").limit(" + limit.getPageSize() + ").get()";body.put("query",query);String res = HttpUtils.httpsPost(IP + "/tcb/databasequery?access_token=" + accessToken, body.toJSONString());resultIsSuccess(res);return res;}public synchronized static String findById(String collection,String id) throws Exception {JSONObject body = new JSONObject();body.put("env",env);String query = "db.collection('" + collection + "').doc('" + id + "').get()";body.put("query",query);String res = HttpUtils.httpsPost(IP + "/tcb/databasequery?access_token=" + accessToken, body.toJSONString());resultIsSuccess(res);return res;}public synchronized static <T> String addList(String collection, List<T> list) throws Exception {JSONObject body = new JSONObject();body.put("env",env);String query = "db.collection('" + collection + "').add({" +"data: " + JSONObject.toJSONString(list) +"})";body.put("query",query);String res = HttpUtils.httpsPost(IP + "/tcb/databaseadd?access_token=" + accessToken, UnicodeUtils.strToUnicode(body.toJSONString()));resultIsSuccess(res);return res;}public synchronized static String createCollection(String collection) throws Exception {JSONObject body = new JSONObject();body.put("env",env);body.put("collection_name",collection);String res = HttpUtils.httpsPost(IP + "/tcb/databasecollectionadd?access_token=" + accessToken, body.toJSONString());resultIsSuccess(res);return res;}public synchronized static String deleteCollection(String collection) throws Exception {JSONObject body = new JSONObject();body.put("env",env);body.put("collection_name",collection);String res = HttpUtils.httpsPost(IP + "/tcb/databasecollectiondelete?access_token=" + accessToken, body.toJSONString());resultIsSuccess(res);return res;}public synchronized static <T> String findByConditionAnd(String collection,T condition,Limit limit) throws Exception {JSONObject body = new JSONObject();body.put("env",env);String query = "db.collection('"+ collection +"').where("+ JSONObject.toJSONString(condition) +").skip(" + limit.getCurrPage() * limit.getPageSize() + ").limit(" + limit.getPageSize() + ").get()";body.put("query",query);String res = HttpUtils.httpsPost(IP + "/tcb/databasequery?access_token=" + accessToken, UnicodeUtils.strToUnicode(body.toJSONString()));resultIsSuccess(res);return res;}public synchronized static <T> String updateById(String collection,T condition,String id) throws Exception {JSONObject body = new JSONObject();body.put("env",env);String query = "db.collection('"+ collection +"').doc('"+ id +"').update({data:"+ JSONObject.toJSONString(condition) +"})";body.put("query",query);String res = HttpUtils.httpsPost(IP + "/tcb/databaseupdate?access_token=" + accessToken, UnicodeUtils.strToUnicode(body.toJSONString()));resultIsSuccess(res);return res;}public synchronized static String deleteById(String collection,String id) throws Exception {JSONObject body = new JSONObject();body.put("env",env);String query = "db.collection('"+ collection +"').doc('"+ id +"').remove()";body.put("query",query);String res = HttpUtils.httpsPost(IP + "/tcb/databasedelete?access_token=" + accessToken, UnicodeUtils.strToUnicode(body.toJSONString()));resultIsSuccess(res);return res;}public synchronized static String getFileTempPath(List<String> fileId_list) throws Exception {JSONObject body = new JSONObject();body.put("env",env);JSONArray fileList = new JSONArray();for(int i = 0;i < fileId_list.size();i++) {JSONObject fileItem = new JSONObject();fileItem.put("fileid",fileId_list.get(i));fileItem.put("max_age", 7200);fileList.add(fileItem);}body.put("file_list", fileList);String res = HttpUtils.httpsPost(IP + "/tcb/batchdownloadfile?access_token=" + accessToken, UnicodeUtils.strToUnicode(body.toJSONString()));resultIsSuccess(res);return res;}
}

相关文章:

  • WebGIS面试题目整合资料
  • 《TVM模式匹配实战:从DFPatternNode到DFPattern的高级用法》
  • PPIO X OWL:一键开启任务自动化的高效革命
  • Codeforces Round 1021 (Div. 2) D. Baggage Claim(建图)
  • PLC在仪表控制系统中的应用
  • 代码随想录算法训练营第60期第二十天打卡
  • Python爬虫(6)静态页面解析实战:BeautifulSoup与lxml(XPath)高效提取数据指南
  • 能源行业数字化转型:利用大数据与人工智能提升效率与可持续性
  • MCP Server On FC 之旅1: MCP 协议的深度解析与云上适配最佳实践
  • Docker 部署 flink1.19.2
  • Golang 学习指南
  • 基于ArcGIS的洪水淹没分析技术-洪水灾害普查、风险评估及淹没制图中的实践技术
  • Rollup、Webpack、Esbuild 和 Vite 前端打包工具
  • django.db.models.query_utils.DeferredAttribute object
  • Go RPC 服务方法签名的要求
  • Spark-Streaming3
  • Nacos简介—4.Nacos架构和原理一
  • 树莓派超全系列教程文档--(44)如何在树莓派上编译树莓派内核
  • 如何实现一个可视化的文字编辑器(C语言版)?
  • 优考试V4.20机构版【附百度网盘链接】
  • 现场|西岸美术馆与蓬皮杜启动新五年合作,新展今开幕
  • 新剧|反谍大剧《绝密较量》央一开播,张鲁一高圆圆主演
  • 我国将出台稳就业稳经济推动高质量发展若干举措,将根据形势变化及时出台增量储备政策
  • 第一集丨《无尽的尽头》值得关注,《榜上佳婿》平平无奇
  • 屋顶上的阳光与火光:战争如何改变了加沙的能源格局
  • 持续更新丨伊朗官员:港口爆炸事件已致5人死亡