dev --- 3.8.0.A版本, openProject引用 ; formao-live --- 3.7.0.B 版本, formallProject引用
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. ## 如何使用 `WxJava` 进行小程序云开发
  2. [云开发(CloudBase)](https://www.cloudbase.net/)是基于Serverless架构构建的一站式后端云服务,涵盖函数、数据库、存储、CDN等服务,免后端运维,支持小程序、Web和APP开发。
  3. 其中,小程序·云开发是微信和腾讯云联合推出的云端一体化解决方案,基于云开发可以免鉴权调用微信所有开放能力,在微信开发者工具中即可开通使用。
  4. ### 一、 引入`maven`依赖
  5. ```
  6. <dependency>
  7. <groupId>com.github.binarywang</groupId>
  8. <artifactId>weixin-java-miniapp</artifactId>
  9. <version>3.7.1.B</version>
  10. </dependency>
  11. ```
  12. ### 二、 构造配置类,填入相关参数
  13. ```
  14. WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();
  15. config.setAppid(...); // 微信小程序的appid
  16. config.setSecret(...); // 微信小程序的Secret
  17. config.setToken(...); // 微信小程序消息服务器配置的token,如果程序不涉及相关功能,可以忽略
  18. config.setAesKey(...); // 微信小程序消息服务器配置的EncodingAESKey,同上,如果不涉及,可以忽略
  19. config.setMsgDataFormat(...); // 消息数据格式,可以为XML或者JSON
  20. ```
  21. ### 三、 构造service类,关联上述配置
  22. ```
  23. WxMaService wxMaService= new WxMaServiceImpl();
  24. wxMaService.setWxMaConfig(config);
  25. ```
  26. ### 四、 根据小程序前端需要调用相应的方法:
  27. 目前 `WxJava` 已支持当前所有接口(当然如果官方后续加入新接口,则还未在最新版本中实现,会考虑在之后版本中加入),所有已支持的接口列表可以参考在线`JavaDoc`:http://binary.ac.cn/weixin-java-miniapp-javadoc/cn/binarywang/wx/miniapp/api/WxMaCloudService.html
  28. 以触发云函数接口为例,可以采用如下方式调用 `invokeCloudFunction` 方法:
  29. ```
  30. String result = wxMaService.getCloudService().invokeCloudFunction("rcn", "login", "{}"); // 拿到result之后,可以在后续加入自己的处理逻辑代码
  31. ```
  32. 更多方法调用实例可以参考 `WxJava` 源码中的单元测试类:`cn.binarywang.wx.miniapp.api.impl.WxMaCloudServiceImplTest`
  33. 另外,顺便在此列出当前已支持云开发的方法如下:
  34. | 接口描述 | 方法名 |
  35. | ---- | ---- |
  36. | 删除文件 | batchDeleteFile(String env, String[] fileIds)|
  37. | 获取文件下载链接 | batchDownloadFile(String env, String[] fileIds, long[] maxAges)|
  38. | 数据库插入记录 | databaseAdd(String env, String query)|
  39. | 数据库聚合记录 | databaseAggregate(String env, String query)|
  40. | 新增集合 | databaseCollectionAdd(String env, String collectionName)|
  41. | 删除集合 | databaseCollectionDelete(String env, String collectionName)|
  42. | 获取特定云环境下集合信息 | databaseCollectionGet(String env, Long limit, Long offset)|
  43. | 统计集合记录数或统计查询语句对应的结果记录数 | databaseCount(String env, String query)|
  44. | 数据库删除记录 | databaseDelete(String env, String query)|
  45. | 数据库导出 | databaseMigrateExport(String env, String filePath, int fileType, String query)|
  46. | 数据库导入 | databaseMigrateImport(String env, String collectionName, String filePath, int fileType, boolean stopOnError, int conflictMode)|
  47. | 数据库迁移状态查询 | databaseMigrateQueryInfo(String env, Long jobId)|
  48. | 数据库查询记录 | databaseQuery(String env, String query)|
  49. | 数据库更新记录 | databaseUpdate(String env, String query)|
  50. | 获取腾讯云API调用凭证 | getQcloudToken(long lifeSpan)|
  51. | 触发云函数 | invokeCloudFunction(String env, String name, String body)|
  52. | 变更数据库索引 | updateIndex(String env, String collectionName, List<WxCloudDatabaseCreateIndexRequest> createIndexes, List<String> dropIndexNames)|
  53. | 获取文件上传链接 | uploadFile(String env, String path)|
  54. ### 五、 `Spring` 框架整合:
  55. 可以参考https://github.com/binarywang/weixin-java-miniapp-demo 此项目整合 `Spring` 开发。
  56. 此项目基于 `Spring Boot` ,如果需要支持`Spring MVC`项目,适当改造即可。