Skip to content

Commit 2b92b6f

Browse files
authored
🐛 修复几个问题
1.修复微信公众号无法模板消息行业:其他 2.修复第三方平台无法上传标准模板的代码到小程序 3.修复小程序代码模板类型类字段拼写错误
1 parent e9c1cda commit 2b92b6f

File tree

6 files changed

+104
-12
lines changed

6 files changed

+104
-12
lines changed

weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/template/WxMpTemplateIndustryEnum.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
import lombok.AllArgsConstructor;
44
import lombok.Getter;
5+
import org.jetbrains.annotations.Nullable;
6+
7+
import java.util.Objects;
58

69
/**
710
* 模版消息行业枚举.
@@ -195,15 +198,19 @@ public enum WxMpTemplateIndustryEnum {
195198
*
196199
* @param firstClass 主行业名称
197200
* @param secondClass 副行业名称
198-
* @return .
201+
* @return 如果找不到, 返回null
199202
*/
203+
@Nullable
200204
public static WxMpTemplateIndustryEnum findByClass(String firstClass, String secondClass) {
201205
for (WxMpTemplateIndustryEnum industryEnum : WxMpTemplateIndustryEnum.values()) {
202206
if (industryEnum.firstClass.equals(firstClass) && industryEnum.secondClass.contains(secondClass)) {
203207
return industryEnum;
204208
}
205209
}
206-
210+
if (Objects.equals(firstClass, "其他") && Objects.equals(secondClass, "其他")) {
211+
//微信返回的其他行业实际上为"其他",而非"其它",此处兼容处理
212+
return OTHER;
213+
}
207214
return null;
208215
}
209216

weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenMaService.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import cn.binarywang.wx.miniapp.api.WxMaService;
44
import cn.binarywang.wx.miniapp.bean.WxMaAuditMediaUploadResult;
55
import me.chanjar.weixin.common.error.WxErrorException;
6-
import me.chanjar.weixin.open.bean.ma.WxMaOpenCommitExtInfo;
76
import me.chanjar.weixin.open.bean.ma.WxMaScheme;
87
import me.chanjar.weixin.open.bean.message.WxOpenMaSubmitAuditMessage;
98
import me.chanjar.weixin.open.bean.result.*;
@@ -379,14 +378,18 @@ WxOpenMaDomainResult modifyDomain(String action, List<String> requestDomains, Li
379378
/**
380379
* 1、为授权的小程序帐号上传小程序代码
381380
*
382-
* @param templateId 代码模板ID
383-
* @param userVersion 用户定义版本
384-
* @param userDesc 用户定义版本描述
385-
* @param extInfo 第三方自定义的配置
381+
* @param templateId 代码模板ID
382+
* @param userVersion 用户定义版本
383+
* @param userDesc 用户定义版本描述
384+
* @param extJsonObject 为了方便第三方平台的开发者引入 extAppid 的开发调试工作,引入ext.json配置文件概念,该参数则是用于控制ext.json配置文件的内容。
385+
* 如果是普通模板可以使用 WxMaOpenCommitExtInfo 类构造参数,
386+
* 如果是标准模板可支持的参数为:{"extAppid":'', "ext": {}, "window": {}} 所以可以使用 WxMaOpenCommitStandardExt 构造参数
386387
* @return the wx open result
387388
* @throws WxErrorException the wx error exception
389+
* @see me.chanjar.weixin.open.bean.ma.WxMaOpenCommitStandardExt
390+
* @see me.chanjar.weixin.open.bean.ma.WxMaOpenCommitExtInfo
388391
*/
389-
WxOpenResult codeCommit(Long templateId, String userVersion, String userDesc, WxMaOpenCommitExtInfo extInfo) throws WxErrorException;
392+
WxOpenResult codeCommit(Long templateId, String userVersion, String userDesc, Object extJsonObject) throws WxErrorException;
390393

391394
/**
392395
* 获取体验小程序的体验二维码
@@ -617,6 +620,7 @@ WxOpenMaDomainResult modifyDomain(String action, List<String> requestDomains, Li
617620

618621
/**
619622
* 为小程序开通小商店组件
623+
*
620624
* @return
621625
*/
622626
WxOpenResult registerShopComponent() throws WxErrorException;
@@ -630,6 +634,7 @@ WxOpenMaDomainResult modifyDomain(String action, List<String> requestDomains, Li
630634

631635
/**
632636
* 小程序审核 提审素材上传接口
637+
*
633638
* @return
634639
*/
635640
WxMaAuditMediaUploadResult uploadMedia(File file) throws WxErrorException;

weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenMaServiceImpl.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import me.chanjar.weixin.open.api.WxOpenComponentService;
1717
import me.chanjar.weixin.open.api.WxOpenMaBasicService;
1818
import me.chanjar.weixin.open.api.WxOpenMaService;
19-
import me.chanjar.weixin.open.bean.ma.WxMaOpenCommitExtInfo;
2019
import me.chanjar.weixin.open.bean.ma.WxMaQrcodeParam;
2120
import me.chanjar.weixin.open.bean.ma.WxMaScheme;
2221
import me.chanjar.weixin.open.bean.message.WxOpenMaSubmitAuditMessage;
@@ -185,13 +184,13 @@ public WxOpenResult updateShowWxaItem(Integer flag, String mpAppId) throws WxErr
185184
}
186185

187186
@Override
188-
public WxOpenResult codeCommit(Long templateId, String userVersion, String userDesc, WxMaOpenCommitExtInfo extInfo) throws WxErrorException {
187+
public WxOpenResult codeCommit(Long templateId, String userVersion, String userDesc, Object extJsonObject) throws WxErrorException {
189188
JsonObject params = new JsonObject();
190189
params.addProperty("template_id", templateId);
191190
params.addProperty("user_version", userVersion);
192191
params.addProperty("user_desc", userDesc);
193192
//注意:ext_json必须是字符串类型
194-
params.addProperty("ext_json", GSON.toJson(extInfo));
193+
params.addProperty("ext_json", GSON.toJson(extJsonObject));
195194
String response = post(API_CODE_COMMIT, GSON.toJson(params));
196195
return WxMaGsonBuilder.create().fromJson(response, WxOpenResult.class);
197196
}

weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/WxOpenMaCodeTemplate.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import java.io.Serializable;
77

88
/**
9+
* 小程序代码模板
10+
*
911
* @author <a href="https://github.com/charmingoh">Charming</a>
1012
* @since 2018-04-26 17:10
1113
*/
@@ -37,7 +39,7 @@ public class WxOpenMaCodeTemplate implements Serializable {
3739
* 模板类型 0对应普通模板,1对应标准模板
3840
*/
3941
@SerializedName(value = "templateType", alternate = "template_type")
40-
private Integer template_type;
42+
private Integer templateType;
4143

4244
/**
4345
* 开发者上传草稿时间 / 被添加为模版的时间

weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/ma/WxMaOpenCommitExtInfo.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,29 @@
1919
* https://developers.weixin.qq.com/miniprogram/dev/devtools/ext.html#%E5%B0%8F%E7%A8%8B%E5%BA%8F%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91
2020
* </p>
2121
*
22+
* <p>
23+
* ext_json补充说明
24+
* 文档地址:https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/code/commit.html
25+
* 为了便于第三方平台使用同一个小程序模板为不同的小程序提供服务,第三方可以将自定义信息放置在 ext_json 中,在模板小程序中,可以使用 wx.getExtConfigSync 接口获取自定义信息,从而区分不同的小程序。详见:小程序模板开发
26+
* ext_json 中的参数可选,参数详见小程序配置;但是,如果是模板id为标准模板库的模板id,则ext_json可支持的参数为:{"extAppid":'', "ext": {}, "window": {}}
27+
* ext_json 中有限支持 pages,支持配置模板页面的子集(ext_json 中不可新增页面)。
28+
* ext_json 中有限支持 subPackages,支持配置模板分包及其页面的子集(ext_json 中配置的分包必须已声明于模板中,且不可新增分包页面)。
29+
* ext_json支持plugins配置,该配置会覆盖模板中的app.json中的plugins配置。关于plugin的使用详情请参考使用插件。
30+
* 如果代码中已经有配置,则配置的合并规则为:
31+
* ext整体替换
32+
* pages整体替换
33+
* extPages中找到对应页面,同级覆盖page.json
34+
* window同级覆盖
35+
* extAppid直接加到app.json
36+
* networkTimeout同级覆盖
37+
* customOpen整体替换
38+
* tabbar同级覆盖
39+
* functionPages整体替换
40+
* subPackages整体替换
41+
* navigateToMiniProgaramAppIdList:整体替换
42+
* plugins整体替换
43+
* </p>
44+
*
2245
* @author yqx
2346
* @date 2018/9/13
2447
*/
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package me.chanjar.weixin.open.bean.ma;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
import lombok.Data;
5+
6+
import java.io.Serializable;
7+
import java.util.Map;
8+
9+
/**
10+
* 微信第三方平台上传代码到小程序代码标准模板时的参数
11+
* ext_json补充说明
12+
* 文档地址:https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/code/commit.html
13+
* 为了便于第三方平台使用同一个小程序模板为不同的小程序提供服务,第三方可以将自定义信息放置在 ext_json 中,在模板小程序中,可以使用 wx.getExtConfigSync 接口获取自定义信息,从而区分不同的小程序。详见:小程序模板开发
14+
* ext_json 中的参数可选,参数详见小程序配置;但是,如果是模板id为标准模板库的模板id,则ext_json可支持的参数为:{"extAppid":'', "ext": {}, "window": {}}
15+
* ext_json 中有限支持 pages,支持配置模板页面的子集(ext_json 中不可新增页面)。
16+
* ext_json 中有限支持 subPackages,支持配置模板分包及其页面的子集(ext_json 中配置的分包必须已声明于模板中,且不可新增分包页面)。
17+
* ext_json支持plugins配置,该配置会覆盖模板中的app.json中的plugins配置。关于plugin的使用详情请参考使用插件。
18+
* 如果代码中已经有配置,则配置的合并规则为:
19+
* ext整体替换
20+
* pages整体替换
21+
* extPages中找到对应页面,同级覆盖page.json
22+
* window同级覆盖
23+
* extAppid直接加到app.json
24+
* networkTimeout同级覆盖
25+
* customOpen整体替换
26+
* tabbar同级覆盖
27+
* functionPages整体替换
28+
* subPackages整体替换
29+
* navigateToMiniProgaramAppIdList:整体替换
30+
* plugins整体替换
31+
* </p>
32+
*
33+
* @author <a href="https://www.sacoc.cn">广州跨界</a>
34+
* @since 2021/08/12
35+
*/
36+
@Data
37+
public class WxMaOpenCommitStandardExt implements Serializable {
38+
39+
private static final long serialVersionUID = 4595618023108631477L;
40+
41+
/**
42+
* 授权小程序Appid,可填入商户小程序AppID,以区分不同商户
43+
*/
44+
@SerializedName("create_time")
45+
private String extAppId;
46+
47+
/**
48+
* 开发自定义的数据字段
49+
*/
50+
private Map<String, Object> ext;
51+
52+
/**
53+
* 授权小程序Appid,可填入商户小程序AppID,以区分不同商户
54+
*/
55+
private Map<String, Object> window;
56+
}

0 commit comments

Comments
 (0)