mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2026-03-10 00:13:40 +08:00
🆕 #2385 【开放平台】 增加为小程序设置用户隐私指引的相关接口
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
package me.chanjar.weixin.open.api;
|
||||
|
||||
import me.chanjar.weixin.common.error.WxErrorException;
|
||||
import me.chanjar.weixin.open.bean.ma.privacy.GetPrivacySettingResult;
|
||||
import me.chanjar.weixin.open.bean.ma.privacy.SetPrivacySetting;
|
||||
import me.chanjar.weixin.open.bean.ma.privacy.UploadPrivacyFileResult;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* 微信第三方平台 小程序用户隐私保护指引接口
|
||||
* https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/privacy_config/set_privacy_setting.html
|
||||
*
|
||||
* @author <a href="https://www.sacoc.cn">广州跨界</a>
|
||||
*/
|
||||
public interface WxOpenMaPrivacyService {
|
||||
|
||||
/**
|
||||
* 1 设置小程序用户隐私保护指引
|
||||
*/
|
||||
String OPEN_SET_PRIVACY_SETTING = "https://api.weixin.qq.com/cgi-bin/component/setprivacysetting";
|
||||
|
||||
/**
|
||||
* 2 查询小程序用户隐私保护指引
|
||||
*/
|
||||
String OPEN_GET_PRIVACY_SETTING = "https://api.weixin.qq.com/cgi-bin/component/getprivacysetting";
|
||||
|
||||
/**
|
||||
* 3 上传小程序用户隐私保护指引文件
|
||||
*/
|
||||
String OPEN_UPLOAD_PRIVACY_FILE = "https://api.weixin.qq.com/cgi-bin/component/uploadprivacyextfile";
|
||||
|
||||
|
||||
/**
|
||||
* 查询小程序用户隐私保护指引
|
||||
* 文档地址:https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/privacy_config/get_privacy_setting.html
|
||||
*
|
||||
* @param privacyVer 1表示现网版本,即,传1则该接口返回的内容是现网版本的;2表示开发版,即,传2则该接口返回的内容是开发版本的。默认是2。
|
||||
* @return 查询结果
|
||||
* @throws WxErrorException 如果出错,抛出此异常
|
||||
*/
|
||||
GetPrivacySettingResult getPrivacySetting(@Nullable Integer privacyVer) throws WxErrorException;
|
||||
|
||||
|
||||
/**
|
||||
* 设置小程序用户隐私保护指引
|
||||
* 文档地址:https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/privacy_config/set_privacy_setting.html
|
||||
*
|
||||
* @param dto 参数对象
|
||||
* @throws WxErrorException 如果出错,抛出此异常
|
||||
*/
|
||||
void setPrivacySetting(SetPrivacySetting dto) throws WxErrorException;
|
||||
|
||||
|
||||
/**
|
||||
* 上传小程序用户隐私保护指引文件
|
||||
* 本接口用于上传自定义的小程序的用户隐私保护指引
|
||||
* 仅限文本文件, 限制文件大小为不超过100kb,否则会报错
|
||||
* 文档地址:https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/privacy_config/upload_privacy_exfile.html
|
||||
*
|
||||
* @param content 文本文件内容
|
||||
* @return 上传结果
|
||||
* @throws WxErrorException 如果出错,抛出此异常
|
||||
*/
|
||||
UploadPrivacyFileResult uploadPrivacyFile(String content) throws WxErrorException;
|
||||
}
|
||||
@@ -632,6 +632,13 @@ public interface WxOpenMaService extends WxMaService {
|
||||
*/
|
||||
WxOpenMaBasicService getBasicService();
|
||||
|
||||
/**
|
||||
* 小程序用户隐私保护指引服务
|
||||
*
|
||||
* @return 小程序用户隐私保护指引服务
|
||||
*/
|
||||
WxOpenMaPrivacyService getPrivacyService();
|
||||
|
||||
/**
|
||||
* 小程序审核 提审素材上传接口
|
||||
*
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
package me.chanjar.weixin.open.api.impl;
|
||||
|
||||
import cn.binarywang.wx.miniapp.api.WxMaService;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.SneakyThrows;
|
||||
import me.chanjar.weixin.common.error.WxError;
|
||||
import me.chanjar.weixin.common.error.WxErrorException;
|
||||
import me.chanjar.weixin.open.api.WxOpenMaPrivacyService;
|
||||
import me.chanjar.weixin.open.bean.ma.privacy.GetPrivacySettingResult;
|
||||
import me.chanjar.weixin.open.bean.ma.privacy.SetPrivacySetting;
|
||||
import me.chanjar.weixin.open.bean.ma.privacy.UploadPrivacyFileResult;
|
||||
import me.chanjar.weixin.open.util.json.WxOpenGsonBuilder;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 微信第三方平台 小程序用户隐私保护指引接口
|
||||
* https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/privacy_config/set_privacy_setting.html
|
||||
*
|
||||
* @author <a href="https://www.sacoc.cn">广州跨界</a>
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
public class WxOpenMaPrivacyServiceImpl implements WxOpenMaPrivacyService {
|
||||
|
||||
private final WxMaService wxMaService;
|
||||
|
||||
|
||||
@Override
|
||||
public GetPrivacySettingResult getPrivacySetting(@Nullable Integer privacyVer) throws WxErrorException {
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
if (privacyVer != null) {
|
||||
params.put("privacy_ver", privacyVer);
|
||||
}
|
||||
String json = wxMaService.post(OPEN_GET_PRIVACY_SETTING, params);
|
||||
return WxOpenGsonBuilder.create().fromJson(json, GetPrivacySettingResult.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setPrivacySetting(SetPrivacySetting dto) throws WxErrorException {
|
||||
wxMaService.post(OPEN_SET_PRIVACY_SETTING, dto);
|
||||
}
|
||||
|
||||
@SneakyThrows
|
||||
@Override
|
||||
public UploadPrivacyFileResult uploadPrivacyFile(String content) throws WxErrorException {
|
||||
// TODO 应实现通过InputStream上传的功能,一下代码暂时无法正常运行
|
||||
// ByteArrayInputStream data = new ByteArrayInputStream(content.getBytes("GBK"));
|
||||
// GenericUploadRequestExecutor executor = new GenericUploadRequestExecutor(wxMaService.getRequestHttp(), "POST", "file", "/temp.txt");
|
||||
// String json = wxMaService.execute(executor, OPEN_UPLOAD_PRIVACY_FILE, data);
|
||||
// return WxOpenGsonBuilder.create().fromJson(json, UploadPrivacyFileResult.class);
|
||||
throw new WxErrorException(new WxError(5003, "暂未实现用户隐私指引内容上传"));
|
||||
}
|
||||
}
|
||||
@@ -15,6 +15,7 @@ import lombok.Getter;
|
||||
import me.chanjar.weixin.common.error.WxErrorException;
|
||||
import me.chanjar.weixin.open.api.WxOpenComponentService;
|
||||
import me.chanjar.weixin.open.api.WxOpenMaBasicService;
|
||||
import me.chanjar.weixin.open.api.WxOpenMaPrivacyService;
|
||||
import me.chanjar.weixin.open.api.WxOpenMaService;
|
||||
import me.chanjar.weixin.open.bean.ma.WxMaQrcodeParam;
|
||||
import me.chanjar.weixin.open.bean.ma.WxMaScheme;
|
||||
@@ -42,12 +43,15 @@ public class WxOpenMaServiceImpl extends WxMaServiceImpl implements WxOpenMaServ
|
||||
private final String appId;
|
||||
@Getter
|
||||
private final WxOpenMaBasicService basicService;
|
||||
@Getter
|
||||
private final WxOpenMaPrivacyService privacyService;
|
||||
|
||||
public WxOpenMaServiceImpl(WxOpenComponentService wxOpenComponentService, String appId, WxMaConfig wxMaConfig) {
|
||||
this.wxOpenComponentService = wxOpenComponentService;
|
||||
this.appId = appId;
|
||||
this.wxMaConfig = wxMaConfig;
|
||||
this.basicService = new WxOpenMaBasicServiceImpl(this);
|
||||
this.privacyService = new WxOpenMaPrivacyServiceImpl(this);
|
||||
initHttp();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user