diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenMaService.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenMaService.java index 78177a3c..2b6e2d13 100644 --- a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenMaService.java +++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenMaService.java @@ -167,10 +167,33 @@ public interface WxOpenMaService extends WxMaService { /** * 14.设置小程序“扫普通链接二维码打开小程序”能力 - *
- * TODO 暂时不实现 - *
+ * + * https://mp.weixin.qq.com/debug/wxadoc/introduction/qrcode.html + */ + /** + * 14.1 增加或修改二维码规则 + */ + String API_QRCODE_JUMP_ADD = "https://api.weixin.qq.com/cgi-bin/wxopen/qrcodejumpadd"; + + /** + * 14.2 获取已设置的二维码规则 */ + String API_QRCODE_JUMP_GET = "https://api.weixin.qq.com/cgi-bin/wxopen/qrcodejumpget"; + + /** + * 14.3 获取校验文件名称及内容 + */ + String API_QRCODE_JUMP_DOWNLOAD = "https://api.weixin.qq.com/cgi-bin/wxopen/qrcodejumpdownload"; + + /** + * 14.4 删除已设置的二维码规则 + */ + String API_QRCODE_JUMP_DELETE = "https://api.weixin.qq.com/cgi-bin/wxopen/qrcodejumpdelete"; + + /** + * 14.5 发布已设置的二维码规则 + */ + String API_QRCODE_JUMP_PUBLISH = "https://api.weixin.qq.com/cgi-bin/wxopen/qrcodejumppublish"; /** * 15.小程序审核撤回 @@ -421,4 +444,28 @@ public interface WxOpenMaService extends WxMaService { */ Boolean speedAudit(Long auditid) throws WxErrorException; + /** + * (1)增加或修改二维码规则 + */ + WxOpenResult addQrcodeJump(WxQrcodeJumpRule wxQrcodeJumpRule) throws WxErrorException; + + /** + * (2)获取已设置的二维码规则 + */ + WxGetQrcodeJumpResult getQrcodeJump() throws WxErrorException; + + /** + * (3)获取校验文件名称及内容 + */ + WxDownlooadQrcodeJumpResult downloadQrcodeJump() throws WxErrorException; + + /** + * (4)删除已设置的二维码规则 + */ + WxOpenResult deleteQrcodeJump(String prefix) throws WxErrorException; + + /** + * (5)发布已设置的二维码规则 + */ + WxOpenResult publishQrcodeJump(String prefix) throws WxErrorException; } diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenMaServiceImpl.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenMaServiceImpl.java index 230968d5..1d30a57f 100644 --- a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenMaServiceImpl.java +++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenMaServiceImpl.java @@ -548,6 +548,68 @@ public class WxOpenMaServiceImpl extends WxMaServiceImpl implements WxOpenMaServ } + /** + * (1)增加或修改二维码规则 + * @param wxQrcodeJumpRule + * @return + * @throws WxErrorException + */ + @Override + public WxOpenResult addQrcodeJump(WxQrcodeJumpRule wxQrcodeJumpRule) throws WxErrorException { + String response = post(API_QRCODE_JUMP_ADD, GSON.toJson(wxQrcodeJumpRule)); + return WxMaGsonBuilder.create().fromJson(response, WxOpenResult.class); + } + + /** + * (2)获取已设置的二维码规则 + * @return + * @throws WxErrorException + */ + @Override + public WxGetQrcodeJumpResult getQrcodeJump() throws WxErrorException { + String response = post(API_QRCODE_JUMP_GET, "{}"); + return WxMaGsonBuilder.create().fromJson(response, WxGetQrcodeJumpResult.class); + } + + /** + * (3)获取校验文件名称及内容 + * @return + * @throws WxErrorException + */ + @Override + public WxDownlooadQrcodeJumpResult downloadQrcodeJump() throws WxErrorException { + String response = post(API_QRCODE_JUMP_DOWNLOAD, "{}"); + return WxMaGsonBuilder.create().fromJson(response, WxDownlooadQrcodeJumpResult.class); + } + + /** + * (4)删除已设置的二维码规则 + * @param prefix + * @return + * @throws WxErrorException + */ + @Override + public WxOpenResult deleteQrcodeJump(String prefix) throws WxErrorException { + JsonObject params = new JsonObject(); + params.addProperty("prefix", prefix); + String response = post(API_QRCODE_JUMP_DELETE, GSON.toJson(params)); + return WxMaGsonBuilder.create().fromJson(response, WxOpenResult.class); + } + + /** + * (5)发布已设置的二维码规则 + * @param prefix + * @return + * @throws WxErrorException + */ + @Override + public WxOpenResult publishQrcodeJump(String prefix) throws WxErrorException { + JsonObject params = new JsonObject(); + params.addProperty("prefix", prefix); + String response = post(API_QRCODE_JUMP_PUBLISH, GSON.toJson(params)); + return WxMaGsonBuilder.create().fromJson(response, WxOpenResult.class); + } + /** * 将字符串对象转化为GsonArray对象 * diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxDownlooadQrcodeJumpResult.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxDownlooadQrcodeJumpResult.java new file mode 100644 index 00000000..3bdc532b --- /dev/null +++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxDownlooadQrcodeJumpResult.java @@ -0,0 +1,30 @@ +package me.chanjar.weixin.open.bean.result; + +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import me.chanjar.weixin.open.util.json.WxOpenGsonBuilder; + +/** + * 二维码规则的校验文件名称及内容 + * + * @author hanwei59 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class WxDownlooadQrcodeJumpResult extends WxOpenResult { + + //文件名称 + @SerializedName("file_name") + private String fileName; + + //文件内容 + @SerializedName("file_content") + private String fileContent; + + @Override + public String toString() { + return WxOpenGsonBuilder.create().toJson(this); + } + +} diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxGetQrcodeJumpResult.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxGetQrcodeJumpResult.java new file mode 100644 index 00000000..f47e8be6 --- /dev/null +++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxGetQrcodeJumpResult.java @@ -0,0 +1,40 @@ +package me.chanjar.weixin.open.bean.result; + +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import me.chanjar.weixin.open.util.json.WxOpenGsonBuilder; + +import java.util.List; + +/** + * 已设置的二维码规则信息 + * + * @author hanwei59 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class WxGetQrcodeJumpResult extends WxOpenResult { + + //二维码规则详情,数组形式 + @SerializedName("rule_list") + List